ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:26.55KB ,
资源ID:10404764      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10404764.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(8086汇编语言习题解答.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

8086汇编语言习题解答.docx

1、8086汇编语言习题解答8086/8088汇编语言习题解答第一章1.1、试根据自己使用计算机的经历,列举几个必须使用或最好是使用汇编语言编制程序的事例。1.2、试完成下列数制间的转换、十进制数转换为8位二进制数 十进制:100 对应 二进制:01100100B 十进制:56 对应 二进制:00111000B 十进制:111 对应 二进制:01101111B 十进制: 120 对应 二进制:01111000B十进制: 70 对应 二进制:01000110B、8位二进制数(无符号数)转换为十进制数 二进制:01010101B 对应 十进制:85 二进制:10101010B 对应 十进制:170 二

2、进制:11110000B 对应 十进制:240 二进制:00001111B 对应 十进制:15 、十进制数转换为十六进制数十进制:40 对应 二进制:00101000B 十进制:80 对应 二进制:01010000B 十进制:105 对应 二进制:01101001B 十进制: 114 对应 二进制:01101101B十进制: 207 对应 二进制:11001111B1.3、试把下面用补码表示的二进制数转换为对应的十进制真值二进制补码:01111000 对应的十进制值数真值:+120二进制补码:11011001 对应的十进制值数真值:-39二进制补码:10000001 对应的十进制值数真值:-1

3、27二进制补码:10001000 对应的十进制值数真值:-120二进制补码:00100111 对应的十进制值数真值:+39二进制补码:11110000 对应的十进制值数真值:-161.4、由键盘输入字符通常都是以该字符的ASCII码形式表示的。若现在从键盘上输入十六进制数0F,那么应如何处理才能把十六进制转换为4位二进制数00001111. 答:将键盘输入的数0F的ASCII码,每输入一个字符,减去30H后,再存入内存,这样就完成了把从键盘上输入的十六进制ASCII码转换为4位二进制数00001111. 1.5、试分别判断下列各组数据中哪个数据最大?哪个最小?、A=0.101B B=0,101

4、D C=0,101H、A=1011B B=1011D C=1011H答:第组:A=12+12=0.625 B=0.101 C=116+16=0.0625+0.00024414=0.06274414 所以A最大,最小第组,最大,最小1.6、现有一个二进制数10110110.若将该数看着是无符号数、原码表示的带符号数、补码表示的带符号数,它对应的十进制数的真值是多少?答:10110110.的无符号数的十进制是:+182; 10110110.的原码带符号数的十进制是:-54 10110110.补码表示的带符号数的十进制是:+741.7、下列各组数据均为十进制数,先将各数据转换为补码表示的带符号数,然

5、后用补码的加减运算分别完成下列各小题,并用十六进制数形式回答运算结果。、58+36 、(-58)+36 、58+(-36) 、(-58)+(-36)、58-36 、(-58)-36 、58-(-36) 、(-58)-(-36)答:、58+36的运算结果是:00111010+00010100=01001110=01011110、(-58)+36的运算结果是:11000110+00010100=11101010=-000101001、58+(-36)的运算结果是:00111010+11011100=00010110、(-58)+(-36)的运算结果是:11000110+10100010=10100

6、010、 58-36的运算结果是:00111010+11011100=00010110、(-58)-36的运算结果是:11000110+10100010=10100010、58-(-36)的运算结果是:00111010+00010100=01001110=01011110、(-58)-(-36)的运算结果是:11000110+00010100=11101010=-000101001第二章.、试说明8086/8088CPU中有哪些寄存器?各有什么用途?答:寄存器AX、AL:在乘法指令中,存放乘数和乘积; 在除法指令中,存放被除数和商; 在未组合BCD码运算的校正指令中 在某些串操作指令(LODS

7、,STOS,SCAS)中 在输入输出令中作数据寄存器寄存器AH:在LAHF指令中作目的寄存器寄存器AL:在组合型码的加减法校正指令中 在指令中作目的寄存器寄存器BX:在指令中基址寄存器寄存器CX:在循环指令中作循环次数计数器寄存器CL:在移位指令中作移位次数计数器寄存器DX: 在字数据的乘法和除法指令中辅助累加器寄存器SP:在堆栈操作中作堆栈指计寄存器SI:在串操作指令中作源变址寄存器寄存器DI:在串操作指令中作目的变址寄存器.、试说明8086/8088CPU中标志寄存器各标志位的意义? 答:8086/8088CPU中标志寄存器各标志位的意义是: CF:进位标志 PF:奇遇标志 AF:辅助进位

8、标志 ZF:零值标志 SF:符号位标志 TF:单步标志 IF: 中断允许标志 DF:方向标志 OF:溢出标志.、哪些操作只能隐含使用某个段寄存器,而不能用其他寄存器替代?哪些操作除隐含使用某个段寄存器外,还可以用其他段寄存器替代?答:在“取指令”、“堆栈操作”、“存目的串”三操作时,只能分别使用隐含段寄存器“CS”、“SS”“ES”,不能用其他寄存器替代; 在“取源串”、“以BP作基址”、“存取一般变量”三操作时,除了可分别使用隐含段寄存器“DS”、“SS”“DS外,还可分别使用“CS、SS、ES”, “CS、DS、ES” 、“CS、SS、ES”等进行替代。.、8086/8088系列微机在存储

9、器中寻找存储单元时,逻辑地址由哪两部分组成?答:在8086/8088系列微机在存储器中寻找存储单元时,逻辑地址由段基值和偏移量两部分组成,它们都是16位无符号二进制数。.、设IBM PC微机内存某一单元的物理地址是12345H,试完成下列不同的逻辑地址表示:、1234H:0005_H ;EA=段基值+DISP=12340H+0005H=12345H、1200H:0345H ;EA=段基值+DISP=12000H+0345H=12345H.、假设某用户程序装入内存后,(SS)=0950H,(SP)=64H,试问该用户程序的堆栈底部(字单元)物理地址是是多少?.、设堆栈段寄存器(SS)=3E4BH

10、,程序中设置堆栈长度为200个字节。试计算出堆栈底部字单元物理地址,堆栈指针SP初始值(即堆栈中没有数据时)和SP初始值指向的物理地址。.、设某用户程序(SP)=30H,(AX)=1234H,(DS)=5678H。如现有两条指令:PUSH AXPUSH DS试问两条指令执行后,图2.18中各单元的数据是多少?(SP)=?答: (SP)=30H-4H=2CH.、在IBM-PC微机上,分别进行下列8位二进制数的运算后,标志寄存器中OF、ZF、SF、CF的值各是多少?、10101011+01010101 、11011010+11101101、01010101-00111110 、10110011-0

11、1100010.、设(SP)=50H PUSH AX PUSH BX PUSH CX执行上述三条指令后,(SP)= 44H。.、设(SP)=6EH POP POP AX执行上述两条指令后,(SP)= 72H 。第三章3.1、试分别说明下列各指令中源操作数和目的操作数使用的寻址方式:、AND AX,0FFH ;立即数寻址、AND BL,0FFH ;直接寻址、MOV DS,AX ;寄存器寻址、CMP SI,CX ;寄存器间接寻址、MOV DS:0FFH,CL ;带前缀的直接寻址、SUB BPSI,AH ;基址变址寻址、ADC AX,0ABHBX ;基址寻址、OR AX,-35BXDI ;基址变址寻

12、址、PUSH DS ;寄存器寻址、CMC ;立即数寻址3.2、试分别指出下列各指令语句的语法是否有错,若有错,指明是什么错误。、MOV BXBP,AX ;错,BX与BP必须二选一、TEST BP,BL ;正确、ADD SI,DA_BYTE ;错,源目操作数不能同时为存储器、AND DH,DL ;错,同一寄存器高、低字节不能与、CMP CL,1234H ;正确、SHR BXDI,3 ;正确、NOT CX,AX ;错,NOT指令只有一个操作数、LEA DS,35SI ;正确、INC CX,1 ;正确、PUSH 45DI ;正确3.3、下面两条指令执行后,标志寄存器中,和分别是什么状态? , ,答:

13、以上两条指令执行后: 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 CL,20HDISI、MOV BPDI,CX、LEA BX,20HBXSI MOV AX,2BX、LDS SI,BXDIMOV SI,

14、BX、XCHG CX,32HBX XCHG AX,SI3.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)=464HLEA SI, SIMOV AX, SIMOV SI+22H, 1200HLDS SI, SI+20HADD AX, SI上述程序执行后:(DS)= ,(SI

15、)= (AX)= 3.8、已知(AX)=0A5C6H,(CX)=0F03H,CF=1 RCL AX, CL AND AH, CH RCR AX, CL 上述三条指令执行后:(),。3.9、已知(AX)=0FC77H,(CX)=504H,CF=1 SAR AX, CL XCHG CH, CLSHL AX, CL上述三条指令执行后:(),。3.10、已知(AX)=1234H MOV BX, AX NEG BX ADD AX, BX上述三条指令执行后:()(BX)。3.11、已知(AX)=4321H INC AX NEG AX DEC AX NEG AX上述几条指令执行后:()3.12、已知(AX)

