汇编语言习题答案.doc

上传人:h**** 文档编号:1422740 上传时间:2019-02-25 格式:DOC 页数:8 大小:69.50KB
下载 相关 举报
汇编语言习题答案.doc_第1页
第1页 / 共8页
汇编语言习题答案.doc_第2页
第2页 / 共8页
汇编语言习题答案.doc_第3页
第3页 / 共8页
汇编语言习题答案.doc_第4页
第4页 / 共8页
汇编语言习题答案.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、1第 1 章 自测练习一、选择题(四选一)1. 某个加法运算结果使标志 ZF=1,则标志 SF 为 A 。A 0 B 1 C 不改变原来的状态 D 不确定2. 可以为存储器操作数提供偏移地址的寄存器组是 B 。A AX、BX、CX、 DX B BX、BP、SI、 DIC SP、IP、BP、DX D CS、DS、ES、SS3. 80868088 确定下一条执行指令物理地址的计算表达式为 D 。A DS 16+EA B ES 16+EAC SSl6+SP D CSl6+IP4. 某系列微机对存储器分段,如果每个段最多的字存储单元(16 位二进制) 是 32K,那么表示段内字节单元偏移地址的二进制位

2、数应是 C 位。A 14 B 15 C 16 D 205. 十进制数-100 的 8 位二进制数的补码为 D 。A 10011011 B 01100100 C 10011101 D 100111006. 下列各个 8 位二进制数的补码中,绝对值最大的是 A 。A 10001000 B 11111110 C 00000100 D 000000017. 16 位有符号数的补码所表示的十进制数的范围是 B 。A 3276732768 B 3276832767C 6553565536 D 0655358. 对数值 83A7H 作逻辑非运算后的结果是 D 。A 83A8H B、73A8H C、7C59H

3、 D、7C58H9. 指令“mov cx,bp+16 ”的源操作数采用的段寄存器是 B 。A CS B SS C DS D ES10. 指向程序堆栈区的段寄存器是 B 。A CS B SS C DS D ES11. 有效地址是指 C 。A 存储器操作数的物理地址 B 存储器操作数的段地址C 存储器操作数的偏移地址 D 立即数的偏移地址12. 寄存器间接寻址方式中,操作数在 C 中。A 通用寄存器 B 段寄存器C 主存单元 D 堆栈13. 指令“mov ax,es:bxsi” 源操作数的物理地址是 D 。A 16CS+BX+SI B 16SS+BX+SIC 16DS+BX+SI D 16ES+B

4、X+S114. 算术运算类指令的寻址和转移类指令的寻址,两者的不同之处是 A 。A 前者存取操作数,后者决定程序跳转的目的地址B 后者存取操作数,前者决定程序跳转的目的地址C 两者都是存取操作数D 两者都决定程序跳转的目的地址二、填空题1. 80868088 CPU 有 4 种逻辑段,可执行指令代码通常应该存放在代码段 CS 段。22. 存储器中,数据是以 字节 为单位存放的,它是一个 8 位二进制数。3. 在表达存储容量时,1KB= 1024 B;1MB= 1024 KB4. 16 位二进制数被称为一个 字(word) ;存放时要将 低 字节放在地址较小的存储单元中。5. 机器指令分成 操作

5、码 和 操作数 两个字段。6. 某存储单元的逻辑地址为 3A80:13EBH,其中的 3A80H 是 段 地址,13EBH是 偏移 地址;该存储单元的物理地址是 3BBEBH ,若第一个地址改变为 30D4H,则该存储单元的第二个地址为 0AEABH 。7. 微型计算机一般都采用总线结构,系统总线的信号线有三组,即 数据 总线、地址总线和 控制 总线。 8. 在堆栈结构中,其数据的操作原则是 先进后出 。9. 在标志寄存器中,第 11 位(OF)的作用是 判断有符号数是否溢出 ,第 6位(ZF)的作用是 判断结果是否为零 。10. 当两个无符号数相减(加)产生借位(进位)时,标志 CF= 1

