IBM-PC汇编语言程序设计课后习题答案第二版_沈美明.pdf
《IBM-PC汇编语言程序设计课后习题答案第二版_沈美明.pdf》由会员分享,可在线阅读,更多相关《IBM-PC汇编语言程序设计课后习题答案第二版_沈美明.pdf(231页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 一 章 表 6-2地 址 表 达 式 专 用 运 算 符 I 段 超 越 前 缀“:,用 于 给 变 量、标 号 或 地 址 表 达 式 临 时 指 定 一 个 段 属 性。类 型 运 算 符 地 址 运 算 符 分 离 运 算 符:(段 超 越 前 缀)PTR(类 型 属 性)THIS(定 义 类 型)SEG(取 段 地 址)OFFSET(取 偏 移 地 址)TYPE(取 类 型)LENGTH(取 变 量 单 元 数)SIZE(取 变 量 总 字 节 数)HIGH(取 高 字 节)LOW(取 低 字 节)格 式:段 寄 存 器 名:地 址 表 达 式 示 例:MOV AL,ES:1000
2、H,附 加 数 据 段 中 偏 移 地 址 为 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 取 段 地 址 运 算
3、 符 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
4、BX.TYPE A,变 量 A 的 类 型 值 送 BX。变 量 与 标 号 的 类 型 值 如 表 6-3所 示。表 6-3变 量 或 标 号 的 类 型 值 变 量 类 型 类 型 值 标 号 类 型 类 型 值 BYTE(字 节)1 NEAR-1WORD(字)2 FAR-2DWORD(双 字)4QWORD(4 字)8TBYTE(10 字 节)10I 取 变 量 单 元 数 运 算 符 LENGTH。产 生 其 后 变 量 所 包 含 的 单 元 数。格 式:LENGTH变 量 LENGTH的 运 算 结 果 由 变 量 定 义 伪 指 令 中 第 个 表 达 式 的 形 式 而 定。若
5、变 量 定 义 伪 指 令 中 第 个 表 达 式 为 重 复 子 句“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),0
6、1H,0 5 H,则 运 算 结 果 为 5。I 分 离 高 字 节 运 算 符 HIGH。产 生 其 后 运 算 对 象 的 高 字 节。格 式:HIG H运 算 对 象 示 例:MOV AL,HIGH 1234H,(AL)=12HI 分 离 低 字 节 运 算 符 LOW。产 生 其 后 运 算 对 象 的 低 字 节。格 式:LO W运 算 对 象 示 例:MOV AL,LOW 1234H,(AL)=34H(4)汇 编 语 言 程 序 中 也 允 许 使 用 注 释,注 释 是 程 序 员 分 析 程 序 或 交 流 程 序 设 计 思 想 的 种 手 段,在 程 序 功 能 上 不 起
7、 作 用。分 号 是 汇 编 语 言 的 注 释 符 号,分 号 后 面 的 文 字 直 到 行 尾 都 是 注 释 内 容。(5)汇 编 语 言 程 序 结 束,必 须 返 回 DOS操 作 系 统,才 能 时 程 序 进 行 编 译 和 链 接。返 回 DOS的 最 常 用 方 法 是 使 用 4CH号 系 统 功 能 调 用。如 上 述 程 序 中 的“MOV AH,4cH”和“INT21H”两 条 语 句。:、汇 编 程 序 中 常 用 的 伪 指 令 1.变 量 定 义 伪 指 令 功 能:为 数 据 分 配 存 储 单 元,同 时 为 存 储 单 元 指 定 一 个 变 量 名。种
8、 类:DB:字 节 变 量 定 义 伪 指 令 DW:字 变 量 定 义 伪 指 令 DD:双 字 变 量 定 义 伪 指 令 格 式:变 量 DB(或 DW、DD)一 个 或 多 个 表 达 式 示 例 1:DB 100 DUP(0)分 配 100个 字 节 的 存 储 空 间,每 个 字 节 的 初 始 值 为 0,“()”里 也 可 以 只 写 一 个“?”表 示 不 指 定 初 始 值。示 例 2:DATADB 13H,57H定 义 一 个 由 两 个 字 节 构 成 的 数 据 区,内 容 是 13H,57H。存 储 结 构 如 图 6-1-2所 示。为 简 化 问 题,图 中 数
9、据 用 十 六 进 制 数 表 示。示 例 3:A DW 1357H为 变 量 A 分 配 一 个 字 空 间,其 中 内 容 为 1357H。定 义 一 个 值 为 1357H的 字 变 量 为 A,其 存 储 结 构 如 图 6-1-3所 示。2.段 定 义 伪 指 令 段 定 义 伪 指 令 的 主 要 功 能 是 指 示 汇 编 程 序 如 何 按 段 组 织 程 序 和 使 用 存 储 器。(1)SEGMENT 和 ENDS 伪 指 令 功 能:用 于 对 段 结 构 进 行 定 义,以 将 程 序 分 成 若 干 逻 辑 段。格 式:段 名 SEGMENT段 名 ENDS(2)AS
10、SUME伪 指 令 功 能:ASSUME用 于 指 定 程 序 中 定 义 的 各 个 逻 辑 段 的 功 能,即 哪 一 段 为 数 据 段、哪 一 段 为 堆 栈 段、哪 段 为 附 加 段,哪 一 段 为 代 码 段。格 式:ASSUM段 寄 存 器:段 名,段 寄 存 器:段 名 例 如 上 述 程 序 中 的“ASSUME CS:CSEG,DS:DSEG,SS:SSEG”伪 指 令 的 功 能 是 设 定 程 序 中 定 义 的 CSEG段 将 作 为 代 码 段,DSEG段 将 作 为 数 据 段,SSEG段 将 作 为 堆 栈 段,并 将 CS、DS和 S S分 别 设 定 为
11、代 码 段、数 据 段 和 堆 栈 段 寄 存 器。需 要 注 意,ASSUME伪 指 令 只 是 指 定 段 功 能,即 告 知 汇 编 程 序 有 关 段 寄 存 器 被 指 定 为 存 放 哪 个 段 的 段 地 址,但 并 不 为 各 段 寄 存 器 设 定 初 值。所 以,程 序 中 必 须 通 过 指 令 给 各 段 寄 存 器 来 设 定 具 体 值。C S和S S是 由 系 统 设 定,DS和 ES需 要 程 序 员 在 程 序 中 指 定。如 I:述 程 序 中,代 码 段 的 前 两 条 指 令 MOV AX,DSEG”和“MOV DS,AX”即 是 给 数 据 段 寄 存
12、 器 D S设 定 具 体 值。3.赋 值 伪 指 令(1)EQL)伪 指 令 功 能:用 数 值 或 表 达 式 定 义 标 识 符,使 标 识 符 成 为 符 号 常 量 或 等 同 于 表 达 式,以 便 在 后 面 程 序 中 引 用。格 式:标 识 符 E Q U表 达 式(或 数 值)例:COUNT EQU 6;使 符 号 常 量 COUNT等 于 6。ADDREQUES:BXSI;使 ADDR 等 同 于 表 达 式 ES:(2)=伪 指 令 功 能:与 EQU基 本 相 同,但“=”可 以 对 同 一 标 识 符 重 新 赋 值,EQU不 可 以。格 式:标 识 符=表 达 式
13、(或 数 值)例: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 0
14、000(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
15、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)
16、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=
17、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
18、)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表 示
19、的 十 进 制 数 为 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
20、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单 元 中,请 用 图 表 示 出
21、它 们 在 存 储 器 里 的 存 放 情 况。答:存 储 器 里 的 存 放 情 况 如 右 下 图 所 示:OOOBOH E5H000B1H 1EH000B2H000B3H 3CH000B4H 2AH2.3在 IBM PC机 的 存 储 器 中 存 放 信 息 如 右 下 图 所 示。试 读 出 30022H和 30024H字 节 单 元 的 内 容,以 及 30021H和 30022H字 单 元 的 内 容。30020H 12H30021H 34H30022H ABH30023H CDH30024H EFH答:30022H字 节 单 元 的 内 容 为 ABH;30024H字 节 单 元
22、 的 内 容 为 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进 制 数 的 最 高 位 为 字
23、 母,则 应 在 其 前 加 一 个 0)(IP)=2B40H,试 问 该 程 序 的 第 一 个 字 的 物 理 地 址 是 多 少?答:该 程 序 的 第 一 个 字 的 物 理 地 址 是 0AAA40H。2.6在 实 模 式 下,存 储 器 中 每 一 段 最 多 可 有 10000H个 字 节。如 果 用 调 试 程 序 DEBUG的 r 命 令 在 终 端 上 显 示 出 当 前 各 寄 存 器 的 内 容 如 下,请 画 出 此 时 存 储 器 分 段 的 示 意 图,以 及 条 件 标 志 OF、SF、ZF、CF的 值。Odebug-rAX=0000 BX=0000 CX=00
24、79 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)表 示 运
25、 算 结 果 为 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.指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IBM PC 汇编语言 程序设计 课后 习题 答案 第二 沈美明
限制150内