汇编第3章-汇编语言程序设计
- 格式:ppt
- 大小:2.73 MB
- 文档页数:179


第3章习题答案
3.1 给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么?
(1)立即寻址; 答案:无。 如:MOV AX,5
(2)直接寻址; 答案:7237H 如:MOV AX,[7237H]
(3)使用BX的寄存器寻址; 答案:无。因不涉及内存 如:MOV AX,BX
(4)使用BX的间接寻址; 答案:637DH 如:MOV AX,[BX]
(5)使用BX的寄存器相对寻址 答案:D5B4H 如:MOV AX,[BX+ 7237H]
(6)基址变址寻址 答案:8E18H 如:MOV AX,[BX][SI]
(7)相对基址变址寻址; 答案:无效,溢出 如:MOV AX,[BX][SI] + 7237H
3.2 试根据以下要求,写出相应的汇编语言指令:
(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中; 答案:ADD DX,BX
(2) 用寄存器BX 和SI 的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中; 答案:ADD AL,[BX][SI]
(3) 用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回到存储器中; 答案:ADD [BX+0B2H],CX
(4) 用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回到该存储单元中; 答案:ADD WORD PTR [0524H],2A59H
(5)把数0B5H与(AL)相加,并把结果送回AL中。答案:ADD AL, 0B5H
3.3 写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。要求使用以下几种寻址方式:
(1) 寄存器间接寻址
汇编语言程序设计(第四版)第3
章【课后答案】(总1 1页)
-本页仅作为文档封面,使用时请直接删除即可一
"内页可以根据需求调整合适字体及大小一 汇编语言程序设计 第四版
【课后习题答案】 ・・晒為槌
第3章汇编语言程序格式
〔习题〕伪指令语句与硬指令语句的本质区别是什么伪指令有什么主要作用
〔解答〕
伪指令语句与硬指令语句的本质区别是能不能产生CPU动作;
伪指令的作用是完成对如存储模式、主存变量、子程序、宏及段定义等很多不产生CPU动作的说 明,并在程序执行前由汇编程序完成处理。
〔习题〕什么是标识符,汇編程序中标识符怎样组成
(解答〕
为了某种需要,每种程序语言都规定了在程序里如何描述名字.程序语言的名字通常被称为标识 符;
汇编语言中的标识符一般最多由31个字母、数字及规定的特殊符号(如・,$, , @)组成,不能 以数字开头。
〔习题〕什么是保留字,汇编语言的保留字有哪些类型,并举例说明。
〔解答
保留字是在每种语言中规定了有特殊意义和功能的不允许再做其它用处的字符串;汇编语言的保留 字主要有硬指令助记、伪指令助记符、运算符、寄存器名以及预定义符号等。汇编语言对大小写不敏感。 如定义字节数和字符串的DB就是伪指令助记符。
〔习题〕汇编语句有哪两种,每个语句由哪4个部分组成
(解答〕
汇编语句有执行性语句和说明性语句;
执行性语句由标号、硬指令助记符、操作数和注释四部分组成;
说明性语句由名字、伪指令助记符、参数和注释四部分组成
〔习题〕汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。
〔解答〕
1. 编辑 文本編辑程序 汇编语言源程序.asm
2. 汇编 汇编程序 目标模块文件・obj
3. 连接 连接程序 可执行文件・exe或
4. 调试 调试程序 应用程序
〔习题〕区分下列概念:
(1)变屋和标号
(2) 数值表达式和地址表达式 (3) 符号常量和字符串常量
习题4
1. 什么是“三种基本结构”?解释“基本”两个字在其中的含义。
答:三种基本结构指:顺序结构,选择结构、循环结构。
使用这3种结构,可以编制出任何所需要的程序,因此冠以“基本”结构。
2. 什么叫做“控制转移指令”?它和数据传送、运算指令有什么区别?它是怎样实现它的功能的?
答:控制转移指令是可以改变指令执行顺序的指令。数据传送、运算指令总是顺序执行的,而控制转移指令通过改变IP和/或CS寄存器的值,改变了程序指令的执行顺序。
3. 指令“JMP DI”和“JMP WORD PTR [DI]”作用有什么不同?请说明。
答:上述两条指令都是段内近转移指令,但是偏移地址的来源不同。指令“JMP DI”执行时,新的偏移地址在DI寄存器内,“JMP WORD PTR [DI]”时,目的偏移地址在存储单元中,该存储单元的地址在DS: DI中。
4. 已知(AX)= 836BH,X分别取下列值,执行“CMP AX, X”后,标志位ZF、CF、OF、SF各是什么?
(1)X=3000H (2)X=8000H (3)X=7FFFFH (4)X=0FFFFH (5)X=0
答:上述指令执行后,标志位ZF、CF、OF、SF 的状态分别是:
(1) ZCOS=0010 (2) ZCOS=0000 (3) ZCOS=0010 (4) ZCOS=0101
(5) ZCOS=0001
5. 已知(AX)= 836BH,X分别取下列值,执行“TEST AX, X”后,标志位ZF、CF、OF、SF各是什么?
(1)X=0001H (2)X=8000H (3)X=0007H (4)X=0FFFFH (5)X=0
答:上述指令执行后,标志位ZF、CF、OF、SF 的状态分别是:
(1) ZCOS=0000 (2) ZCOS=0001 (3) ZCOS=0000 (4) ZCOS=0001
《汇编语言程序设计》复习资料
一、基本概念
1、8088/8086CPU内部寄存器有__14____个
,其中的AX、BX、CX、DX是通用寄存器,SP、BP、DI、SI 是基址和变址寄存器,CS、DS、ES、SS、是段寄存器,此外还有指令指针寄存器 IP 和标志位寄存器 FLAGS 两个控制寄存器,所有寄存器都是 16 _位寄存器,每个寄存器可以存放 16 位二进制数。
2、8088/8086CPU的标志位寄存器中有9个标志位,其中的DF、IF、TF是控制标志,OF、SF、ZF、CF、AF、PF 是状态标志。
3、8088/8086CPU有三组总线,它们是 数据 总线 、 控制 总线和 地址 总线;地址总线是 20 条,因此它可以寻址的范围是 1M 字节。通常将 1024 字节称为1K,将 1024K 字节称为1M。
4、8088/8086CPU的存储器采用分段方式管理,每个段最多可以有 64K 字节,全部存储空间可以分成 16 个大小为64K且互相不重叠的段。
5、采用分段方式管理的存储单元的地址分成 物理地址 和逻辑地址两种,逻辑地址由
段地址 和 偏移地址 两部分构成,段地址是每个存储器段的 起始地址 ;偏移地址则是相对于每个段第一个存储单元的 偏移值 。段地址存放在段寄存器中,由于8088/8086CPU的段寄存器是16位寄存器,因此在段寄存器中存放的是段地址的 16 位;而CPU对数据的存取是按物理地址进行的,物理地址和逻辑地址间的关系是__ 物理地址=段地址16D(或10H)+ 偏移地址___。
6、存储器中,数据是以 字节 为单位存放的,它是一个 8位 二进制数,16位二进制数是 2个字节 ,又称为 字 ;每个存储单元可以存放一个 字节 ;一个字则占用两个存储单元,存放时要将 低字节 放在地址较小的存储单元中。