6、。11. 8088/8086 具有 20 条地址线,所以其主存容量可达 1MB 。12. 现有一个二进制数 10110101,若将该数看作是无符号数,原码、反码和补码表示的有符号数,则对应的真值分别是 181 、 -53 、 -74 和 -75 。13. 已知有一个物理地址 34567H,可以采用的逻辑地址有 3000 H:4567H 、 3450H: 0067 H 等。三、问答题1. 简述汇编语言相对高级语言的优点。答:汇编语言程序便于直接控制硬件,用汇编语言产生的可执行程序容量小、执行速度快、效率高。2. 8086 有哪 4 种逻辑段,各种逻辑段分别是什么用途。代码段:存放程序的指令序列堆

7、栈段:确定堆栈所在的主存储区域。数据段:存放程序使用的数据。附加段:同数据段一样也用于存放程序使用的数据。3. 对存储器操作数的段地址的默认规定是什么?除以 BP 寄存器访问主存默认采用堆栈段 SS 外,其他存储器操作数默认采用数据段DS 作为段地址。4. 有效地址 EA 是指什么?有效地址 EA 是指存储器操作数的偏移地址。5. 什么是逻辑地址和物理地址,如何由逻辑地址求得对应的物理地址?逻辑地址:8086/8088CPU 内部和程序设计时,以两个 16 位的“段地址:偏移地址”形式表达主存单元,这种地址表达形式就是逻辑地址。物理地址:8086/8088CPU 外部寻址主存时使用的 20 位

8、地址。逻辑地址的段地址左移 4 位加偏移地址就是 20 位物理地址。36. 写出下列逻辑地址(十六进制形式)的段地址、偏移地址和物理地址 2314:0024 段地址为 2314H、偏移地址为 0024H,物理地址为 23164H 1FD0:001A 段地址为 1FD0H、偏移地址为 001AH,物理地址为 1FD1AH7. 写出下列指令的源操作数采用的寻址方式?如果可以计算,其物理地址是多少?假设DS=3000H、ES=3100H、SS=2000H 、SI=00ABH、BX=0200H、BP=0020H,变量 var 的偏移地址为 0080H。 mov ax,var直接寻址,物理地址=3000

9、H*16+0080H=30080H mov ax,bx 寄存器间接寻址,物理地址=3000H*16+0200H=30200H mov ax,varbx寄存器相对寻址,物理地址=3000H*16+0200H+0080H=30280H mov ax,200h直接寻址,物理地址=3000H*16+0200H=30200H mov ax,0立即寻址,操作数在代码段中。 mov ax,si寄存器寻址,操作数在寄存器 SI 中,为 00ABH。 mov ax,es:bx寄存器间接寻址,物理地址=3100H*16+0200H=31200H mov ax,ds:bp 2寄存器相对寻址,物理地址=3000H*1

10、6+0020H+0002H=30022H mov ax,varbxsi相对基址变址寻址,物理地址=3000H*16+0200H+000ABH+0080H=3032BH第 2 章 自测练习一、选择题(四选一)1. 下列指令中,属于非法指令的是 D 。A mov si,al B push siC jmp bx D in ah,dx2. 下列指令中,有语法错误的是 A 。A mov si,di B and ax,cxC jmp word ptrbx D idiv bx43. 下列 A 指令不合法。A in ax,278h B rcr dx,clC cmpsb D ret 44. 执行如下指令“mov

11、 sp,4320h”和“push bx”之后, SP 寄存器的值是 C 。A 4321H B 4322H C 431EH D 431FH 5. 假设 SS=2000H、SP=0100H、AX=2021H,执行指令 PUSH AX,存放数据 21H 的堆栈区的物理地址是 C 。A 20102H B 20101H C 200FEH D 200FFH6. 将寄存器 AX 的内容乘以 2 的正确指令序列是 B 。A shr ax,1 B shl ax,1 C ror ax,1 D rcr ax,17. 执行 DEC 指令不影响的标志位是 D 。A SF B PF C OF D CF8. 执行除法指令后

12、,影响的标志位是 A 。A 所有状态标志都不确定 B CF、OF C SF、ZF D AF、PF9. 编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令是 D 。A CMP B SUB C AND D MOV10. 为使 CX=-1,执行“jz minus”转至标号 minus 而编制了一指令,其中错误的是 C 。A inc cx B sub cx,0ffffhC and cx,0ffffh D xor cx,0ffffh11. 当一个带符号数大于 0FBH 时程序转移,在“cmp al,0fbh”指令后,需选用的条件转移指令是 C 。A JLE B JNL C JNLE