16、=0A33AH,(DX)=0F0F0H AND AH,DL XOR AL,DH NEG AH NOT AL上述几条指令执行后:()3.13、已知(AX)=0FF60H, CF=1 MOV DX,96 XOR DH,0FFH SBB AX,DX上述几条指令执行后:(),。3.14、试按下列要求分别编制程序段:、把标志寄存器中符号位SF置1、寄存器AL中高低4 位相互换、由寄存器AX ,BX组成一个32位带符号数(AX 中存高16位,试求这个数的负数)、现有三个字节存储单元A、B、C。在不使用ADD和ADC指令的情况下,实现(A) + (B)送C。、用一条指令把CX中的整数转变成奇数(若原来是奇数

17、,则CX看数据不变;若原来是偶数,则(CX )+1形成奇数。、根据AX中有0的位对BX中对应位变反,其余各位保持不变3.15、试给出下列各指令的机器目标代码:、MOV BL,12HSI、MOV 12HSI,BL、SAL DX,1、ADD 0ABHBPDI,1234H第四章4.1、已知下列程序段 DATA SEGMENT DB1 DB 12H,34H,0,56H DW1 DW 78H,90H,0AB46H,1234H ADR1 DW DB1 ADR2 DW DW1 BUF DB 5 DUP(0) DATA ENDS COSEG SEGMENT ASSUME CS:COSEG,DS:DATA ST

18、ACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS ORG 30H START: XOR CX,CX MOV CL,3 ADD ADR1,CX SUB ADR2,CX MOV BX,ADR2 MOV DI,ADR2 MOV AL,DB1BX MOV BUFDI,AL MOV AX,DW1BXSI MOV WORD PTR BUF,AX COSEG ENDS END START上述程序段运行结束后,BUF中各字节单元的内容是什么?答:AX:AC27,BX:0704,CX:0003,DX:0000 SI:0000,DI:0704,BP:0000,SP

19、:0040 DS:139B,ES:139B,SS:13B3,CS:13AB IP:0053DS:0030:CC 11 14 00 18 9B 134.2、某数据段中有 COUNT1 EQU 16H COUNT2 DW 16H下面两条指令有何异同:MOV AX, COUNT1MOV BX, COUNT2答:AX:0016H, BX=1084HCOUNT1 EQU 16H 是赋值语句MOV BX, COUNT2是定义的地址指针,在1084H中才放字16H.4.3、下面各题中有语法错误,试分别用两种办法修改题中语句,使它们在汇编时都能分别获得通过:、 M1 DW 5060H MOV BL,M1、M2

20、 EQU 10H MOV M2,AL、M3 DW ABCD、M4 DB 1234、DATA1 SEGMENT DA1 DW 1234H DATA1 ENDS DATA2 SEGMENT DA2 DW 5678H DTA2 :CODE,DS:DATA1 MOV BX,DA2 CODE ENDS4.4、设已定义数据段: DATA SEGMENT DA1 DB XX, XX DA2 DB XX, XX ADRR DW DA1, DA2 DATA ENDS 为使ADRR+2字存储单元中存内容为0022H,上述方框中应填写什么语句?4.5、下面的程序段中,有数据为3000H的字存储单元有几个?它们的偏移

21、量分别是多小? ORG 30HDA1 DB 0, 0, 30H, 0, 30H DW DA14.6、下面的语句中有数据0102H的字存储单元有多少? DB 10H DUP(1,2 DUP(2))4.7、下述指令执行后,寄存器DS和SI的内容分别是多少? ADDR DW 1234H, 5678H, 0ABCDH LDS SI,ADDR+14.8、设某数据段为: DATA SEGMENT ORG 20H NUM1=8 MUM2=NUM1+10H DA1 DB IBM PC DB 0AH,0DH CUNT EQU $=DA1 DA2 DW IB,M,PC,0A0DH DATA ENDS 上述数据段定

22、义后,DA1和DA2的偏移量,CUNT的值以及DA2+5字节单元的内容分别是多少?4.9、某源程序有如下数据段: DATA1 SEGMENT WORD PUBLIC DA1 DB 20H DUP(0) DATA1 ENDS DATA2 SEGMENT PAGE PUBLIC DA2 DB 20H DUP(0) DATA2 ENDS 设DA1物理地址是134CEH,那么DATA2段基值,DA2的偏移量分别是多少?4.10、下述程序段执行后,寄存器AX,BX和CX的内容分别是多少? ORG 0202HDA_WORD DW 20H MOV AX, DA_WORD MOV BX, OFFSET DA_

23、WORD MOV CL, BYTE PTR DA_WORD+1 MOV CH, TYBE DA_WORD4.11、下述程序段执行后,寄存器BX和CX的内容分别是多少? NUM1=20*20 NUM2 EQU 400H REL1 DW NUM1 LE NUM2, EQ NUM2 MOV BX, REL2 MOV CX, WORD PTR REL24.12、下述程序段执行后,寄存器AX和BX的内容分别是多少? NUM EQU 945H ALPH=35*27 MOV AX, ALPH LE NUM MOV BX, ALPH GT NUM4.13、下述语句汇编后,$+20H和$+40H中的$值分别是多

24、少 ORG 34H NUM= DA1 DB 10H,$+20H,30H,$+490H DA2 DA1 + NUM + 40H4.14、试用数据定义语句DW改写下述语句,使它们在存储器中有完全相同的存储情况。 DA1 DB ABCDEFGHI DA2 DB 12H, 34H, 56H,7 8H, 9AH, 0BCH 4.15、现有两个程序摸块: TITLE PROC TITLE PROC2DATA1 SEGMENT DATA2 SEGMENDDA1 DB 10H DUP(0) DA2 DW 10H DUP(0)DATA1 ENDS DATA2 ENDSCODE1 SEGMENT CODE2 SE

25、GMENT ASSUME CS: CODE1 ASSUME CS: CODE2 ASSUME DS: DATA1 ASSUME DS: DATA2 START: SUB2 PROC FAR MOV DX, DA2+2 MOV AL, DA1+2 CALL SUB2 RET SUB2 ENDP CODE1 ENDS CODE2 ENDS END ATART END SUB2 在上述两个程序模块汇编、连接后,准备从START处开始执行。但在汇编连接期间出现语法错误,为使上述两程序模块能正确汇编、连接并执行,试 修改和补充有关语句。4.16、指出下列程序中哪几条语句有语法错误,并指出是什么错误(如符

26、号有没有定义)序号 指令语句1 DATA SEGMENT2 VAR1 DB 0, 3, 5H, 0B7H3 VAR2 DB 12H, A4H, 5BH4 VAR3 DB “ABCDEFGHIJ”5 VAR4 DW 1234H,”XY”, 0ACDH, 87H6 VAR5 DB DUP (?)7 DATA ENDS8 STACK1 SEGMEND PARA STACK9 DW 10H DUP (0)10 STACK1 ENDS11 COSEG SEGMENT12 ASSUME CS: COSEG, DS: DATA,SS: STACK113 START MOV BX, DATA14 MOV DS

27、, BX15 LEA SI, VAR516 MOV BX, OFFSET VAR317 MOV AX,VAR1+218 MOV SI,0ABH19 SHL AX, 320 ADD VAR1, VAR2+221 MOV BX, SI22 MOV AH, 4CH23 INT 21H24 CODE ENDS25 END START4.17、试用段定义伪指令编制一个小练习程序。待程序调试通过后,试对下列情况作一试验,观察它们在汇编、连接、调试时有何变化? 、在组合类型中没有指定”STACK的段;、有23个数据段组合类型中分别设置PUBLIC和COMMON;、在定位类型中有的段设置为WORD或BYTE。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1