8086汇编语言习题解答

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.13、已知(AX)=0FF60H, MOV XOR SBB DX,96 DH,0FFH AX,DX
2.6、假设某用户程序装入内存后,(SS)=0950H,(SP)=64H,试问该 用户程序的堆栈底部(字单元)物理地址是是多少?
2.7、设堆栈段寄存器(SS)=3E4BH,程序中设置堆栈长度为 200 个字节。 试计算出堆栈底部字单元物理地址,堆栈指针 SP 初始值(即堆栈中没有数据时) 和 SP 初始值指向的物理地址。 2.8、设某用户程序(SP)=30H,(AX)=1234H,(DS)=5678H。如现有 两条指令: PUSH PUSH AX DS
1.4、由键盘输入字符通常都是以该字符的 ASCII 码形式表示的。若现在从 键盘上输入十六进制数 0~F, 那么应如何处理才能把十六进制转换为 4 位二进制 数 0000~1111. 答:将键盘输入的数 0~F 的 ASCII 码,每输入一个字符,减去 30H 后,再 存入内存,这样就完成了把从键盘上输入的十六进制 ASCII 码转换为 4 位二进制 数 0000~1111.
执行上述三条指令后,(SP)= 2.11、设(SP)=6EH POPF POP AX
执行上述两条指令后,(SP)= 72H 。
第三章
3.1、试分别说明下列各指令中源操作数和目的操作数使用的寻址方式: ①、AND ②、AND ③、MOV ④、CMP ⑤、MOV ⑥、SUB ⑦、ADC ⑧、OR ⑨、PUSH AX,0FFH BL,[0FFH] DS,AX [SI],CX ;立即数寻址 ;直接寻址 ;寄存器寻址 ;寄存器间接寻址
上述三条指令执行后:(AX)=
3.11、已知(AX)=4321H INC NEG DEC NEG AX AX AX AX
上述几条指令执行后:(AX)= 3.12、已知(AX)=0A33AH,(DX)=0F0F0H AND XOR NEG NOT AH,DL AL,DH AH AL
上述几条指令执行后:(AX)=
3.3、下面两条指令执行后,标志寄存器中CF,AF,ZF,SF和OF 分别是什么状态? MOV ADD DL,,86 DL,0AAH
答:以上两条指令执行后: CF= AF= ZF= SF= OF=
3.4、在 8086/8088CPU 中可用于作地址指针的寄存器有哪些? 答: 3.5、已知(DS)=091DH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H (CX)=5678H,(BP )=0024H,(SI)=0012H,(DI)=0032H,单 元(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH 下各指标令或程 序段分别执行后的结果如何? ①、MOV ②、MOV ③、LEA MOV ④、LDS MOV ⑤、XCHG XCHG CL,20H[DI][SI] [BP][DI],CX BX,20H[BX][SI] AX,2[BX] SI,[BX][DI] [SI],BX CX,32H[BX] AX,[SI]
⑵、8 位二进制数(无符号数)转换为十进制数 二进制:01010101B 二进制:10101010B 二进制:11110000B 二进制:00001111B 对应 对应 对应 对应 十进制:85 十进制:170 十进制:240 十进制:15
⑶、十进制数转换为十六进制数 十进制:40 十进制:80 十进制:105 十进制: 114 十进制: 207 对应 对应 对应 对应 对应 二进制:00101000B 二进制:01010000B 二进制:01101001B 二进制:01101101B 二进制:11001111B
“CS、DS、ES” 、“CS、SS、ES”等进行替代。 2.4、8086/8088 系列微机在存储器中寻找存储单元时,逻辑地址由哪两 部分组成? 答:在 8086/8088 系列微机在存储器中寻找存储单元时,逻辑地址由段基 值和偏移量两部分组成,它们都是 16 位无符号二进制数。 2.5、设 IBM PC 微机内存某一单元的物理地址是 12345H,试完成下列不 同的逻辑地址表示: ①、1234H:0005_H ②、1200H:0345H ;EA=段基值+DISP=12340H+0005H=12345H ;EA=段基值+DISP=12000H+0345H=12345H
1 3
答:10110110.的无符号数的十进制是:+182; 10110110.的原码带符号数的十进制是:-54 10110110.补码表示的带符号数的十进制是:+74 1.7、 下列各组数据均为十进制数, 先将各数据转换为补码表示的带符号数, 然后用补码的加减运算分别完成下列各小题,并用十六进制数形式回答运算结 果。 ①、58+36 ⑤、58-36 ②、(-58)+36 ⑥、(-58)-36 ③、58+(-36) ⑦、58-(-36) ④、(-58)+(-36) ⑧、(-58)-(-36)
DS:[0FFH],CL ;带前缀的直接寻址 [BP][SI],AH AX,0ABH[BX] ;基址变址寻址 ;基址寻址 ;基址变址寻址
AX,-35[BX][DI] DS
;寄存器寻址
⑩、CMC
;立即数寻址
3.2、试分别指出下列各指令语句的语法是否有错,若有错,指明是什么错 误。 ①、MOV ②、TEST ③、ADD ④、AND ⑤、CMP ⑥、SHR ⑦、NOT ⑧、LEA ⑨、INC ⑩、PUSH [BX][BP],AX [BP],BL [SI],DA_BYTE DH,DL CL,1234H [BX][DI],3 CX,AX DS,35[SI] CX,1 45[DI] ;错,BX 与 BP 必须二选一 ;正确 ;错,源目操作数不能同时为存储器 ;错,同一寄存器高、低字节不能与 ;正确 ;正确 ;错,NOT 指令只有一个操作数 ;正确 ;正确 ;正确
1.5、试分别判断下列各组数据中哪个数据最大?哪个最小? ①、A=0.101B ②、A=1011B B=0,101D B=1011D
1 3
C=0,101H C=1011H
答:第①组:A=1×2 +1×2 =0.625 B=0.101 C=1×16 +16 =0.0625+0.00024414=0.06274414 所以 A 最大,C最小 第②组,B最大,A=B最小 1.6、现有一个二进制数 10110110.若将该数看着是无符号数、原码表示的 带符号数、补码表示的带符号数,它对应的十进制数的真值是多少?
试问两条指令执行后,图 2.18 中各单元的数据是多少? (SP)=? 答: (SP)=30H-4H=2CH 2.9、在 IBM-PC 微机上,分别进行下列 8 位二进制数的运算后,标志寄
存器中 OF、ZF、SF、CF 的值各是多少? ①、10101011+01010101 ③、01010101-00111110 2.10、设(SP)=50H PUSH PUSH PUSH AX BX CX 44H。 ②、11011010+11101101 ④、10110011-01100010
答:①、58+36 的运算结果是:00111010+00010100=01001110=01011110 ②、(-58)+36 的运算结果是:11000110+00010100=11101010=-000101001 ③、58+(-36)的运算结果是:00111010+11011100=00010110 ④、(-58)+(-36)的运算结果是:11000110+10100010=10100010 ⑤、 58-36 的运算结果是:00111010+11011100=00010110 ⑥、(-58)-36 的运算结果是:11000110+10100010=10100010 ⑦、58-(-36)的运算结果是:00111010+00010100=01001110=01011110 ⑧、 (-58) (-36) 的运算结果是: 11000110+00010100=11101010=-000101001
Fra Baidu bibliotek
MOV MOV LDS ADD
AX, [SI] [SI+22H], 1200H SI, [SI+20H] AX, [SI] ,(SI)= (AX)=
上述程序执行后:(DS)=
3.8、已知(AX)=0A5C6H,(CX)=0F03H,CF=1 RCL AND RCR AX, CL AH, CH AX, CL , CF= 。
第二章
2.1、试说明 8086/8088CPU 中有哪些寄存器?各有什么用途? 答:寄存器 AX、AL:在乘法指令中,存放乘数和乘积; 在除法指令中,存放被除数和商; 在未组合 BCD 码运算的校正指令中 在某些串操作指令(LODS,STOS,SCAS)中 在输入输出令中作数据寄存器
寄存器 AH:在 LAHF 指令中作目的寄存器 寄存器 AL:在组合型BCD码的加减法校正指令中 在XLAT指令中作目的寄存器 寄存器 BX:在XLAT指令中基址寄存器 寄存器 CX:在循环指令中作循环次数计数器 寄存器 CL:在移位指令中作移位次数计数器 寄存器 DX: 在字数据的乘法和除法指令中辅助累加器 寄存器 SP:在堆栈操作中作堆栈指计 寄存器 SI:在串操作指令中作源变址寄存器 寄存器 DI:在串操作指令中作目的变址寄存器 2.2、试说明 8086/8088CPU 中标志寄存器各标志位的意义? 答:8086/8088CPU 中标志寄存器各标志位的意义是: CF:进位标志 AF:辅助进位标志 SF:符号位标志 IF: 中断允许标志 OF:溢出标志 2.3、哪些操作只能隐含使用某个段寄存器,而不能用其他寄存器替代? 哪些操作除隐含使用某个段寄存器外,还可以用其他段寄存器替代? 答:在“取指令”、“堆栈操作”、“存目的串”三操作时,只能分别使 用隐含段寄存器“CS”、“SS”“ES”,不能用其他寄存器替代; 在“取源串”、“以 BP 作基址”、“存取一般变量”三操作时,除了 可分别使用隐含段寄存器“DS”、“SS”“DS 外,还可分别使用“CS、 SS、ES”, PF:奇遇标志 ZF:零值标志 TF:单步标志 DF:方向标志
3.6、已知(SS)=0915H,(DS)=0930H,(SI)=0A0H, (DI)=1C0H,(BX)80H,(BP)=470H.现有一指令 “MOV AX,OPRD”,若源操作数的物理地址为 095C0H,试用 4 种不同寻
址方式该写此指令(要求上述每个已知条件至少要使用一次)。
3.7、已知(DS)=1234H,(SI)=124H,(12464H)=30ABH,(12484H) =464H LEA SI, [SI]
上述三条指令执行后: (AX) =
3.9、已知(AX)=0FC77H,(CX)=504H,CF=1 SAR XCHG SHL AX, CL CH, CL AX, CL ,CF= 。
上述三条指令执行后:(AX)=
3.10、已知(AX)=1234H MOV NEG ADD BX, AX BX AX, BX (BX)= 。
8086/8088 汇编语言习题解答
第一章
1.1、试根据自己使用计算机的经历,列举几个必须使用或最好是使用汇编 语言编制程序的事例。 1.2、试完成下列数制间的转换 ⑴、十进制数转换为 8 位二进制数 十进制:100 十进制:56 十进制:111 十进制: 120 十进制: 70 对应 对应 对应 对应 对应 二进制:01100100B 二进制:00111000B 二进制:01101111B 二进制:01111000B 二进制:01000110B
1.3、试把下面用补码表示的二进制数转换为对应的十进制真值 二进制补码:01111000 二进制补码:11011001 二进制补码:10000001 二进制补码:10001000 二进制补码:00100111 二进制补码:11110000 对应的十进制值数真值:+120 对应的十进制值数真值:-39 对应的十进制值数真值:-127 对应的十进制值数真值:-120 对应的十进制值数真值:+39 对应的十进制值数真值:-16
相关文档
最新文档