没有合适的资源?快使用搜索试试~ 我知道了~
首页IBM-PC汇编语言程序设计 课后答案
IBM-PC汇编语言程序设计 课后答案
需积分: 9 151 浏览量
更新于2023-03-03
评论
收藏 616KB DOC 举报
IBM-PC汇编语言程序设计答案 沈、温 合编的那个!答案非常详细!是学习汇编的不可缺少的!学好汇编,再学好其他的高级语言就更好了!
资源详情
资源评论
资源推荐

作 者 :
附录:《 IBM—PC 汇编语言程序设计》习题参考答案
第 一 章. 习 题
用降幂法和除法将下列十进制数转换为二进制数和十六进制数:
答:
将下列二进制数转换为十六进制数和十进制数:
答:
将下列十六进制数转换为二进制数和十进制数:
答:
完成下列十六进制数的运算,并转换为十进制数进行校核:
! "
答:
!!
"
下列各数均为十进制数,请用 位二进制补码计算下列各题,并用十六进制数表示其运算结果。
答: ;!;#
;!;#
;!;#
; ! ;
#
; ! ;
#
; ! ;
#
下列各数为十六进制表示的 位二进制数,请说明当它们分别被看作是用补码表示的带符号数或
无符号数时,它们所表示的十进制数是什么?
答: 表示的带符号数为, 表示的无符号数为 ;
表示的带符号数为, 表示的无符号数为 。
下列各数均为用十六进制表示的 位二进制数,请说明当它们分别被看作是用补码表示的数或字
符的 $!%% 码时,它们所表示的十进制数及字符是什么?
答: 表示的十进制数为, 表示的字符为 #;
表示的十进制数为, 表示的字符为 ;
表示的十进制数为 , 表示的字符为 ;
表示的十进制数为 , 表示的字符为 &。
请写出下列字符串的 $!%% 码值。
'()*+

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

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

作 者 :
写出把首地址为 >#!A 的字数组的第 个字送到 3 寄存器的指令。要求使用以下几种寻址方
式:
寄存器间接寻址
寄存器相对寻址
基址变址寻址
答:5#=3+#$,>#!A
3+–
F
5#=3+C3D
5#=3+#$,>#!A 改为: 5#=3+F
5#=3+C3 –
F
D 也可 5#=3+>#!AC3D
5#=3+#$,>#!A
5#=$%+–
F
5#=3+C3DC$%D
现有$,3,$%,,,,
,,!,,,试说明下列
各条指令执行完后 3 寄存器的内容。
5#=3+
5#=3+3
5#=3+CD
5#=3+C3D
5#=3+C3D
5#=3+C3DC$%D
5#=3+C3DC$%D
答:3
3
3!
3
3!
3
3
给 定 %6! , !$ , 位 移 量 , 3 , $ ,
,,试为以下的转移指令找出转移的偏移地址。
段内直接寻址
使用 3 及寄存器间接寻址方式的段内间接寻址
使用 3 及寄存器相对寻址方式的段内间接寻址
答:B56<@6,@;%6 %6 !!,物理地址 6!!
%6 是 B56<@6,@ 指令的下一条指令的首地址。
B56E#@6,@C3D ;%6$F 3,6
B56C3D ;%6$F 3 ,6
设当前数据段寄存器的内容为 ,在数据段的偏移地址 单元内,含有一个内容为
和 的指针,它们是一个 位变量的偏移地址和段地址,试写出把该变量装入 3
的指令序列,并画图表示出来。
答:5#=3+CD ;图示如上所示。
5#=3+C D
5#=$+3
5#=3+$7C3D
在 单元内有一条二字节 B56$#@,#B 指令,如其中位移量为,,
!,试问转向地址 #B 的值是多少?
答:#B
#B
#B !! ;! 对应的负数为 (向上转 移, 负位移
量)
题的作图表示
7
7
7
7
7
7
?→ >
?→
5#= 3+
>$ 3+C3D
5#= 3+$G7C3D

作 者 :
假定$,$,$$,$%,3,6,数据段
中变量名 => 的偏移地址为 ,试指出下列源操作数字段的寻址方式是什么?其物理地址值
是多少?
5#= 3+ 5#= 3+3
5#= 3+CD 5#=3+=>
5#= 3+C3D 5#=3+$7C3D
5#= 3+C6D 5#=3+C$%D
5#= 3+C3 D 5#= 3+=>C3D
5#= 3+C3DC$%D 5#= 3+=>C3DC$%D
答:立即方式; 操作数在本条指令中
寄存器寻址方式; 操作数为3
直接寻址方式; 6
直接寻址方式; 6
3 寄存器间接寻址方式; 6
附加段 3 寄存器间接寻址方式; 6
6 寄存器间接寻址方式; 6
$% 寄存器间接寻址方式; 6
3 寄存器相对寻址方式; 6
3 寄存器相对寻址方式; 6
3 和 $% 寄存器基址变址寻址方式; 6
3 和 $% 寄存器相对基址变址寻址方式; 6
在 @@& 数组中依次存储了七个字数据,紧接着是名为 9@# 的字单元,表示如下:
@@& E++++++
9@# EH
如果 3 包含数组 @@& 的初始地址,请编写指令将数据 传送给 9@# 单元。
如果 3 包含数据 在数组中的位移量,请编写指令将数据 传送给 9@# 单元。
答:5#=3+C3 FD
5#=C3 FD+3
5#=3+@@&C3D
5#=@@&C3 D+3
如 ,> 为数据段中 单元的符号名,其中存放的内容为 ,试问以下两条指令有什么
区别?指令执行完后 3 寄存器的内容是什么?
5#= 3+,>
> 3+,>
答:5#= 3+,> 是将 ,> 单元的内容送到 3,3
> 3+,> 是将 ,> 单元的有效地址送到 3,3
执行下列指令后 3 寄存器中的内容是什么?
,> E++++ ;++++
<,@& E
┇
5#= 3+#$,,>
3+<,@&
5#= 3+C3D
答:3,> 的存储方式如右图所示
下列 $!%% 码串包括空格符依次存储在起始地址为 !$,@%<8 的字节单元中:
!$,@%<8I$@$$%<8J
请编写指令将字符串中的第 个和第 个字符传送给 3 寄存器。
答:5#=+!$,@%<8
5#=>+!$,@%<8
已知堆栈段寄存器 $$ 的内容是 ,堆栈指针寄存器 $6 的内容是 ,先执行两条把
和 分别进栈的 6$ 指令,再执行一条 6#6 指令。试画出堆栈区和 $6 的内容变化
过程示意图标出存储单元的物理地址。
,>
,>
题的 ,>
存储方式
剩余63页未读,继续阅读













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

评论0