2022年2022年汇编语言课后习题解答 .pdf
《2022年2022年汇编语言课后习题解答 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编语言课后习题解答 .pdf(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 1 章 汇编语言基础知识1简述汇编语言源程序、汇编程序、和目标程序的关系。答: 用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。2. 简述汇编语言的优缺点。答: (1) 汇编语言的优点: 可有效地访问、 控制计算机各种硬件设备,如磁盘、 存储器、 CPU、I/O 端口等。 . 目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 可与高级语言配合使用,应用十分广泛。(2) 汇编语言的缺点: 通用性和可移植性较差 相对于高级语言来说较繁锁、易出错、不够直观。3CPU 的寻址能力为8KB ,那么它的地址总线的宽度为多少?答: 13 4. 1
2、KB 的存储器有多少个存储单元? 答: 1024 个字节。5. 指令中的逻辑地址由哪两部分组成?答: 指令中的逻辑地址由段基址和偏移量组成。6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。(1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH7. 自 12FA:0000 开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01, 试分别写出12FA:0002 的字节型数据、字型数据及双字型数据的
3、值。答:字节型数据: 11H字型数据: 0A311H双字型数据: 0113A311H8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为多少?若段内偏移地址为2228H,则段基地址为多少?答: 若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为 170FH9. 在实模式环境中,一个段最长不能超过多少字节?答: 64KB10. 实模式可寻址的内存范围是多少?答: 1MB第 2 章 汇编语言源程序格式1请解释变量和标号的含义,两者有何区别?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
4、 - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 40 页 - - - - - - - - - 答: 标号代表一条指令所在单元的地址,在代码段中定义;变量是存放数据的存储单元的地址符号名,在除代码段以外的其他段中定义。变量和标号的主要区别在于变量指的是数据,而标号则对应的是指令。2. 变量和标号有什么属性?答: 都具有三种属性:段属性、偏移属性和类型属性3. 伪指令语句与指令语句的区别是什么?伪指令有什么用途?答: 伪指令并不像指令语句那样在程序运行期间由计算机自动执行,而是在汇编程序对源程序汇编期间由汇编程序处理的操作。伪指令可以完成如处理器选择、定义程序模
5、块、数据定义、存储区分配、指示程序开始和结束等功能。4. 数值返回运算符有哪几种?简述LENGTH 和 SIZE 的区别。答:数值返回运算符包括:SEG( 取段地址 ) 、 OFFSET( 取偏移地址) 、 TYPE( 取类型值 ) 、 LENGTH ( 取长度 ) 、 SIZE( 取总字节数) 。对于变量中使用DUP的情况,LENGTH回送分配给该变量的单元数,对于其他情况则送1;而 SIZE 会送分配给变量的总字节数,也就是LENGTH 和 TYPE 的乘积。5. 画图说明下列伪指令所定义的数据在内存中的存放形式。 (1) ARR1 DB 6,34H,-7 (2) ARR2 DW 3C5D
6、H,1,? (3) ARR3 DB 2 DUP(1,2,DUP(2,5),3) (4) ARR4 DB HELLO (5) ARR% DB 1234答: (1) 见题图 2.1 06H34HF9HARR1题图 2.1 (2) 见题图 2.2 00HARR201H3CH5DH- - -题图 2.2(3) 见题图 2.3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 40 页 - - - - - - - - - 02HARR305H02H01H05H03H02H05H02H
7、01H05H03H题图 2.3(4) 见题图 2.4 4CHARR44CH45H48H4FH题图 2.4 (5) 题图 2.5 34HARR533H32H31H题图 2.56. 写出下列变量定义语句。(1) 为缓冲区 BUF1 预留 20B 的存储空间。(2) 将字符串 ABCD ,1234存放于 BUF2 存储区中。答: (1) BUF1 DB 20 DUP(?) (2) BUF2 DB ABCD DB 12347. 符号定义语句如下: BUF DB 2,3,4,5,345 EBUF DB 8 LT DB EQU EBUF-BUF 问 LT 的值是多少?答:LT 的值为 7 8. 假设程序中
8、的数据定义如下: A DW ? B DB 16 DUP(?) C DD ? T EQU $-A 问 T 的值是多少?它表示什么意义?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 40 页 - - - - - - - - - 答: T 的值是 22;它表示从变量A 到 T 之间分配的存储空间(字节)数目。9. 如何规定一个程序执行的开始位置?主程序执行结束应该如何返回DOS?源程序在何处停止汇编过程?答: 程序开始位置:END 伪指令后的标号所对应的地址;应用程序开始伪指
9、令. STARTUP处。返回 DOS:RET 指令结合 PUSH DS 等指令;用DOS 功能调用的第4CH 号中断; . EXIT伪指令。END 伪指令处停止汇编过程。10. EQU 伪指令与“ =”伪指令有何区别?答:在同一程序中,“=”伪指令可对一个符号重复定义11. 指出下列伪指令表达方式的错误,并改正之。 (1) DATA SEG (2) SEGMENT CODE (3) MYDATA SEGMENT DATA ENDS (4) MAIN PROC FAR END MAIN MAIN ENDP 答: (1) SEG 改为 SEGMENT (2) 没有段名 (3) DATAENDS 改
10、为 MYDATA ENDS (4) END MAIN删除第 3 章 8086/8088 寻址方式及指令系统1什么是寻址方式,8086/8088 微处理器有几种寻址方式,各类寻址方式的基本特征是什么?答: 寻址方式就是寻找指令中操作数的方式,或寻找指令转移目的地址的方式。8086/8088 微处理器的寻址方式分为数据寻址方式和程序转移寻址方式。数据寻址方式主要包括立即数寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式、基址变址寻址方式和相对基址变址寻址方式;程序转移寻址方式主要包括段内直接寻址、段内间接寻址、段间直接寻址、段间间接寻址。立即数寻址:操作数就在指令中,
11、作为指令的一部分,跟在操作码后存放在代码段。寄存器寻址:操作数在寄存器中,指令中指定寄存器号。直接寻址方式:操作数在存储器中,指令直接包含操作数的有效地址EA。寄存器间接寻址:操作数在存储器中,操作数的有效地址在SI,DI,BX,BP这 4 个寄存器之一中。寄存器相对寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器( BX,BP ) 或变址寄存器 ( SI,DI ) 的内容加上8 位或 16 位的位移之和。基址变址寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP ) 加上变址寄存器 (SI,DI )的内容。名师资料总结 - - -精品资料欢迎下载 - - - - -
12、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 40 页 - - - - - - - - - 相对基址变址寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器( BX,BP )和变址寄存器 ( SI,DI) 的内容加上8 位或 16 位的位移之和。段内直接寻址:转向的有效地址是当前IP 寄存器的内容和指令中指定的8 位或 16 位位移量之和。段内间接寻址:转向的有效地址是一个寄存器或是一个存储单元的内容。段间直接寻址:在指令中直接提供了转向段地址和偏移地址。段间间接寻址:用存储器里的两个相继字的内容来取代IP 和 CS 寄存器
13、中的原始内容,以达到段间转移的目的。2. 假 定 (DS)=1000H,(SI)=007FH,(BX)=0040H,(BP)=0016H,变 量TABLE的 偏 移 地 址 为0100H,试指出下列指令的源操作数字段的寻址方式,它的有效地址(EA) 和物理地址 ( PA)分别是多少? (1) MOV AX,1234H (2) MOV AX,TABLE (3) MOV AX,BX+100H (4) MOV AX,TABLEBPSI 答: (1) 直接寻址, EA=1234H ,PA=11234H (2) 直接寻址, EA=0100H ,PA=10100H (3) 寄存器相对寻址,EA=0140H
14、, PA=10140H(4) 相对基址变址寻址,EA=0195H,PA=10195H 3. 若 TABLE 为数据段 0032 单元的符号名,其中存放的内容为1234H,试问下列两条指令有什么区别?执行完指令后,AX 寄存器的内容是什么? MOV AX,TABLE LEA AX,TABLE 答: 第一条指令是取0032 单元的内容,执行完后AX 的内容是 1234H第二条指令是取TABLE 的偏移地址,执行完后AX 的内容为0032H4. 指出下列指令的错误。(1) MOV CX,DL (2) MOV IP,AX (3) MOV ES,1234H (4) MOV ES,DS (5) MOV A
15、L,300H (6) MOV SP,AX (7) MOV AX,BX+DI (8) MOV 20H,AH 答: (1) 两操作数长度不一致 (2) 目的操作数不能为IP (3) 立即数不能直接送段寄存器 (4) 两个段寄存器之间不能直接进行数据传送 (5) 两操作数长度不一致 (6) SP不能用作间址寄存器 (7) BX+DI 改为 BXDI 或BX+DI (8) 目的操作数不能为立即数5. 指出下列指令的错误。(1) POP CS (2) SUB SI,DI (3) PUSH AH (4) ADC AX,DS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
16、- - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 40 页 - - - - - - - - - (5) XCHG SI,30H (6) OUT DX,AH (7) IN AL,3FCH (8) MUL 5 答: (1) POP指令不允许使用CS (2) 两操作数不能同时是存储器寻址方式 (3) 堆栈的操作必须以字为单位 (4) 段寄存器不允许直接参加运算 (5) XCHG 指令的操作数不允许是立即数 (6) OUT 指令只能用AL 做源操作数 (7) 端口号大于255,必须将其放到DX 中 (8) MUL 指令源操作数不允许是立即数6. 请分别用一条汇编
17、语言指令完成如下功能。 (1) 把 BX 寄存器和 DX 寄存器的内容相加,结果存入DX 寄存器。 (2) 用寄存器BX 和 SI 的基址变址寻址方式把存储器的一个字节与AL 寄存器的内容相加,并把结果送到AL 中。 (3) 用 BX 和位移量 0B2H 的寄存器相对寻址方式把存储器中的一个字和CX 寄存器的内容相加,并把结果送回存储器中。 (4) 把数 0A0H 与 AL 寄存器的内容相加,并把结果送回AL 中。答: (1)ADD DX,BX (2)ADD AL,BX+SI (3)ADD BX+0B2H,CX (4)ADD AL,0A0H 7. 求出以下各十六进制数与十六进制数58B0 之和
18、,并根据结果设置标志位SF、ZF、CF和 OF 的值。(1) 1234H (2) 5678H (3) 0AF50H (4) 9B7EH 答: (1) 和为 6AE4H , SF=0,ZF=0,CF=0,OF=0 (2)和为 0AF28H ,SF=1, ZF=0, CF=0, OF=1 (3)和为 0800H, SF=0, ZF=0, CF=1, OF=0 (4)和为 0F42EH, SF=1, ZF=0, CF=0, OF=0 8. 执行指令ADD AL ,72H 前, (AL)=8EH ,标志寄存器的状态标志OF、SF、 ZF、AF、PF 和 CF 全为 0,指出该指令执行后标志寄存器的值。
19、答: 指令执行后,AL的内容为0000000H,且有进位,标志寄存器中各标志位的值为:OF=0,SF=0, ZF=1,AF=1 ,PF=1,CF=19. 已知程序段如下: MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV CX,4 MUL CX 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 40 页 - - - - - - - - - 试问: 1、每条指令执行完后,AX 的内容是什么?2、每条指令执行完后,CF、SF 和 ZF 的值是
20、什么?3、程序执行完后,AX 和 DX 的内容是什么?答: (1) (2)MOV AX,1234H ; (AX)=1234H,各标志位不变MOV CL ,4 ; (AX)=1234H,各标志位不变ROL AX,CL ; (AX)=2341H,CF=1,其它标志位不变DEC AX ; (AX)=2340H,CF不变, SF=0 ,ZF=0 MOV CX,4 ; (AX)=2340H,各标志位不变MUL CX ; (AX)=8D00H,CF=0,ZF=0,SF=0 (3) 程序执行完后,(AX)=8D00H,(DX)=0000H10. 编程序段,将AL、BL 、CL、 DL 相加,结果存在DX 中
21、。答: MOV AH,0 ADD AL,BL ADC AH,0 ADD AL,CL ADC AH,0 ADD AL,DL ADC AH,0 MOV DX,AX 11. 编程序段,从AX 中减去 DI ,SI 和 BP 中的数据,结果送BX。答: SUB AX,DI SUB AX,SI SUB AX,BP MOV BX,AX 12. 假设 (BX)=0E3H , 变量 VALUE 中存放的内容为79H,确定下列各指令单独执行后的结果。 (1) OR BX,VALUE (2) AND BX,VALUE (3) XOR BX,OFFH (4) AND BX,01H (5) TEST BX,05H (
22、6) XOR BX,VALUE 答: (1) (BX)=0FBH (2) (BX)=61H (3) (BX)=1CH (4) (BX)=01H (5) (BX)=0E3H (6) (BX)=9AH 13. 已知数据段500H600H 处存放了一个字符串,说明下列程序段执行后的结果。MOV SI,600H MOV DI,601H MOV AX,DS MOV ES,AX 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 40 页 - - - - - - - - - MOV CX
23、,256 STD REP MOVSB 答:将数据段501H600H 中存储的字符串移到数据段502601H 中14. 说明下列程序段的功能。CLD MOV AX,0FEFH MOV CX,5 MOV BX,3000H MOV ES,BX MOV DI,2000H REP STOSW 答:将附加段的32000H 开始的连续5 个字初始化为0FEFH15. 判断下列程序段跳转的条件。 (1) XOR AX,1E1EH JE EQUAL (2) TEST AL,10000001B JNZ THERE (3) CMP CX,64H JB THERE 答: (1) AX 中的值为1E1EH 时会跳转 (
24、2) AL 的最低和最高位至少有一位为1 时发生跳转(3) CX 中的值小于64H 时发生跳转16. 选取正确指令,完成以下任务。 (1) 右移 DI 三位,并将0 移入最左一位。(2) AL 内容左移一位,0 移入最后一位。(3) DX 寄存器右移一位,并且使结果的符号位与原符号位相同。答: (1) MOV CL,3 SHR DI,CL (2) SHL AL,1(3) SAR DX,1 17. 假设 AX 和 SI 存放的是有符号数,DX 和 DI 存放的是无符号数,请用比较指令和条件转移指令实现以下判断。 (1) 若 DXDI ,转到 ABOVE 执行 (2) 若 AXSI ,转到 GRE
25、ATER 执行。 (3) 若 CX=0 ,转到 ZERO 执行 (4) 若 AX-SI 产生溢出,转到OVERFLOW执行。 (5) 若 SIAX,转到 LESS_EQ 执行。 (6) 若 DIDX,转到 BELOW_EQ 执行。答: (1) CMP DX,DI JA ABOVE (2) CMP AX,SI JG GREATER (3) CMP CX,0 JE ZERO (4)CMP AX,SI JO OVERFLOW (5) CMP AX,SI JGE LESS_EQ (6) CMP DX,DI 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年汇编语言课后习题解答 2022 汇编语言 课后 习题 解答
限制150内