没有合适的资源?快使用搜索试试~ 我知道了~
首页80x86汇编语言程序设计答案 清华版 (沈美明 温冬婵 编著)
80x86汇编语言程序设计答案 清华版 (沈美明 温冬婵 编著)

80x86汇编语言程序设计答案 清华版 (沈美明 温冬婵 编著)内有大量汇编习题和详细解答,供初学汇编语言的参考。
资源详情
资源评论
资源推荐

作 者 : 喻 其 山
《80x86 汇编语言程序设计》习题参考答案
清华大学出版社 沈美明 温冬婵 著
第 一 章. 习 题
用降幂法和除法将下列十进制数转换为二进制数和十六进制数:
答:
将下列二进制数转换为十六进制数和十进制数:
答:
将下列十六进制数转换为二进制数和十进制数:
答:
完成下列十六进制数的运算,并转换为十进制数进行校核:
答:
下列各数均为十进制数,请用 位二进制补码计算下列各题,并用十六进制数表示其运算结果。
答:;;!
;;!
;;!
; ;
!
; ;
!
; ;
!
下列各数为十六进制表示的 位二进制数,请说明当它们分别被看作是用补码表示的带符号数或
无符号数时,它们所表示的十进制数是什么?
答: 表示的带符号数为 , 表示的无符号数为 ;
表示的带符号数为 , 表示的无符号数为 。
下列各数均为用十六进制表示的 位二进制数,请说明当它们分别被看作是用补码表示的数或字
符的 "## 码时,它们所表示的十进制数及字符是什么?
答: 表示的十进制数为 , 表示的字符为 !;
表示的十进制数为 , 表示的字符为 ;
表示的十进制数为 , 表示的字符为 $;
表示的十进制数为 , 表示的字符为 %。
请写出下列字符串的 "## 码值。