13、 D JL12. 测试 BL 寄存器内容是否与数据 4FH 相等,若相等则转 NEXT 处执行,那么在“JZ NEXT”指令前的一个指令应是 B 。A test bl,4fh B xor bl,4fhC and bl,4fh D or bl,4fh13. 循环指令 LOOPNZ 继续循环的条件是 C 。A CX=0,且 ZF=0 B CX=0,或 ZF=1C CX0,且 ZF=0 D CX0,或 ZF=114. CBW 指令的功能是 B 。A 把源操作数的符号位扩展到目的操作数中B 把 AL 中的符号位扩展到 AH 中C 把 AH 中的符号位扩展到 AL 中D 把 AX 中的符号位扩展到 DX

14、 中15. 下列 4 条指令 mul bx、div bl、in ax,20h、out 21h,al 中,有 A 条指令需要使用 DX 寄存器。A 1 B 2 C 3 D 416. 设 AX=0012H、BX=0034H,那么下述程序段mov cl,8rol ax,cl5or ax,bx执行后,AX= A 。A 1234H B 3412H C 0046H D 0034H17. 执行下列指令序列mov al,81hadd al,aladc al,al后,AL= B 。A 04H B 05H C 204H D 205H18. 假定 DS=4000H、DI=0100H、40100H=55H、40101

15、H=AAH,那么执行指令“lea bx,di”后,BX= C 。A AA55H B 55AAH C 0100H D 4100H19. 设 AL=20H、SI=0500H 、 DS=3000H、30500H=0C0H、CF=1 。执行“SBB AL,SI”指令后,正确的结果是 C 。A AL=5FH、 SF=1、CF=1 B AL=60H、SF=1、CF=0C AL=5FH、SF=0、CF=1 D AL=60H,SF=0、CF=0二、填空题1. 指令 SAR 可用来对 有符号 数除以 2,而指令 SHR 可用来对 无符号 数除以 2。MUL BX 指令的结果存在 DX 和 AX 寄存器中,等效于

16、 loop 指令的两条指令依次是 DEC CX 和 JNZ 。2. 已知 SI=1000H,AX=ABCDH、SP=0100H、BP=00FEH ,给出下列指令顺序执行后,指定寄存器中的内容push ax ;AX= ABCDH 、SP= 00FEH push si ;SI= 1000H 、SP= 00FCH pop ax ;AX= 1000H 、SP= 00FEH push bp ;BP= 00FEH 、SP= 00FCH pop si ;SI= 00FEH 、SP= 00FEH pop bp ;BP= ABCDH SP= 0100H push ax ;AX= 1000H 、SP= 00FEH

17、 pop bx ;BX= 1000H 、SP= 0100H 3. 设 DS=2000H、BX=1256H,变量 table 的偏移地址为 20A1H,232F7H=3280H 。请问下列指令分别执行后,IP 的值各是多少? jmp bx ;IP= 1256H jmp table bx ;IP= 3280H 三、问答题1. 试述 mov ax,bx 和 mov ax,bx两条语句的异同点?相同:实现将数据传送到 AX 寄存器。不同:两者的源操作数不同。前者来自 BX 本身,后者来自 BX 指向的存储单元。2. 请指出如下各条指令的错误原因,并按照原意修改正确: mov di, 8000h没有明确

18、是字操作,改为:mov word ptr di,8000h6rcl ax,bl移位指令只能采用 CL 寄存器指明移位位数,正确为: rcl ax,cladd bx+si,cx目的操作数采用基址变址寻址方式,需要使用方括号。正确为:add bx+si,cxmov bxsi,ax目的操作数采用基址变址寻址方式,需要使用方括号将寄存器都扩进去。正确为:add bxsi,cx (或者为 add bx+si,cx)3. 什么是堆栈,它的基本操作有哪两个,对应哪两种指令?堆栈是一种按“先进后出”原则存取数据的存储区域。堆栈的两种基本操作是压栈和出栈,对应的指令是 PUSH 和 POP。4. 试述“cmp

