IBM-PC汇编语言程序设计课后习题答案第二版_沈美明.pdf
第 一 章 表 6-2地 址 表 达 式 专 用 运 算 符 I 段 超 越 前 缀“:,用 于 给 变 量、标 号 或 地 址 表 达 式 临 时 指 定 一 个 段 属 性。类 型 运 算 符 地 址 运 算 符 分 离 运 算 符:(段 超 越 前 缀)PTR(类 型 属 性)THIS(定 义 类 型)SEG(取 段 地 址)OFFSET(取 偏 移 地 址)TYPE(取 类 型)LENGTH(取 变 量 单 元 数)SIZE(取 变 量 总 字 节 数)HIGH(取 高 字 节)LOW(取 低 字 节)格 式:段 寄 存 器 名:地 址 表 达 式 示 例:MOV AL,ES:1000H,附 加 数 据 段 中 偏 移 地 址 为 1000H的 存 储 单 元 送 AL。I 类 型 运 算 符 PTR。给 变 量、标 号 或 地 址 表 达 式 临 时 指 定 一 个 类 型。格 式:类 型 P T R地 址 表 达 式 示 例:MOV AX,WORD PTR 1000H,1000H 单 元 开 始 的 一 个 字 送 AX。I 类 型 定 义 运 算 符 THIS。指 定 变 量、标 号 或 地 址 表 达 式 的 类 型。格 式:标 识 符 EQU THIS 类 型 示 例:A EQU THIS B Y T E,变 量 A 为 字 节 类 型 I 取 段 地 址 运 算 符 SEG。产 生 其 后 变 量 或 标 号 所 在 段 的 段 地 址。格 式:S E G变 量(或 标 号)示 例:MOV AX,SEG D A T A,变 量 DATA的 段 地 址 送 AX.I 取 偏 移 地 址 运 算 符 OFFSE。产 生 其 后 变 量 或 标 号 的 偏 移 地 址。格 式:OFFSET变 量(或 标 号)示 例:MOV BX,OFFSET D A T A,变 量 DATA的 偏 移 地 址(首 地 址)送 BX。I 取 类 型 运 算 符 TYPE。产 生 其 后 变 量 或 标 号 的 类 型 值。格 式:TYPE变 量(或 标 号)示 例:MOV BX.TYPE A,变 量 A 的 类 型 值 送 BX。变 量 与 标 号 的 类 型 值 如 表 6-3所 示。表 6-3变 量 或 标 号 的 类 型 值 变 量 类 型 类 型 值 标 号 类 型 类 型 值 BYTE(字 节)1 NEAR-1WORD(字)2 FAR-2DWORD(双 字)4QWORD(4 字)8TBYTE(10 字 节)10I 取 变 量 单 元 数 运 算 符 LENGTH。产 生 其 后 变 量 所 包 含 的 单 元 数。格 式:LENGTH变 量 LENGTH的 运 算 结 果 由 变 量 定 义 伪 指 令 中 第 个 表 达 式 的 形 式 而 定。若 变 量 定 义 伪 指 令 中 第 个 表 达 式 为 重 复 子 句“nDUP(数 值 表 达 式)”,则 结 果 为 重 复 因 子 n:否 则 结 果 为 1。示 例:LENGTH DATA若 定 义 DATA DB 3 DUP(4),01H,0 5 H,则 运 算 结 果 为 3。若 定 义 DATA DB 01H,3 DUP(4),0 5 H,则 运 算 结 果 为 1。I 取 变 量 总 字 节 数 运 算 符 S IZ E,产 生 其 后 变 量 所 包 含 的 总 字 节 数。格 式:S IZ E变 量 示 例:SIZE DATA若 定 义 DATA DB 3 DUP(4),01H,0 5 H,则 运 算 结 果 为 5。I 分 离 高 字 节 运 算 符 HIGH。产 生 其 后 运 算 对 象 的 高 字 节。格 式:HIG H运 算 对 象 示 例:MOV AL,HIGH 1234H,(AL)=12HI 分 离 低 字 节 运 算 符 LOW。产 生 其 后 运 算 对 象 的 低 字 节。格 式:LO W运 算 对 象 示 例:MOV AL,LOW 1234H,(AL)=34H(4)汇 编 语 言 程 序 中 也 允 许 使 用 注 释,注 释 是 程 序 员 分 析 程 序 或 交 流 程 序 设 计 思 想 的 种 手 段,在 程 序 功 能 上 不 起 作 用。分 号 是 汇 编 语 言 的 注 释 符 号,分 号 后 面 的 文 字 直 到 行 尾 都 是 注 释 内 容。(5)汇 编 语 言 程 序 结 束,必 须 返 回 DOS操 作 系 统,才 能 时 程 序 进 行 编 译 和 链 接。返 回 DOS的 最 常 用 方 法 是 使 用 4CH号 系 统 功 能 调 用。如 上 述 程 序 中 的“MOV AH,4cH”和“INT21H”两 条 语 句。:、汇 编 程 序 中 常 用 的 伪 指 令 1.变 量 定 义 伪 指 令 功 能:为 数 据 分 配 存 储 单 元,同 时 为 存 储 单 元 指 定 一 个 变 量 名。种 类:DB:字 节 变 量 定 义 伪 指 令 DW:字 变 量 定 义 伪 指 令 DD:双 字 变 量 定 义 伪 指 令 格 式:变 量 DB(或 DW、DD)一 个 或 多 个 表 达 式 示 例 1:DB 100 DUP(0)分 配 100个 字 节 的 存 储 空 间,每 个 字 节 的 初 始 值 为 0,“()”里 也 可 以 只 写 一 个“?”表 示 不 指 定 初 始 值。示 例 2:DATADB 13H,57H定 义 一 个 由 两 个 字 节 构 成 的 数 据 区,内 容 是 13H,57H。存 储 结 构 如 图 6-1-2所 示。为 简 化 问 题,图 中 数 据 用 十 六 进 制 数 表 示。示 例 3:A DW 1357H为 变 量 A 分 配 一 个 字 空 间,其 中 内 容 为 1357H。定 义 一 个 值 为 1357H的 字 变 量 为 A,其 存 储 结 构 如 图 6-1-3所 示。2.段 定 义 伪 指 令 段 定 义 伪 指 令 的 主 要 功 能 是 指 示 汇 编 程 序 如 何 按 段 组 织 程 序 和 使 用 存 储 器。(1)SEGMENT 和 ENDS 伪 指 令 功 能:用 于 对 段 结 构 进 行 定 义,以 将 程 序 分 成 若 干 逻 辑 段。格 式:段 名 SEGMENT段 名 ENDS(2)ASSUME伪 指 令 功 能:ASSUME用 于 指 定 程 序 中 定 义 的 各 个 逻 辑 段 的 功 能,即 哪 一 段 为 数 据 段、哪 一 段 为 堆 栈 段、哪 段 为 附 加 段,哪 一 段 为 代 码 段。格 式:ASSUM段 寄 存 器:段 名,段 寄 存 器:段 名 例 如 上 述 程 序 中 的“ASSUME CS:CSEG,DS:DSEG,SS:SSEG”伪 指 令 的 功 能 是 设 定 程 序 中 定 义 的 CSEG段 将 作 为 代 码 段,DSEG段 将 作 为 数 据 段,SSEG段 将 作 为 堆 栈 段,并 将 CS、DS和 S S分 别 设 定 为 代 码 段、数 据 段 和 堆 栈 段 寄 存 器。需 要 注 意,ASSUME伪 指 令 只 是 指 定 段 功 能,即 告 知 汇 编 程 序 有 关 段 寄 存 器 被 指 定 为 存 放 哪 个 段 的 段 地 址,但 并 不 为 各 段 寄 存 器 设 定 初 值。所 以,程 序 中 必 须 通 过 指 令 给 各 段 寄 存 器 来 设 定 具 体 值。C S和S S是 由 系 统 设 定,DS和 ES需 要 程 序 员 在 程 序 中 指 定。如 I:述 程 序 中,代 码 段 的 前 两 条 指 令 MOV AX,DSEG”和“MOV DS,AX”即 是 给 数 据 段 寄 存 器 D S设 定 具 体 值。3.赋 值 伪 指 令(1)EQL)伪 指 令 功 能:用 数 值 或 表 达 式 定 义 标 识 符,使 标 识 符 成 为 符 号 常 量 或 等 同 于 表 达 式,以 便 在 后 面 程 序 中 引 用。格 式:标 识 符 E Q U表 达 式(或 数 值)例:COUNT EQU 6;使 符 号 常 量 COUNT等 于 6。ADDREQUES:BXSI;使 ADDR 等 同 于 表 达 式 ES:(2)=伪 指 令 功 能:与 EQU基 本 相 同,但“=”可 以 对 同 一 标 识 符 重 新 赋 值,EQU不 可 以。格 式:标 识 符=表 达 式(或 数 值)例:COUNT=6COUNT=COUNT+11.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=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(3)FFFE(4)1234答:(1)FAH=1111 1010B=250(2)5BH=101 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 位 二 进 制 补 码 计 算 下 列 各 题,并 用 十 六 进 制 数 表 示 其 运 算 结 果。(1)(-85)+76(2)85+(-76)(3)85-76(4)85-(-76)(5)(-85)-76(6)-85-(-76)答:(1)(-85)+76=1010 1011B+0100 1100B=llll 0111B=0F7H;CF=0;0F=0(2)85+(-76)=0101 0101B+1011 01008=0000 1001B=09H;CF=1;OF=0(3)85-76=0101 0101B-0100 1100B=0101 0101B+1011 01006=0000 1001B=09H;CF=0;OF=0(4)85-(-76)=0101 0101B-1011 0100B=0101 0101B+01001100B=10100001B=0AlH;CF=0;OF=1(5)(-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;0F=l(6)-85-(-76)=1010 1011B-10U 0100B=1010 lOUB+OlOO1100B=11110111B=0F7H;CF=O;0F=01.6 下 列 各 数 为 十 六 进 制 表 示 的 8 位 二 进 制 数,请 说 明 当 它 们 分 别 被 看 作 是 用 补 码 表 示 的 带 符 号 数 或 无 符 号 数 时,它 们 所 表 示 的 十 进 制 数 是 什 么?(1)D8(2)FF答:(1)D8H表 示 的 带 符 号 数 为-40,D8H表 示 的 无 符 号 数 为 216;(2)FFH表 示 的 带 符 号 数 为 T,FFH表 示 的 无 符 号 数 为 255。1.7 下 列 各 数 均 为 用 十 六 进 制 表 示 的 8 位 二 进 制 数,请 说 明 当 它 们 分 别 被 看 作 是 用 补 码 表 示 的 数 或 字 符 的 A S C H码 时,它 们 所 表 示 的 十 进 制 数 及 字 符 是 什 么?(1)4F(2)2B(3)73(4)59答:(1)4FH表 示 的 十 进 制 数 为 79,4FH表 示 的 字 符 为 0;(2)2BH表 示 的 十 进 制 数 为 43,2BH表 示 的 字 符 为+;(3)73H表 示 的 十 进 制 数 为 115,73H表 示 的 字 符 为 s;(4)59H表 示 的 十 进 制 数 为 89,59H表 示 的 字 符 为 Y。1.8 请 写 出 下 列 字 符 串 的 A S C H码 值。For example,This is a number 3692.答:46H 6FH 72H 20H 65H 78H 61H 6DH 70H 6CH 65H 2CH OAH ODH54H 68H 69H 73H 20H 69H 73H 20H 61H 20H 6EH 75H 6DH 62H 65H 72H 20H 33H36H 39H 32H 2EH OAH ODH第 二 章 2.1在 80 x86微 机 的 输 入/输 出 指 令 中,I/O端 口 号 通 常 是 由 DX寄 存 器 提 供 的,但 有 时 也 可 以 在 指 令 中 直 接 指 定 OOFFH的 端 口 号。试 问 可 直 接 由 指 令 指 定 的 I/O端 口 数。答:可 直 接 由 指 令 指 定 的 I/O端 口 数 为 256个。2.2 有 两 个 16位 字 1EE5H和 2A3CH分 别 存 放 在 80 x86微 机 的 存 储 器 的 OOOBOH和 000B3H单 元 中,请 用 图 表 示 出 它 们 在 存 储 器 里 的 存 放 情 况。答:存 储 器 里 的 存 放 情 况 如 右 下 图 所 示:OOOBOH E5H000B1H 1EH000B2H000B3H 3CH000B4H 2AH2.3在 IBM PC机 的 存 储 器 中 存 放 信 息 如 右 下 图 所 示。试 读 出 30022H和 30024H字 节 单 元 的 内 容,以 及 30021H和 30022H字 单 元 的 内 容。30020H 12H30021H 34H30022H ABH30023H CDH30024H EFH答:30022H字 节 单 元 的 内 容 为 ABH;30024H字 节 单 元 的 内 容 为 EFH。30021H字 单 元 的 内 容 为 AB34H;30022H字 单 元 的 内 容 为 CDABH。2.4在 实 模 式 下,段 地 址 和 偏 移 地 址 为 3017:000A的 存 储 单 元 的 物 理 地 址 是 什 么?如 果 段 地 址 和 偏 移 地 址 是 3015:002A和 3010:007A呢?答:3017:000A、3015:002A和 3010:007A的 存 储 单 元 的 物 理 地 址 都 是 3017AH。2.5如 果 在 一 个 程 序 开 始 执 行 以 前(CS)=0A7F0H,(如 16进 制 数 的 最 高 位 为 字 母,则 应 在 其 前 加 一 个 0)(IP)=2B40H,试 问 该 程 序 的 第 一 个 字 的 物 理 地 址 是 多 少?答:该 程 序 的 第 一 个 字 的 物 理 地 址 是 0AAA40H。2.6在 实 模 式 下,存 储 器 中 每 一 段 最 多 可 有 10000H个 字 节。如 果 用 调 试 程 序 DEBUG的 r 命 令 在 终 端 上 显 示 出 当 前 各 寄 存 器 的 内 容 如 下,请 画 出 此 时 存 储 器 分 段 的 示 意 图,以 及 条 件 标 志 OF、SF、ZF、CF的 值。Odebug-rAX=0000 BX=0000 CX=0079 DX=0000 SP=FFEE BP=0000SI=OOOO DI=OOOO DS=10E4 ES=10F4 SS=21F0 CS=31FFIP=0100 NV UP DI PL NZ NA PO NC答:此 时 存 储 器 分 段 的 示 意 图 如 右 图 所 示。OF、SF、ZF、CF的 值 都 为 0。2.7 下 列 操 作 可 使 用 那 些 寄 存 器?(1)加 法 和 减 法 数 据 寄 存 器 等(2)循 环 计 数 CX(3)乘 法 和 除 法 AX、DX,乘 数 和 除 数 用 其 他 寄 存 器 或 存 储 器(4)保 存 段 地 址 段 寄 存 器(5)表 示 运 算 结 果 为 0 ZF=1(6)将 要 执 行 的 指 令 地 址 CS:IP(7)将 要 从 堆 栈 取 出 数 据 的 地 址 SS:SP答:答 案 见 题 目 的 右 边。2.8 那 些 寄 存 器 可 以 用 来 指 示 存 储 器 地 址?答:BX、BP、SI、DI、堆 栈 操 作 时 的 SP、对 应 的 段 地 址、386及 其 后 继 机 型 的 Exxo2.9 请 将 下 列 左 边 的 项 和 右 边 的 解 释 联 系 起 来(把 所 选 字 母 放 在 括 号 中):(1)CPU(M)A.保 存 当 前 栈 顶 地 址 的 寄 存 器。(2)存 储 器(C)B.指 示 下 一 条 要 执 行 的 指 令 的 地 址。(3)堆 栈(D)C.存 储 程 序、数 据 等 信 息 的 记 忆 装 置,微 机 有 RAM和 ROM两 种。(4)IP(B)D.以 后 进 先 出 方 式 工 作 的 存 储 空 间。(5)SP(A)E.把 汇 编 语 言 程 序 翻 译 成 机 器 语 言 程 序 的 系 统 程 序。(6)状 态 标 志(L)F.唯 一 代 表 存 储 空 间 中 每 个 字 节 单 元 的 地 址。(7)控 制 标 志(K)G.能 被 计 算 机 直 接 识 别 的 语 言。(8)段 寄 存 器(J)H.用 指 令 的 助 记 符、符 号 地 址、标 号 等 符 号 书 写 程 序 的 语 言。(9)物 理 地 址(F)L 把 若 干 个 模 块 连 接 起 来 成 为 可 执 行 文 件 的 系 统 程 序。(10)汇 编 语 言(H)J.保 存 各 逻 辑 段 的 起 始 地 址 的 寄 存 器,8086/8088机 有 四 个:CS DS、SS、ESo(11)机 器 语 言(G)K.控 制 操 作 的 标 志,如 DF位。(12)汇 编 程 序(E)L.记 录 指 令 操 作 结 果 的 标 志,共 6 位:OF、SF、ZF、AF、PF、CFo(13)连 接 程 序(DM.分 析、控 制 并 执 行 指 令 的 部 件,由 算 术 逻 辑 部 件 ALU和 寄 存 器 等 组 成。(14)指 令(0)N.由 汇 编 程 序 在 汇 编 过 程 中 执 行 的 指 令。(15)伪 指 令(N)0.告 诉 CPU要 执 行 的 操 作(一 般 还 要 指 出 操 作 数 地 址),在 程 序 运 行 时 执 行。答:答 案 见 题 目 的 括 号 中。7X)/77)z77)zX)/)/234567空 n2345z(z/lzz(/(zz(z(二 z(z(z/lz(第 三 章 3.1 给 定(BX)=637DH,(SI)=2A9BH,位 移 量 D=7237H,试 确 定 在 以 下 各 种 寻 址 方 式 下 的 有 效 地 址 是 什 么?(1)立 即 寻 址 直 接 寻 址 使 用 BX的 寄 存 器 寻 址 使 用 BX的 简 接 寻 址 使 用 BX的 寄 存 器 相 对 寻 址 基 址 变 址 寻 址 相 对 基 址 变 址 寻 址(1)操 作 数 在 指 令 中,即 立 即 数;EA=D=7237H;无 EA,操 作 数 为(BX)=637DH;EA=(BX)=637DH;EA=(BX)+D=0D5B4H;(6)EA=(BX)+(SI)=8E18H;(7)EA=(BX)+(SI)+D=1004FH;超 过 了 段 的 边 界,最 高 进 位 位 丢 失,因 此 EA=004FH。3.2试 根 据 以 下 要 求 写 出 相 应 的 汇 编 语 言 指 令(1)把 BX寄 存 器 和 DX寄 存 器 的 内 容 相 加,结 果 存 入 DX寄 存 器 中。(2)用 寄 存 器 BX和 SI的 基 址 变 址 寻 址 方 式 把 存 储 器 中 的 一 个 字 节 与 AL寄 存 器 的 内 容 相 加,并 把 结 果 送 到 AL寄 存 器 中。(3)用 寄 存 器 BX和 位 移 量 0B2H的 寄 存 器 相 对 寻 址 方 式 把 存 储 器 中 的 一 个 字 和(CX)相 加,并 把 结 果 送 回 存 储 器 中。(4)用 位 移 量 为 0524H的 直 接 寻 址 方 式 把 存 储 器 中 的 一 个 字 与 数 2A59H相 加,并 把 结 果 送 回 存 储 单 元 中。(5)把 数 OB5H与(AL)相 加,并 把 结 果 送 回 AL中。答:ADD DX,BX(2)ADD AL,BXSI(3)ADD BX+0B2H,CX(4)ADD WORD PTR 0524H,2A59H(5)ADD AL,0B5H3.3写 出 把 首 地 址 为 BLOCK的 字 数 组 的 第 6 个 字 送 到 DX寄 存 器 的 指 令。要 求 使 用 以 下 几 种 寻 址 方 式:(1)寄 存 器 间 接 寻 址(2)寄 存 器 相 对 寻 址(3)基 址 变 址 寻 址 答:(1)MOV BX,OFFSET BLOCKADD BX,(6-1)*2MOV DX,BX(2)MOV BX,OFFSET BLOCK 改 为:MOV BX,(6-1)*2MOV DX,BX+(6-1)*2也 可 MOV DX,BLOCKBX(3)MOV BX,OFFSET BLOCKMOV SI,(6-1)*2MOV DX,BXSI3.4 现 有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试 说 明 下 列 各 条 指 令 执 行 完 后 AX寄 存 器 的 内 容。(1)MOV AX,1200H(2)MOV AX,BX(3)MOV AX,1200H(4)MOV AX,BX(5)MOV AX,1100BX(6)MOV AX,BX SI(7)MOV AX,1100BXSI答:(1)(AX)=1200H(2)(AX)=01OOH(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)使 用 BX及 寄 存 器 间 接 寻 址 方 式 的 段 内 间 接 寻 址(3)使 用 BX及 寄 存 器 相 对 寻 址 方 式 的 段 内 间 接 寻 址 答:(1)JMP NEAR PTR 5119H;(IP)=5119H+(IP)+03H)=7CDCH,物 理 地 址 PA=09CDCH(IP)+03H是 川 P NEAR PTR 5119H指 令 的 下 一 条 指 令 的 首 地 址。(2)JMP WORD PTR BX;(IP)=(DS)*10H+(BX)=0600H,PA=02600H(3)JMP DBX;(IP)=(DS)*10H+(BX)+D)=098AH,PA=0298AH3.6 设 当 前 数 据 段 寄 存 器 的 内 容 为 1BOOH,在 数 据 段 的 偏 移 地 址 2000H单 元 内,含 有 一 个 内 容 为 OFF1OH和 8000H的 指 针,它 们 是 一 个 16位 变 量 的 偏 移 地 址 和 段 地 址,试 写 出 把 该 变 量 装 入 AX的 指 令 序 列,并 画 图 表 示 出 来。答:MOV BX,2000H;图 示 如 上 所 示。MOV AX,2000H+2MOV ES,AXMOV AX,ES:BX3.7 在 0624H单 元 内 有 一 条 二 字 节 11MpsHORT OBJ指 令,如 其 中 位 移 量 为(1)27H,(2)6BH,(3)0C6H,试 问 转 向 地 址 OBJ的 值 是 多 少?答:(1)0BJ=0624H+02H+27H=064DH(2)0BJ=0624H+02H+6BH=0691H(3)0BJ=0624H+02H+0C6H=05ECH;C6H对 应 的 负 数 为-3AH(向 上 转 移,负 位 移 量)3.8 假 定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数 据 段 中 变 量 名 VAL的 偏 移 地 址 为 0050H,试 指 出 下 列 源 操 作 数 字 段 的 寻 址 方 式 是 什 么?其 物 理 地 址 值 是 多 少?(1)MOV AX,OABH(2)MOV AX,BX(3)MOV AX,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)立 即 方 式;操 作 数 在 本 条 指 令 中 寄 存 器 寻 址 方 式;操 作 数 为(BX)=0100H直 接 寻 址 方 式;PA=20100H直 接 寻 址 方 式;PA=20050HBX寄 存 器 间 接 寻 址 方 式;PA=20100H附 加 段 BX寄 存 器 间 接 寻 址 方 式;PA=21100HBP寄 存 器 间 接 寻 址 方 式;PA=15010HSI寄 存 器 间 接 寻 址 方 式;PA=200A0HBX寄 存 器 相 对 寻 址 方 式;PA=20110H(10)BX寄 存 器 相 对 寻 址 方 式;PA=20150HX)/)/7!/)/)zX)/)/T23456789/IXz(x/(/(7(/(/(/(X)/7-12良 交 二 z(z(生|=(11)BX和 SI寄 存 器 基 址 变 址 寻 址 万 式;PA=201A0H(12)BX和 SI寄 存 器 相 对 基 址 变 址 寻 址 方 式;PA=201F0H3.9在 ARRAY数 组 中 依 次 存 储 了 七 个 字 数 据,紧 接 着 是 名 为 ZERO的 字 单 元,表 示 如 下:ARRAY DW 23,36,2,100,32000,54,0ZERO DW?如 果 BX包 含 数 组 ARRAY的 初 始 地 址,请 编 写 指 令 将 数 据 0传 送 给 ZERO单 元。如 果 BX包 含 数 据 0 在 数 组 中 的 位 移 量,请 编 写 指 令 将 数 据 0传 送 给 ZERO,O(1)MOV AX,BX+(7-l)*2MOV BX+(7)*2,AX(2)MOV AX,ARRAY BXMOV ARRAY BX+2,AX3.10如 TABLE为 数 据 段 中 0032单 元 的 符 号 名,其 中 存 放 的 内 容 为 1234H,试 问 以 下 两 条 指 令 有 什 么 区 别?指 令 执 行 完 后 AX寄 存 器 的 内 容 是 什 么?MOV AX,TABLELEA AX,TABLE答:MOV AX,TABLE是 将 TABLE单 元 的 内 容 送 到 AX,(AX)=1234HLEA AX,TABLE是 将 TABLE单 元 的 有 效 地 址 送 到 AX,(AX)=0032H3.11执 行 下 列 指 令 后 AX寄 存 器 中 的 内 容 是 什 么?TABLE DW 10,20,30,40,50;000AH,0014H,001EH,0028H,0032HENTRY DW 3IIIMOV BX,OFFSET TABLEADD BX,ENTRYMOV AX,BX答:(AX)=1EOOH(TABLE的 存 储 方 式 如 右 图 所 示)3.12下 列 ASCII码 串(包 括 空 格 符)依 次 存 储 在 起 始 地 址 为 CSTRING的 字 节 单 元 中:CSTRING DB BASED ADDRESSINGJ请 编 写 指 令 将 字 符 串 中 的 第 1个 和 第 7 个 字 符 传 送 给 DX寄 存 器。答:MOV DH,CSTRINGMOV DL,CSTRING+7-13.13已 知 堆 栈 段 寄 存 器 SS的 内 容 是 0FFA0H,堆 栈 指 针 寄 存 器 SP的 内 容 是 00B0H,先 执 行 两 条 把 8057H和 OF79H分 别 进 栈 的 PUSH指 令,再 执 行 一 条 POP指 令。试 画 出 堆 栈 区 和 SP的 内 容 变 化 过 程 示 意 图(标 出 存 储 单 元 的 物 理 地 址)。答:堆 栈 区 和 SP的 内 容 变 化 过 程 示 意 图 如 下 左 图 所 示。3.14设(DS)=1BOOH,(ES)=2B00H,有 关 存 储 单 元 的 内 容 如 上 右 图 所 示。请 写 出 两 条 指 令 把 字 变 量 X 装 入 AX寄 存 器。答:MOV BX,2000HMOV AX,ES:BX3.15求 出 以 下 各 十 六 进 制 数 与 十 六 进 制 数 62A0H之 和,并 根 据 结 果 设 置 标 志 位 SF、ZF、CF 和 OF 的 值。x)z)zx)zXH71空 n234z(生 匚 z(z(z(1234H(2)4321H(3)CFAOH(4)9D60H(1)和 为 74D4H;SF=O,ZF=O,CF=O,0F=0和 为 A5C1H;SF=1,ZF=O,CF=O,OF=1和 为 3240H;SF=O,ZF=O,CF=1,0F=0和 为 0000H;SF=O,ZF=1,CF=1,0F=03.16求 出 以 下 各 十 六 进 制 数 与 十 六 进 制 数 4AE0H的 差 值,并 根 据 结 果 设 置 标 志 位 SF、ZF、CF和 OF的 值。(1)1234H(2)5D90H(3)9090H(4)EA04H答:差 为 C754H;SF=1,ZF=O,CF=1,OF=0(2)差 为 12B0H;SF=O,ZF=O,CF=O,0F=0(3)差 为 45B0H;SF=O,ZF=O,CF=O,OF=1(4)差 为 9F24H;SF=1,ZF=O,CF=O,0F=03.17写 出 执 行 以 下 计 算 的 指 令 序 列,其 中 X、Y、Z、R、W 均 为 存 放 16位 带 符 号 数 单 元 的 地 址。(1)Z*-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)MOV AX,Z;以 下 程 序 都 未 考 虑 带 符 号 数 的 溢 出 SUB AX,XADD AX,WMOV Z,AX(2)MOV BX,XADD BX,6MOV CX,RADD CR,9MOV AX,WSUB AX,BXSUB AX,CXMOV Z,AX(3)ADD Y,6MOV AX,WIMUL XIDIV YMOV Z,AXMOV R,DX(4)MOV AX,WSUB AX,XCWDMOV BX,5IDIV BXIMUL YSHL AX,1;(DX),(AX)*2RCL DX,13.1 8 已 知 程 序 段 如 下:MOV AX,1234H;(AX)=1234H,标 志 位 不 变MOV CL,4;(AX)和 标 志 位 都 不 变 ROL AX,CL;(AX)=2341H,CF=1,SF 和 ZF 不 变 DEC AX;(AX)=2340H,CF=1 不 变,SF=O,ZF=OMOV CX,4;(AX)和 标 志 位 都 不 变 MUL CX;(AX)=8D00H,CF=OF=O,其 它 标 志 无 定 义 INT 20H试 问:(1)每 条 指 令 执 行 完 后,AX寄 存 器 的 内 容 是 什 么?(2)每 条 指 令 执 行 完 后,进 位、符 号 和 零 标 志 的 值 是 什 么?(3)程 序 结 束 时,AX和 DX的 内 容 是 什 么?答:(1)见 注 释;(2)见 注 释;(3)(AX)=8D00H,(DX)=O3.19下 列 程 序 段 中 的 每 条 指 令 执 行 完 后,AX寄 存 器 及 CF、SF、ZF和 OF的 内 容 是 什 么?MOV AX,0;(AX)=O,标 志 位 不 变 DEC AX;(AX)=0FFFFH,CF 不 变,SF=1,ZF=O,0F=0ADD AX,7FFFH;(AX)=7FFEH,CF=1,SF=O,ZF=O,0F=0ADD AX,2;(AX)=8000H,CF=O,SF=1,ZF=O,OF=1NOT AX;(AX)=7FFFH,标 志 位 不 变 SUB AX,OFFFFH;(AX)=8000H,CF=1,SF=1,ZF=O,OF=1ADD AX,8000H;(AX)=O,CF=1,SF=O,ZF=1,OF=1SUB AX,1;(AX)=OFFFFH,CF=1,SF=1,ZF=O,OF=0AND AX,58D1H;(AX)=58D1H,CF=0,SF=O,ZF=O,0F=0SAL AX,1;(AX)=OB1A2H,CF=O,SF=1,ZF=O,OF=1SAR AX,1;(AX)=OD8D1H,CF=O,SF=1,ZF=O,0F=0NEG AX;(AX)=272FH,CF=1,SF=O,ZF=O,0F=0ROR AX,1;(AX)=9397H,CF=1,SF 和 ZF 不 变,OF=1答:见 注 释。3.20变 量 DATAX和 变 量 DATAY的 定 义 如 下:DATAX DW 0148HDW 2316HDATAY DW 0237HDW 4052H请 按 下 列 要 求 写 出 指 令 序 列:(1)DATAX和 DATAY两 个 字 数 据 相 加,和 存 放 在 DATAY中。(2)DATAX和 DATAY两 个 双 字 数 据 相 加,和 存 放 在 从 DATAY开 始 的 双 字 单 元 中。(3)解 释 下 列 指 令 的 作 用:STCMOV BX,DATAXADC BX,DATAY(4)DATAX和 DATAY两 个 字 数 据 相 乘(用 MUL)。(5)DATAX和 DATAY两 个 双 字 数 据 相 乘(用 MUL)。(6)DATAX 除 以 23(用 D