作 者 : 喻 其 山
&'()&*
+,-$-$./'0&
答:
第 二 章. 习 题
在 微机的输入1输出指令中,#1! 端口号通常是由 2 寄存器提供的,但有时也可以在指令
中直接指定 3 的端口号。试问可直接由指令指定的 #1! 端口数。
答:可直接由指令指定的 #1! 端口数为 个。
有两个 位字 和 分别存放在 微机的存储器的
和 单元中,请用图表示出它们在存储器里的存放情况。
答:存储器里的存放情况如右上图所示。
在 #45 机的存储器中存放信息如右下图所示。试读出 和
字节单元的内容,以及 和 字单元的内容。
答 : 字 节 单 元 的 内 容 为 ; 字 节 单 元 的 内 容 为
。 字单元的内容为 ; 字单元的内容为
。
在实模式下,段地址和偏移地址为 6 的存储单元的物理地址是
什么?如果段地址和偏移地址是 6 和 6 呢?
答:6、6 和 6 的存储单元的物理地址都是
。
如果在一个程序开始执行以前",如 进制数的最高位为
字母,则应在其前加一个 #5,试问该程序的第一个字的物
理地址是多少?
答:该程序的第一个字的物理地址是 。
在实模式下,存储器中每一段最多可有 个字节。如果用调试程序 78 的 命令在终端
上 显 示 出 当 前 各 寄 存 器 的 内 容 如 下 , 请 画 出 此 时 存 储 器 分 段 的 示 意 图 , 以 及 条 件 标 志
!、"、9、 的值。
:&0/;
2222"55
"##"""""
#5<=75#5><9<5!<
答:此时存储器分段的示意图如右图所示。!、"、9、 的值都
为 。
下列操作可使用那些寄存器?
加法和减法 数据寄存器等
循环计数 2
乘法和除法 2、2,乘数和除数用其他寄
存器或存储器
保存段地址 段寄存器
表示运算结果为 9
将要执行的指令地址 "6#5
将要从堆栈取出数据的地址 ""6"5
答:答案见题目的右边。
那些寄存器可以用来指示存储器地址?
答:2、5、"#、#、堆栈操作时的 "5、对应的段地址、 及其后继机型的 。
请将下列左边的项和右边的解释联系起来把所选字母放在括号中:
34H30021H
ABH30022H
CDH30023H
EFH30024H
存储器
2.3 题的信息存放情况
12H30020H
E5H000B0H
1EH000B1H
3CH000B3H
2AH000B4H
存储器
2.2 题的信息存放情况
…000B2H
40
10E40
40
20E40
00
00
31FF0
41FF0
附加段
数据段
堆栈段
代码段
2.6 题的存储器分段示意图

作 者 : 喻 其 山
57 4 保存当前栈顶地址的寄存器。
存储器 指示下一条要执行的指令的地址。
堆栈 存储程序、数据等信息的记忆装置,微机有 ?4 和 ?!4 两种。
#5 以后进先出方式工作的存储空间。
"5 把汇编语言程序翻译成机器语言程序的系统程序。
状态标志 > 唯一代表存储空间中每个字节单元的地址。
控制标志 @ 8能被计算机直接识别的语言。
段寄存器 A 用指令的助记符、符号地址、标号等符号书写程序的语言。
物理地址 #把若干个模块连接起来成为可执行文件的系统程序。
汇编语言 A保存各逻辑段的起始地址的寄存器,1 机有四个:"、"、
""、"。
机器语言8 @控制操作的标志,如 位。
汇编程序 >记录指令操作结果的标志,共 位:!、"、9、、5、。
连接程序# 4分析、控制并执行指令的部件,由算术逻辑部件 >7 和寄存器等
组成。
指令 ! <由汇编程序在汇编过程中执行的指令。
伪指令 < !告诉 57 要执行的操作一般还要指出操作数地址,在程序运行时
执行。
答:答案见题目的括号中。
第 三 章. 习 题
给定2,"#,位移量 ,试确定在以下各种寻址方式下的有效地址是
什么?
立即寻址
直接寻址
使用 2 的寄存器寻址
使用 2 的简接寻址
使用 2 的寄存器相对寻址
基址变址寻址
相对基址变址寻址
答:操作数在指令中,即立即数;
;
无 ,操作数为2;
2;
2;
2"#;
2"#;超过了段的边界,最高进位位丢失,因此 。
试根据以下要求写出相应的汇编语言指令
把 2 寄存器和 2 寄存器的内容相加,结果存入 2 寄存器中。
用寄存器 2 和 "# 的基址变址寻址方式把存储器中的一个字节与 > 寄存器的内容相加,并把
结果送到 > 寄存器中。
用寄存器 2 和位移量 的寄存器相对寻址方式把存储器中的一个字和2相加,并把结
果送回存储器中。
用位移量为 的直接寻址方式把存储器中的一个字与数 相加,并把结果送回存储
单元中。
把数 与>相加,并把结果送回 > 中。
答:2*2
>*B2CB"#C
B2C*2

作 者 : 喻 其 山
D!?5+?BC*
>*
写出把首地址为 >!@ 的字数组的第 个字送到 2 寄存器的指令。要求使用以下几种寻址方
式:
寄存器间接寻址
寄存器相对寻址
基址变址寻址
答:4!=2*!"+>!@
2*E
F
4!=2*B2C
4!=2*!"+>!@ 改为: 4!=2*F
4!=2*B2E
F
C 也可 4!=2*>!@B2C
4!=2*!"+>!@
4!="#*E
F
4!=2*B2CB"#C
现有",2,"#,,,,
,,,,,试说明下列
各条指令执行完后 2 寄存器的内容。
4!=2*
4!=2*2
4!=2*BC
4!=2*B2C
4!=2*B2C
4!=2*B2CB"#C
4!=2*B2CB"#C
答:2
2
2
2
2
2
2
给 定 #5 , " , 位 移 量 , 2 , " ,
,,试为以下的转移指令找出转移的偏移地址。
段内直接寻址
使用 2 及寄存器间接寻址方式的段内间接寻址
使用 2 及寄存器相对寻址方式的段内间接寻址
答:A45<?5+?;#5#5,物理地址 5
#5 是 A45<?5+? 指令的下一条指令的首地址。
A45D!?5+?B2C ;#5"F2,5
A45B2C ;#5"F2,5
设当前数据段寄存器的内容为 ,在数据段的偏移地址 单元内,含有一个内容为
和 的指针,它们是一个 位变量的偏移地址和段地址,试写出把该变量装入 2
的指令序列,并画图表示出来。
答:4!=2*BC ;图示如上所示。
4!=2*BC
4!="*2
4!=2*"6B2C
在 单元内有一条二字节 A45"!?+!A 指令,如其中位移量为,,
,试问转向地址 !A 的值是多少?
答:!A
!A
FFH
00H
80H
3.6 题的作图表示
10H1B00:2000H
1B00:2001H
1B00:2002H
1B00:2003H
8000:FF10H
8000:FF11H
?→ (AL)
?→ (AH)
4!= 2*
>" 2*B2C
4!= 2*"G6B2C

作 者 : 喻 其 山
!A ; 对应的负数为 (向上转 移, 负位移
量)
假定",","","#,2,5,数据段
中变量名 => 的偏移地址为 ,试指出下列源操作数字段的寻址方式是什么?其物理地址值
是多少?
4!= 2* 4!= 2*2
4!= 2*BC 4!=2*=>
4!= 2*B2C 4!=2*"6B2C
4!= 2*B5C 4!=2*B"#C
4!= 2*B2C 4!= 2*=>B2C
4!= 2*B2CB"#C 4!= 2*=>B2CB"#C
答:立即方式; 操作数在本条指令中
寄存器寻址方式; 操作数为 2
直接寻址方式; 5
直接寻址方式; 5
2 寄存器间接寻址方式; 5
附加段 2 寄存器间接寻址方式; 5
5 寄存器间接寻址方式; 5
"# 寄存器间接寻址方式; 5
2 寄存器相对寻址方式; 5
2 寄存器相对寻址方式; 5
2 和 "# 寄存器基址变址寻址方式; 5
2 和 "# 寄存器相对基址变址寻址方式; 5
在 ??% 数组中依次存储了七个字数据,紧接着是名为 9?! 的字单元,表示如下:
??% D******
9?! DH
如果 2 包含数组 ??% 的初始地址,请编写指令将数据 传送给 9?! 单元。
如果 2 包含数据 在数组中的位移量,请编写指令将数据 传送给 9?! 单元。
答:4!=2*B2FC
4!=B2FC*2
4!=2*??%B2C
4!=??%B2C*2
如 +> 为数据段中 单元的符号名,其中存放的内容为 ,试问以下两条指令有什么
区别?指令执行完后 2 寄存器的内容是什么?
4!= 2*+>
> 2*+>
答:4!= 2*+> 是将 +> 单元的内容送到 2,2
> 2*+> 是将 +> 单元的有效地址送到 2,2
执行下列指令后 2 寄存器中的内容是什么?
+> D**** ;****
<+?% D
┇
4!= 2*!"++>
2*<+?%
4!= 2*B2C
答:2+> 的存储方式如右图所示
下列 "## 码串包括空格符依次存储在起始地址为 "+?#<8 的字节单元中:
"+?#<8I"?""#<8J
请编写指令将字符串中的第 个和第 个字符传送给 2 寄存器。
答:4!=*"+?#<8
4!=>*"+?#<8
0AH
00H
14H
00H
1EH
00H
28H
00H
32H
00H
TABLE
TABLE+3
3.11 题的 TABLE
存储方式
剩余63页未读,继续阅读













安全验证
文档复制为VIP权益,开通VIP直接复制

评论1