19、ax,bx ”和“sub ax,bx ”两条语句的异同点?相同:都执行 AX-BX 操作,影响所有标志位且对标志位的影响相同。不同:CMP 指令执行后 AX 和 BX 内容不改变;而 SUB 指令执行后,AX 内容为 AX-BX 之差,即内容变化了。5. 不管是段内返回还是段间返回,子程序均用 RET 指令试回答:执行段内返回 RET 指令时,执行的操作是什么?栈顶一个字的内容送指令指针,IP SS:SP, SPSP+2执行段间返回 RET 指令时,执行的操作是什么?栈顶一个双字的内容送指令指针和代码寄存器,IP SS:SP, SPSP+2;CS SS:SP, SP SP+2;6. 什么是短转

20、移(short)、近转移(near)和远转移(far)?什么是段内转移和段间转移?8086 有哪些指令可以实现段间转移?短转移:段内-128127 之间的转移,位移量用一个字节表示。近转移:段内32K 之间的转移,位移量用一个字表示。远转移:段间 1MB 范围的转移。段内转移:在同一个代码段内的转移,可以是短转移或者近转移。段间转移:转移到另一个代码段,就是远转移。7. 判断下列程序段跳转的条件。 xor ax,1e1ehje equalAX=1e1eh test al,10000001bjnz thereAL 中 D0 和 D7 至少有一位为 1 cmp cx,64h7jb thereCX

21、内无符号数小于 64h五、程序设计题1. 请分别用一条指令完成如下要求:将立即数 80H 送到地址为 num 的存储单元中;mov byte ptr num,80H将地址为 array 的存储单元中的字数据循环右移一位;ror word ptr array,1测试地址为 BUFFER 的字数据的符号位;test word ptr buffer,8000h将首地址为 array 的字数组中第 5 个数据送往寄存器 BX 中;mov bx , array8将 AX 的内容,减去 0520H,并减去上次运算的借位。Sbb ax,0520h2. 按下列要求分别写出一条指令:AX 寄存器的低 4 位清

22、0;and ax, 0fff0hBX 寄存器的低 4 位置 1;or bx , 000fhCX 寄存器的低 4 位取反;xor cx, 000fh测试 DL 寄存器的第 3 位和第 5 位是否同时为 0;test dl, 00101000b如果 AL 是数字 09 的 ASCII 码,则将它转换为对应的非压缩 BCD 码;如果 AL是数字 09 的非压缩 BCD 码,则将它转换为对应的 ASCII 码。即用一条指令实现数字09 的 ASCII 码与非压缩 BCD 码的相互转换。Xor al,30h数字 09 的 ASCII 码是 30H39H,而对应的非压缩 BCD 码是 00h09h,两者只

23、是 D5D4 相反。所以用 XOR 指令实现求反,完成互相转换。3. 请分别用一个程序段完成如下要求:将一个字节数据 FDH 输出到端口 21H;mov al , 0fdhout 21h , al8将 AL 中的两位 BCD 码分离,分别存放 DL 和 DH 中;mov dl, aland dl,0fhmov dh ,almov cl,4shr dh ,cl将 AL 中的 8 位有符号数转换成它的绝对值;and al,0ffhjns done ; 如果是正数,则无需转换neg al ; 如果是负数,则求补done : .将 DX、AX 寄存器中的 32 位数实现算术右移一位;sar dx,1

24、;如果是逻辑右移,应使用指令“shr dx,1”rcr ax,1 ;不能采用指令“ror ax,1”4. 按照如下各题要求,分别编写一个程序段。把变量 bufX 和 bufY 中较大者存入 bufZ;若两者相等,则把其中之一存入 bufZ 中。假设变量存放的是 8 位无符号数mov al, bufXcmp al,bufYjae goonmov al, bufYgoon: mov bufZ, al统计以“$”结尾的字符串 string 的字符个数mov ax ,0mov bx, offset stringagain: cmp bx,byte ptr $jz doneinc axinc bxjmp againdone: ;字符个数存放在 AX 寄存器

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。