《汇编语言程序设计课后习题答案(第二版沈美明).pdf》由会员分享,可在线阅读,更多相关《汇编语言程序设计课后习题答案(第二版沈美明).pdf(140页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、苴 页 一 程 一 序 一 员 一 计 算 机 计 算 机 电 子 硬 件 网 络 专 业 课 程 答 案 考 研 书 下 载 知 识 知 识 下 载 第 一 章 作 者:佚 名 来 源:网 络 1.1用 降 幕 法 和 除 法 将 下 列 十 进 制 数 转 换 为 二 进 制 数 和 十 六 进 制 数:(1)369(2)10000(3)4095(4)32767答:(1)369=1 0111 0001B=171H(2)10000=10 0111 0001 0000B=2710H(3)4095=1111 1111 1111B=FFFH(4)32767=111 1111 1111 1111B=
2、7FFFH1.2 将 下 列 二 进 制 数 转 换 为 十 六 进 制 数 和 十 进 制 数:(1)10 1101(2)1000 0000(3)1111 1111 1111 1111(4)1111 1111答:(1)10 1101B=2DH=45(2)1000 0000B=80H=128(3)1111 1111 1111 1111B=FFFFH=65535(4)1111 1111B=FFH=2551.3 将 下 列 十 六 进 制 数 转 换 为 二 进 制 数 和 十 进 制 数:(1)FA(2)5B FFFE(4)1234答:(1)FAH=1111 1010B=250 5BH=101
3、1011B=91(3)FFFEH=1111 1111 1111 1110B=65534(4)1234H=1 0010 0011 0100B=46601.4 完 成 下 列 十 六 进 制 数 的 运 算,并 转 换 为 十 进 制 数 进 行 校 核:(1)3A+B7(2)1234+AF(3)ABCD-FE(4)7ABx6F答:(1)3A+B7H=F1H=241(2)1234+AFH=12E3H=4835(3)ABCD-FEH=AACFH=43727(4)7ABx6FH=35325H=2178931.5 下 列 各 数 均 为 十 进 制 数,请 用 8位 二 进 制 补 码 计 算 下 列
4、各 题,并 用 十 六 进 制 数 表 示 其 运 算 结 果。(1)(-85)+76(2)85+(-76)(3)85-76(4)85-(-76)(5)(-85)-76(6)-85-(-76)答:(1)(-85)+76=1010 10UB+0100 0111B=0F7H;CF=0;OF=0(2)85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3)85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H:CF=0;OF=0(4)85-(-76)=0101 010
5、1B-I011 0100B=0101 0101B+01CX)1100B=10100001B=0AlH;CF=0;OF=1(5)(-85)-76=1010 1011B-0100 1100B=1010 1011B+10I1 OlOOB=OIOl 11UB=5FH;CF=0;OF=1(6)-85-(-76)=1010 1011B-10I1 0100B=1010 1011B+0100 1 IOOB=11110111 B=0F7H;CF=0;OF=01.6 下 列 各 数 为 十 六 进 制 表 示 的 8位 二 进 制 数,请 说 明 当 它 们 分 别 被 看 作 是 用 补 码 表 示 的 带 符
6、 号 数 或 无 符 号 数 时,它 们 所 表 示 的 十 进 制 数 是 什 么?(1)D 8(2)FF答:(1)D 8H表 示 的 带 符 号 数 为-40,D 8H表 示 的 无 符 号 数 为 216;FFH表 示 的 带 符 号 数 为-1,FFH表 示 的 无 符 号 数 为 255。1.7 下 列 各 数 均 为 用 十 六 进 制 表 示 的 8位 二 进 制 数,请 说 明 当 它 们 分 别 被 看 作 是 用 补 码 表 示 的 数 或 字 符 的 ASCH码 时,它 们 所 表 示 的 十 进 制 数 及 字 符 是 什 么?(1)4F(2)2B(3)73(4)59答
7、:(1)4FH表 示 的 十 进 制 数 为 79,4FH表 示 的 字 符 为 O;2BH表 示 的 十 进 制 数 为 43,2B H表 示 的 字 符 为+;(3)73H表 示 的 十 进 制 数 为 115,73H表 示 的 字 符 为 s;59H表 示 的 十 进 制 数 为 89,59H表 示 的 字 符 为 Y。1.8请 写 出 下 列 字 符 串 的 ASCII码 值。For example,This is a number 3692.答:46H 6FH 72H 20H 65H 78H 61H6DH 70H 6CH 65H 2CH 0AH 0DH54H 68H 69H 73H
8、20H 69H 73H 20H 61H 20H 6EH 75H 6DH 62H 65H 72H 20H 33H 36H 39H32H 2EH 0AH 0DH第 二 章 2.1在 80 x86微 机 的 输 入/输 出 指 令 中,I/O端 口 号 通 常 是 由 D X寄 存 器 提 供 的,但 有 时 也 可 以 在 指 令 中 直 接 指 定 00FFH的 端 口 号。试 问 可 直 接 由 指 令 指 定 的 I/O端 口 数。答:可 直 接 由 指 令 指 定 的 I/O端 口 数 为 256个。2.2 有 两 个 16位 字 1EE5H和 2A 3cH分 别 存 放 在 80 x86
9、微 机 的 存 储 器 的 000B0H和 000B3H单 元 中,请 用 图 表 示 出 它 们 在 存 储 器 里 的 存 放 情 况。答:存 储 器 里 的 存 放 情 况 如 右 下 图 所 示:000B0H E5H000B1H 1EH000B2H000B3H 3CH000B4H 2AH2.3 在 IBM P C机 的 存 储 器 中 存 放 信 息 如 右 下 图 所 示。试 读 出 30022H和 30024H字 节 单 元 的 内 容,以 及 30021H和 30022H字 单 元 的 内 容。30020H 12H30021H34H30022H ABH3OO23H CDH3002
10、4H EFH答:30022H字 节 单 元 的 内 容 为 ABH;30024H字 节 单 元 的 内 容 为 EFH。30021H字 单 元 的 内 容 为 AB34H;30022H字 单 元 的 内 容 为 CDABH。2.4 在 实 模 式 下,段 地 址 和 偏 移 地 址 为 3017:000A的 存 储 单 元 的 物 理 地 址 是 什 么?如 果 段 地 址 和 偏 移 地 址 是 3 0 6 0 0 2 A和 3010:007A呢?答:3017:000A、3015:002A和 3010:007A的 存 储 单 元 的 物 理 地 址 都 是 3017AH。2.5 如 果 在
11、一 个 程 序 开 始 执 行 以 前(CS)=0A7F0H,(如 16进 制 数 的 最 高 位 为 字 母,则 应 在 其 前 加 一 个 0)(IP)=2B 40H,试 问 该 程 序 的 第 一 个 字 的 物 理 地 址 是 多 少?答:该 程 序 的 第 一 个 字 的 物 理 地 址 是 0AAA40H。2.6 在 实 模 式 下,存 储 器 中 每 一 段 最 多 可 有 10000H个 字 节。如 果 用 调 试 程 序 DEBUG的 r 命 令 在 终 端 上 显 示 出 当 前 各 寄 存 器 的 内 容 如 下,请 画 出 此 时 存 储 器 分 段 的 示 意 图,以
12、 及 条 件 标 志 OF、SF、ZF、CF 的 值。Cdebug-rAX=0000 BX=0000 CX句 079 DX=0000 SP=FFEE BP=0000SI=0000 DI=0000 DS=10E4 ES=10F4 SS=21F0 CS=31FFIP=0100 NV UP DI PL NZ NA PO NC答:此 时 存 储 器 分 段 的 示 意 图 如 右 图 所 示。OF、SF、ZF、C F的 值 都 为 0。2.7 下 列 操 作 可 使 用 那 些 寄 存 器?(1)加 法 和 减 法 数 据 寄 存 器 等(2)循 环 计 数 CX(3)乘 法 和 除 法 AX、D X
13、,乘 数 和 除 数 用 其 他 寄 存 器 或 存 储 器(4)保 存 段 地 址 段 寄 存 器(5)表 示 运 算 结 果 为 0ZF=l(6)将 要 执 行 的 指 令 地 址 CS:IP(7)将 要 从 堆 栈 取 出 数 据 的 地 址 SS:SP答:答 案 见 题 目 的 右 边。2.8 那 些 寄 存 器 可 以 用 来 指 示 存 储 器 地 址?答:BX、BP、SI、DI、堆 栈 操 作 时 的 SP、对 应 的 段 地 址、386及 其 后 继 机 型 的 Exx。2.9 请 将 下 列 左 边 的 项 和 右 边 的 解 释 联 系 起 来(把 所 选 字 母 放 在
14、括 号 中):(I)CPU(M)A.保 存 当 前 栈 顶 地 址 的 寄 存 器。(2)存 储 器(C)B.指 示 下 一 条 要 执 行 的 指 令 的 地 址。(3)堆 栈(D)C.存 储 程 序、数 据 等 信 息 的 记 忆 装 置,微 机 有 RA M和 ROM两 种。(4)IP(B)D.以 后 进 先 出 方 式 工 作 的 存 储 空 间。SP(A)E.把 汇 编 语 言 程 序 翻 译 成 机 器 语 言 程 序 的 系 统 程 序。(6)状 态 标 志(L)F.唯 一 代 表 存 储 空 间 中 每 个 字 节 单 元 的 地 址。(7)控 制 标 志(K)G能 被 计 算
15、 机 直 接 识 别 的 语 言。(8)段 寄 存 器(J)H.用 指 令 的 助 记 符、符 号 地 址、标 号 等 符 号 书 写 程 序 的 语 言。(9)物 理 地 址(F)1.把 若 干 个 模 块 连 接 起 来 成 为 可 执 行 文 件 的 系 统 程 序。(1 0)汇 编 语 言(H)J.保 存 各 逻 辑 段 的 起 始 地 址 的 寄 存 器,8086/8088机 有 四 个:CS、DS、SS、ESo(1 1)机 器 语 言(G)K.控 制 操 作 的 标 志,如 D F位。(1 2)汇 编 程 序(E)L.记 录 指 令 操 作 结 果 的 标 志,共 6位:OF、SF
16、、ZF、AF、PF、CF。(1 3)连 接 程 序 M.分 析、控 制 并 执 行 指 令 的 部 件,由 算 术 逻 辑 部 件 ALU和 寄 存 器 等 组 成。(1 4)指 令(O)N.由 汇 编 程 序 在 汇 编 过 程 中 执 行 的 指 令。(1 5)伪 指 令(N)O.告 诉 C PU要 执 行 的 操 作(一 般 还 要 指 出 操 作 数 地 址),在 程 序 运 行 时 执 行。答:答 案 见 题 目 的 括 号 中。程 序-员 _if考 计 研 算 机 计 书 卜 算 载 机 电 子 硬 知 识 件 网 知 络 识 专 下 载 业 课 程 答 案 视 频 教 程 下 载
17、 第 三 章 作 者:佚 名 来 源:网 络 3.1给 定(BX)=637DH,(SI)=2A 9B H,位 移 量 D=7237H,试 确 定 在 以 下 各 种 寻 址 方 式 下 的 有 效 地 址 是 什 么?(1)立 即 寻 址(2)直 接 寻 址(3)使 用 B X的 寄 存 器 寻 址(4)使 用 B X的 简 接 寻 址(5)使 用 B X的 寄 存 器 相 对 寻 址(6)基 址 变 址 寻 址(7)相 对 基 址 变 址 寻 址 答:(I)操 作 数 在 指 令 中,即 立 即 数;(2)EA=D=7237H;(3)无 E A,操 作 数 为(BX)=637DH;(4)EA
18、=(BX)=637DH;(5)EA=(BX)+D=0D5B4H;(6)EA=(BX)+(SI)=8E18H;EA=(BX)+(SI)+D=1004FH;超 过 了 段 的 边 界,最 高 进 位 位 丢 失,因 此 EA=004FH。3.2试 根 据 以 下 要 求 写 出 相 应 的 汇 编 语 言 指 令 把 B X寄 存 器 和 D X寄 存 器 的 内 容 相 加,结 果 存 入 D X寄 存 器 中。(2)用 寄 存 器 B X和 S I的 基 址 变 址 寻 址 方 式 把 存 储 器 中 的 一 个 字 节 与 A L寄 存 器 的 内 容 相 加,并 把 结 果 送 到 A L
19、寄 存 器 中。(3)用 寄 存 器 B X和 位 移 量 OB2H的 寄 存 器 相 对 寻 址 方 式 把 存 储 器 中 的 一 个 字 和(CX)相 加,并 把 结 果 送 回 存 储 器 中。(4)用 位 移 量 为 0524H的 直 接 寻 址 方 式 把 存 储 器 中 的 一 个 字 与 数 2A 59H相 加,并 把 结 果 送 回 存 储 单 元 中。把 数 OB5H与(AL)相 加,并 把 结 果 送 回 A L中。答:ADDDX,BX(2)ADD AL,|BX|SI(3)ADD IBX+0B2HJ,CX(4)ADD WORD PTR 0524H,2A59H ADD AL
20、,0B5H3.3写 出 把 首 地 址 为 BLOCK的 字 数 组 的 第 6个 字 送 到 D X寄 存 器 的 指 令。要 求 使 用 以 下 几 种 寻 址 方 式:(1)寄 存 器 间 接 寻 址(2)寄 存 器 相 对 寻 址(3)基 址 变 址 寻 址 答:(1)MOV BX,OFFSET BLOCKADD BX,(6-l)*2MOV DX,BX MOV BX,OFFSET BLOCK 改 为:MOV BX,(6-l)*2MOV DX,BX+(6-1)*2也 可 MOV DX,BLOCKIBX(3)MOV BX,OFFSET BLOCKMOV SI,(6-l)*2MOV DX,B
21、XSI3.4 现 有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101 H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试 说 明 下 列 各 条 指 令 执 行 完 后 A X寄 存 器 的 内 容。(l)M OVAX,1200H(2)MOV AX,BX MOV AX,1200H(4)MOV AX,BX MOV AX,1100|BX(6)MOV AX,BXSI MOV AX,1100BXSI答:(1)(AX)=1200
22、H(2)(AX)=0100H(3)(AX)=4C2AH(4)(AX)=3412H(5)(AX)=4C2AH(6)(AX)=7856H(7)(AX)=65B7H3.5 给 定(IP)=2BC0H,(CS)=0200H,位 移 量 D=5119H,(BX)=1200H,(DS)=212AH,(224A0H)=0600H,(275B9H)=098AH,试 为 以 下 的 转 移 指 令 找 出 转 移 的 偏 移 地 址。(1)段 内 直 接 寻 址(2)使 用 B X及 寄 存 器 间 接 寻 址 方 式 的 段 内 间 接 寻 址(3)使 用 B X及 寄 存 器 相 对 寻 址 方 式 的 段
23、 内 间 接 寻 址 答:(l)JM PNEAR PTR 5119H;(IP)=5119H+(IP)+03H)=7CDCH,物 理 地 址 PA=09CDCH(IP)+03H是 JMP NEAR PTR 5 119H指 令 的 下 一 条 指 令 的 首 地 址。(2)JMPWORD PTR BX;(IP)=(DS)*10H+(BX)=0600H,PA=02600H(3)JMPDBX;(IP)=(DS)*10H+(BX)+D)=098AH,PA=0298AH3.6 设 当 前 数 据 段 寄 存 器 的 内 容 为 1B00H,在 数 据 段 的 偏 移 地 址 2000H单 元 内,含 有
24、一 个 内 容 为 OFF1OH和 8000H的 指 针,它 们 是 一 个 16位 变 量 的 偏 移 地 址 和 段 地 址,试 写 出 把 该 变 量 装 入 A X的 指 令 序 列,并 画 图 表 示 出 来。答:MOV BX,2000H;图 示 如 上 所 示。MOVAX,2000H+2MOV ES,AXMOVAX,ES:BX3.7 在 0624H单 元 内 有 一 条 二 字 节 JMP SHORT O B J指 令,如 其 中 位 移 量 为(1)2 7 H,6BH,0 C 6 H,试 问 转 向 地 址 O B J的 值 是 多 少?答:(1)OBJ=0624H+()2H+2
25、7H=064DH(2)OBJ=0624H+02H+6BH=0691H(3)OBJ=0624H+02H+0C6H=05ECH;C 6H对 应 的 负 数 为-3AH(向 上 转 移,负 位 移 量)3.8 假 定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数 据 段 中 变 量 名 VAL的 偏 移 地 址 为 0 0 5 0 H,试 指 出 下 列 源 操 作 数 字 段 的 寻 址 方 式 是 什 么?其 物 理 地 址 值 是 多 少?(1)MOV AX,OABH(2)MOV AX,BX(3)MOV A
26、X,100H(4)MOV AX,VAL(5)MOV AX,BX(6)MOV AX,ES:BX(7)MOV AX,BP(8)MOV AX,SI(9)MOV AX,BX+10(10)MOV AX,VALBX(11)MOV AX,BXSI(12)MOV AX,VALBXSI答:(1)立 即 方 式;操 作 数 在 本 条 指 令 中(2)寄 存 器 寻 址 方 式;操 作 数 为(BX)=0100H(3)直 接 寻 址 方 式;PA=20100H(4)直 接 寻 址 方 式;PA=20050H(5)B X寄 存 器 间 接 寻 址 方 式;PA=20100H(6)附 加 段 B X寄 存 器 间 接
27、 寻 址 方 式;PA=21100H B P寄 存 器 间 接 寻 址 方 式;PA=I5OIOH(8)S I寄 存 器 间 接 寻 址 方 式;PA=200A0H B X寄 存 器 相 对 寻 址 方 式;PA=20110H(10)B X寄 存 器 相 对 寻 址 方 式;PA=20150H(11)B X和 S1寄 存 器 基 址 变 址 寻 址 方 式;PA=201A0H(12)B X和 S1寄 存 器 相 对 基 址 变 址 寻 址 方 式;PA=201F0H3.9在 ARRAY数 组 中 依 次 存 储 了 七 个 字 数 据,紧 接 着 是 名 为 ZERO的 字 单 元,表 示 如
28、 下:ARRAY DW 23,36,2,100,32000,54,0ZERO DW?(1)如 果 B X包 含 数 组 ARRAY的 初 始 地 址,请 编 写 指 令 将 数 据 0传 送 给 ZERO单 元。(2)如 果 B X包 含 数 据 0在 数 组 中 的 位 移 量,请 编 写 指 令 将 数 据 0传 送 给 ZERO单 元。答:(1)MOV AX,BX+(7-l)*2MOV|BX+(7)*2,AX(2)MOV AX,ARRAY BXMOV ARRAY BX+2,AX3.1 0 如 TABLE为 数 据 段 中 0032单 元 的 符 号 名,其 中 存 放 的 内 容 为 1
29、234H,试 问 以 下 两 条 指 令 有 什 么 区 别?指 令 执 行 完 后 A X寄 存 器 的 内 容 是 什 么?MOV AX,TABLELEA AX,TABLE答:MOV AX,TABLE 是 将 TABLE 单 元 的 内 容 送 至 lj AX,(AX)=1234HLEA AX,TABLE是 将 TABLE单 元 的 有 效 地 址 送 至 lj AX,(AX)=0032H3.1 1 执 行 下 列 指 令 后 A X寄 存 器 中 的 内 容 是 什 么?TABLE DW 10,20,30,40,50;000AH,0014H,001 EH,0028H,0032HENTRY
30、 DW 3 MOV BX,OFFSET TABLEADD BX,ENTRYMOV AX,BX答:(AX)=lE00H(TABLE的 存 储 方 式 如 右 图 所 示)3.1 2 下 列 ASCII码 串(包 括 空 格 符)依 次 存 储 在 起 始 地 址 为 CSTRING的 字 节 单 元 中:CSTRING DB BASED ADDRESSING请 编 写 指 令 将 字 符 串 中 的 第 1个 和 第 7个 字 符 传 送 给 D X寄 存 器。答:MOV DH,CSTRINGMOV DL,CSTRING+7-13.1 3 已 知 堆 栈 段 寄 存 器 S S的 内 容 是 O
31、FFAOH,堆 栈 指 针 寄 存 器 S P的 内 容 是 0 0 B 0 H,先 执 行 两 条 把 8057H和 OF79H分 别 进 栈 的 PU SH指 令,再 执 行 一 条 P O P指 令。试 画 出 堆 栈 区 和 SP的 内 容 变 化 过 程 示 意 图(标 出 存 储 单 元 的 物 理 地 址)。答:堆 栈 区 和 S P的 内 容 变 化 过 程 示 意 图 如 下 左 图 所 示。3.1 4 设(DS)=1BOOH,(E S)=2B 00H,有 关 存 储 单 元 的 内 容 如 上 右 图 所 示。请 写 出 两 条 指 令 把 字 变 量 X 装 入 A X寄
32、 存 器。答:MOV BX,2000HMOVAX,ES:BX3.1 5 求 出 以 下 各 十 六 进 制 数 与 十 六 进 制 数 62A0H之 和,并 根 据 结 果 设 置 标 志 位 SF、ZF、CF和 O F的 值。(1)1234H(2)4321H(3)CFA0H(4)9D60H答:(1)和 为 74D4H;SF=O,ZF=0,CF=0,OF=0 和 为 A5C1H;SF=1,ZF=O,CF=0,OF=1(3)和 为 3240H;SF=O,ZF=0,CF=1,OF=0(4)和 为 0000H;SF=O,ZF=1,CF=1,OF=03.1 6求 出 以 下 各 十 六 进 制 数 与
33、 十 六 进 制 数 4A E0H的 差 值,并 根 据 结 果 设 置 标 志 位 SF、ZF、C F和 O F的 值。(1)1234H(2)5D90H(3)9090H(4)EA04H答:(1)差 为 C754H;SF=1,ZF=0,CF=1,OF=0 差 为 12B0H;SF=O,ZF=0,CF=0,OF=0(3)差 为 45B0H;SF=O,ZF=0,CF=0,OF=1(4)差 为 9F24H;SF=1,ZF=0,CF=0,OF=03.1 7写 出 执 行 以 下 计 算 的 指 令 序 列,其 中 X、Y、Z、R、W 均 为 存 放 16位 带 符 号 数 单 元 的 地 址。(1)Z
34、-W+(Z-X)(2)Z-W-(X+6)-(R+9)(3)Z(W*X)/(Y+6),R一 余 数(4)Z-(W-X)/5*Y)*2答:(1)M OVAX,Z;以 下 程 序 都 未 考 虑 带 符 号 数 的 溢 出 SUB AX,XADD AX,WMOV Z,AX MOV BX,XADD BX,6MOV CX,RADD CR,9MOV AX,WSUB AX,BXSUB AX,CXMOV Z,AX ADD Y,6MOV AX,WIMULXIDIVYMOV Z,AXMOV R,DX(4)MOV AX,WSUB AX,XCWDMOV BX,5IDIV BXIMULYSHLAX,1;(DX),(AX
35、)*2RCLDX,13.1 8已 知 程 序 段 如 下:MOV AX,1234H;(A X)=1234H,标 志 位 不 变 MOV CL,4;(AX)和 标 志 位 都 不 变 ROLAX,CL;(AX)=2341H,CF=1,SF 和 ZF 不 变 DEC AX;(AX)=2340H,CF=1 不 变,SF=O,ZF=0MOV CX,4;(AX)和 标 志 位 都 不 变 MULCX;(AX)=8D00H,C F=O F=0,其 它 标 志 无 定 义 INT 20H试 问:(1)每 条 指 令 执 行 完 后,A X寄 存 器 的 内 容 是 什 么?(2)每 条 指 令 执 行 完
36、后,进 位、符 号 和 零 标 志 的 值 是 什 么?(3)程 序 结 束 时,A X和 D X的 内 容 是 什 么?答:(1)见 注 释;(2)见 注 释;(3)(AX)=8D00H,(DX)=O3.1 9 下 列 程 序 段 中 的 每 条 指 令 执 行 完 后,A X寄 存 器 及 CF、SF、Z F和 O F的 内 容 是 什 么?MOV AX,0;(A X)=0,标 志 位 不 变 DEC AX;(AX)=OFFFFH,CF 不 变,SF=1,ZF=0,OF=0ADD AX,7FFFH;(AX)=7FFEH,CF=1,SF=O,ZF=0,OF=0ADD AX,2:(AX)=80
37、00H,CF=0,SF=1,ZF=0,OF=1NOTAX;(AX)=7FFFH,标 志 位 不 变 SUB AX,OFFFFH;(AX)=8000H,CF=1,SF=1,ZF=0,OF=1ADD AX,8000H;(AX)=0,CF=1,SF=O,ZF=1,OF=1SUB AX,1;(AX)=0FFFFH,CF=1,SF=L ZF=0,OF=0AND AX,58D1H:(AX)=58D1H,CF=0,SF=O,ZF=0,OF=0SAL AX,1;(AX)=OB1 A2H,CF=0,SF=1,ZF=0,OF=1SARAX,1;(AX)=OD8D1H,CF=0,SF=1,ZF=0,OF=0NEG
38、AX;(AX)=272FH,CF=1,SF=O,ZF=0,OF=0ROR AX,1;(AX)=9397H,CF=1,SF 和 ZF 不 变,OF=1答:见 注 释。3.2 0 变 量 DATAX和 变 量 DATAY的 定 义 如 下:DATAXDW0148HDW 2316HDATAY DW 0237HDW 4052H请 按 下 列 要 求 写 出 指 令 序 列:(1)DATAX和 DATAY两 个 字 数 据 相 加,和 存 放 在 DATAY中。DATAX和 DATAY两 个 双 字 数 据 相 加,和 存 放 在 从 DATAY开 始 的 双 字 单 元 中。(3)解 释 下 列 指
39、令 的 作 用:STCMOV BX,DATAXADC BX,DATAY DATAX和 DATAY两 个 字 数 据 相 乘(用 MUL)。DATAX和 DATAY两 个 双 字 数 据 相 乘(用 MUL)。(6)DATAX 除 以 23(用 DIV)。DATAX双 字 除 以 字 DATAY(川 DIV)O答:(l)M O V AX,DATAXADD DATAY,AXMOVAX,DATAX+2ADD DATAY+2,AX(2)MOV AX,DATAXADD DATAY,AXMOV AX,DATAX+2ADC DATAY+2,AXMOV DATAY+4,0;用 于 存 放 进 位 位 ADC
40、DATAY+4,0 DATAX和 DATAY两 个 字 数 据 之 和 加 1,结 果 存 入 B X寄 存 器。(4)RESULTl DW0DWORESULT2 DW 0DWO1 MOV AX,DATAXMULDATAYMOV RESULT1,AXMOV RESULT1+2,DXMOV AX,DATAX+2MULDATAY+2MOV RESUET2,AXMOV RESUET2+2,DX(5)AADWOBB DWOCC DWODD DWO MOV AX,DATAXMULDATAYM OVAA,AXMOV BB,DXMOV AX,DATAXMULDATAY+2ADD BB,AXADC CC,DX
41、MOV AX,DATAX+2MULDATAYADD BB,AXADC CC,DXADC DD,0MOV AX,DATAX+2MULDATAY+2ADD CC,AXADC DD,DX(6)MOV AX,DATAXMOV BL,23DIV BL(7)MOV DX,DATAX+2MOV AX,DATAXDIV DATAY3.2 1写 出 对 存 放 在 D X和 A X中 的 双 字 长 数 求 补 的 指 令 序 歹 lj。答:NEG D X 也 可 为:NOTDXNEGAXNOTAXSBBDX,0ADDAX,1ADC DX,03.2 2 试 编 写 一 程 序 求 出 双 字 长 数 的 绝 对
42、 值。双 字 长 数 在 A 和 A+2单 元 中,结 果 存 放 在 B 和 B+2单 元 中。答:程 序 段 如 下:MOVAX,AMOV DX,A+2CM PDX,0JNS ZHENSHU;不 是 负 数 则 转 走 NEG DXNEG AXSBB DX,0ZHENSHU:MOV B,AXMOV B+2,DXINT 20H3.2 3 假 设(B X)=0E 3H,变 量 V A LU E中 存 放 的 内 容 为 7 9 H,确 定 下 列 各 条 指 令 单 独 执 行 后 的 结 果。(l)X O R BX,VALUE;(BX)=9AH,CF、OF 都 为 0,AF 无 定 义,SF
43、=1,ZF=0,PF=1(2)AND BX,VALUE;(BX)=61H,CF、OF 都 为 0,AF 无 定 义,SF=O,ZF=0,PF=0(3)OR BX,VALUE;(BX)=0FBH,CF、OF 都 为 0,AF 无 定 义,SF=1,ZF=0,PF=0(4)XOR BX,OFFH;(BX)=1CH,CF、OF 都 为 0,AF 无 定 义,SF=O,ZF=0,PF=0(5)AND BX,0;(BX)=00H,CF、OF 都 为 0,AF 无 定 义,SF=O,ZF=1,PF=1(6)TEST BX,01H;(BX)=0E3H,CF、OF 都 为 0,AF 无 定 义,SF=1,ZF
44、=0,PF=0答:见 注 释。3.2 4 试 写 出 执 行 下 列 指 令 序 列 后 B X寄 存 器 的 内 容。执 行 前(BX)=6D16H。MOV CL,7SHRBX,CL答:(BX)=00DAHo3.2 5 试 用 移 位 指 令 把 十 进 制 数+53和-49分 别 乘 以 2。它 们 应 该 用 什 么 指 令?得 到 的 结 果 是 什 么?如 果 要 除 以 2呢?答:MOV AL,53SAL AL,1;(AL)=(+53*2)=6AHMOV AL,-49SAL AL,1;(AL)=(-49*2)=9EHMOV AL,53SAR AL,1;(AL)=(53/2)=1AH
45、MOV A L,-49SARAL,1;(AL)=(-49/2)=0E7H3.2 6 试 分 析 下 面 的 程 序 段 完 成 什 么 功 能?MOV CL,04SHLDX,CLMOV BL,AHSHLAX,CLSHR BL,CLOR DL,BL答:本 程 序 段 将(DX),(AX)的 双 字 同 时 左 移 4位,即 将 此 双 字 乘 以 10H(16)。3.2 7假 定(DX)=0B9H,(CL)=3,(C F)=1,确 定 下 列 各 条 指 令 单 独 执 行 后 D X中 的 值。(l)SH R DX,1;(DX)=05CH(2)S AR DX,CL;(DX)=17H SHL D
46、X,CL;(DX)=5C8H(4)SHL DL,1;(DX)=72H(5)ROR DX,CL;(DX)=2017H(6)ROL DL,CL;(DX)=0CDH(7)SAL DH,1;(DX)=0B9H(8)RCLDX,CL;(DX)=2CCH RCR DL,1;(DX)=0DCH答:见 注 释。3.2 8 下 列 程 序 段 执 行 完 后,B X寄 存 器 的 内 容 是 什 么?MOV CL,3MOV BX,0B7HROL BX,1ROR BX,CL答:(BX)=0C02DH。3.2 9 假 设 数 据 段 定 义 如 下:CONAME DB SPACE EXPLORERS INC/PRU
47、NE DB 20 D U P(“)用 串 指 令 编 写 程 序 段 分 别 完 成 以 下 功 能:(1)从 左 到 右 把 CONAME中 的 字 符 串 传 送 到 PRLINE。从 右 到 左 把 CONAME中 的 字 符 串 传 送 至 lj PRUNE。把 CONAM E中 的 第 3和 第 4个 字 节 装 入 AX。(4)把 A X寄 存 器 的 内 容 存 入 从 PRLINE+5开 始 的 字 节 中。(5)检 查 CONAME字 符 串 中 有 无 空 格 字 符,如 有 则 把 第 一 个 空 格 字 符 的 地 址 传 送 给 B X寄 存 器。答:MOV CX,2
48、0CLDMOV SI,SEG CONAMEMOV DS,SIMOV ES,SILEA SI,CONAMELEA DI,PRUNEREP MOVSB MOV CX,20STDMOV SI,SEG CONAMEMOV DS,SIMOV ES,SILEA SI,CONAMEADD SI,20-1LEA DI,PRLINEADD DI,20-1REPMOVSB(3)MOV AX,WORD PTR CONAME+3-1(4)MOV WORD PTR PRUNE+5,AX(5)MOV AL,4 9;空 格 的 ASCII码 送 A L寄 存 器 CLDMOV DI,SEG CONAMEMOV ES,DIL
49、EA DI,CONAMEREPNE SCASBJNE NEXTDEC DIMOV BX,DIN E X T::3.3 0 编 写 程 序 段,把 字 符 串 STRING中 的,&,字 符 用 空 格 符 代 替。STRING DB The date is FEB&03答:程 序 段 如 下:MOVCX,18MOVAL,CLDMOV DI,SEG STRINGMOV ES,DILEA DI,STRINGREPNE SCASBJNE NEXTDEC DIMOV ES:BYTE PTR D I,;送 空 格 符 N E X T::3.3 1 假 设 数 据 段 中 数 据 定 义 如 下:STUD
50、ENT_NAME DB 30 DUP(?)STUDENT_ADDR DB 9 DUP(?)PR1NT.LINE DB 132DUP(?)分 别 编 写 下 列 程 序 段:用 空 格 符 清 除 PRINT_LINE域。在 STUDENT_ADDR中 查 找 第 一 个 在 STUDENT_ADDR中 查 找 最 后 一 个(4)如 果 STUDENT_NAME域 中 全 是 空 格 符 时、填 入 七。(5)把 STUDENT.NAME 移 至 lj PRINT_LINE 的 前 30个 字 节 中,把 STUDENT.ADDR 移 至 ljPRINT_LINE的 后 9个 字 节 中。答: