8086汇编语言习题解答

上传人:沈*** 文档编号:138181875 上传时间:2022-08-19 格式:DOC 页数:19 大小:82.50KB
收藏 版权申诉 举报 下载
8086汇编语言习题解答_第1页
第1页 / 共19页
8086汇编语言习题解答_第2页
第2页 / 共19页
8086汇编语言习题解答_第3页
第3页 / 共19页
资源描述:

《8086汇编语言习题解答》由会员分享,可在线阅读,更多相关《8086汇编语言习题解答(19页珍藏版)》请在装配图网上搜索。

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

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

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

4、0.625 B=0.101C=116+16=0.0625+0.00024414=0.06274414 所以A最大,最小第组,最大,最小1.6、现有一个二进制数10110110.若将该数看着是无符号数、原码表示的带符号数、补码表示的带符号数,它对应的十进制数的真值是多少?答:10110110.的无符号数的十进制是:+182; 10110110.的原码带符号数的十进制是:-54 10110110.补码表示的带符号数的十进制是:+741.7、下列各组数据均为十进制数,先将各数据转换为补码表示的带符号数,然后用补码的加减运算分别完成下列各小题,并用十六进制数形式回答运算结果。、58+36、(-58)+

5、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=10100010、 58-36的运算结果是:00111010+11011100=00010110、(-58)-36的运

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

7、加减法校正指令中在指令中作目的寄存器寄存器BX:在指令中基址寄存器寄存器CX:在循环指令中作循环次数计数器寄存器CL:在移位指令中作移位次数计数器寄存器DX: 在字数据的乘法和除法指令中辅助累加器寄存器SP:在堆栈操作中作堆栈指计寄存器SI:在串操作指令中作源变址寄存器寄存器DI:在串操作指令中作目的变址寄存器.、试说明8086/8088CPU中标志寄存器各标志位的意义?答:8086/8088CPU中标志寄存器各标志位的意义是:CF:进位标志PF:奇遇标志AF:辅助进位标志ZF:零值标志SF:符号位标志TF:单步标志IF: 中断允许标志 DF:方向标志OF:溢出标志.、哪些操作只能隐含使用某个

8、段寄存器,而不能用其他寄存器替代?哪些操作除隐含使用某个段寄存器外,还可以用其他段寄存器替代?答:在“取指令”、“堆栈操作”、“存目的串”三操作时,只能分别使用隐含段寄存器“CS”、“SS”“ES”,不能用其他寄存器替代;在“取源串”、“以BP作基址”、“存取一般变量”三操作时,除了可分别使用隐含段寄存器“DS”、“SS”“DS外,还可分别使用“CS、SS、ES”, “CS、DS、ES” 、“CS、SS、ES”等进行替代。.、8086/8088系列微机在存储器中寻找存储单元时,逻辑地址由哪两部分组成?答:在8086/8088系列微机在存储器中寻找存储单元时,逻辑地址由段基值和偏移量两部分组成,

9、它们都是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,程序中设置堆栈长度为200个字节。试计算出堆栈底部字单元物理地址,堆栈指针SP初始值(即堆栈中没有数据时)和SP初始值指向的物理地址。.、设

10、某用户程序(SP)=30H,(AX)=1234H,(DS)=5678H。如现有两条指令:PUSHAXPUSHDS试问两条指令执行后,图2.18中各单元的数据是多少?(SP)=?答: (SP)=30H-4H=2CH.、在IBM-PC微机上,分别进行下列8位二进制数的运算后,标志寄存器中OF、ZF、SF、CF的值各是多少?、10101011+01010101、11011010+11101101、01010101-00111110、10110011-01100010.、设(SP)=50HPUSHAXPUSHBXPUSHCX执行上述三条指令后,(SP)= 44H。.、设(SP)=6EHPOPPOPAX

11、执行上述两条指令后,(SP)= 72H 。第三章3.1、试分别说明下列各指令中源操作数和目的操作数使用的寻址方式:、ANDAX,0FFH;立即数寻址、ANDBL,0FFH;直接寻址、MOVDS,AX;寄存器寻址、CMPSI,CX;寄存器间接寻址、MOVDS:0FFH,CL;带前缀的直接寻址、SUBBPSI,AH;基址变址寻址、ADCAX,0ABHBX;基址寻址、ORAX,-35BXDI;基址变址寻址、PUSHDS;寄存器寻址、CMC;立即数寻址3.2、试分别指出下列各指令语句的语法是否有错,若有错,指明是什么错误。、MOVBXBP,AX;错,BX与BP必须二选一、TESTBP,BL;正确、AD

12、DSI,DA_BYTE;错,源目操作数不能同时为存储器、ANDDH,DL;错,同一寄存器高、低字节不能与、CMPCL,1234H;正确、SHRBXDI,3;正确、NOTCX,AX;错,NOT指令只有一个操作数、LEADS,35SI;正确、INCCX,1;正确、PUSH45DI;正确3.3、下面两条指令执行后,标志寄存器中,和分别是什么状态?,答:以上两条指令执行后:CF=AF=ZF=SF=OF=3.4、在8086/8088CPU中可用于作地址指针的寄存器有哪些?答:3.5、已知(DS)=091DH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H (CX)=5678H,(BP

13、)=0024H,(SI)=0012H,(DI)=0032H,单元(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH 下各指标令或程序段分别执行后的结果如何?、MOVCL,20HDISI、MOVBPDI,CX、LEABX,20HBXSI MOVAX,2BX、LDSSI,BXDIMOVSI,BX、XCHGCX,32HBX XCHGAX,SI3.6、已知(SS)=0915H,(DS)=0930H,(SI)=0A0H, (DI)=1C0H,(BX)80H,(BP)=470H.现有一指令“MOVAX,OPRD”,若源操作数的物理地址为095C0H,试用4种不同寻址方

14、式该写此指令(要求上述每个已知条件至少要使用一次)。3.7、已知(DS)=1234H,(SI)=124H,(12464H)=30ABH,(12484H)=464HLEASI, SIMOVAX, SIMOVSI+22H, 1200HLDSSI, SI+20HADDAX, SI上述程序执行后:(DS)= ,(SI)= (AX)= 3.8、已知(AX)=0A5C6H,(CX)=0F03H,CF=1RCLAX, CLANDAH, CH RCRAX, CL上述三条指令执行后:(),。3.9、已知(AX)=0FC77H,(CX)=504H,CF=1 SARAX, CLXCHGCH, CLSHLAX, CL

15、上述三条指令执行后:(),。3.10、已知(AX)=1234HMOVBX, AXNEGBXADDAX, BX上述三条指令执行后:()(BX)。3.11、已知(AX)=4321HINCAXNEGAXDECAX NEGAX上述几条指令执行后:()3.12、已知(AX)=0A33AH,(DX)=0F0F0HANDAH,DLXORAL,DHNEGAH NOTAL上述几条指令执行后:()3.13、已知(AX)=0FF60H, CF=1MOVDX,96XORDH,0FFHSBBAX,DX上述几条指令执行后:(),。3.14、试按下列要求分别编制程序段:、把标志寄存器中符号位SF置1、寄存器AL中高低4 位

16、相互换、由寄存器AX ,BX组成一个32位带符号数(AX 中存高16位,试求这个数的负数)、现有三个字节存储单元A、B、C。在不使用ADD和ADC指令的情况下,实现(A) + (B)送C。、用一条指令把CX中的整数转变成奇数(若原来是奇数,则CX看数据不变;若原来是偶数,则(CX )+1形成奇数。、根据AX中有0的位对BX中对应位变反,其余各位保持不变3.15、试给出下列各指令的机器目标代码:、MOVBL,12HSI、MOV12HSI,BL、SALDX,1、ADD0ABHBPDI,1234H第四章4.1、已知下列程序段 DATA SEGMENT DB1 DB 12H,34H,0,56H DW1

17、 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 STACK1 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

18、 BUF,AX COSEG ENDS END START上述程序段运行结束后,BUF中各字节单元的内容是什么?答:AX:AC27,BX:0704,CX:0003,DX:0000 SI:0000,DI:0704,BP:0000,SP: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下面两条指令有何异同:MOVAX, COUNT1MOVBX, COUNT2答:AX:0016H,BX=1084HCOUNT1 EQU 16H是赋值

19、语句MOVBX, COUNT2是定义的地址指针,在1084H中才放字16H.4.3、下面各题中有语法错误,试分别用两种办法修改题中语句,使它们在汇编时都能分别获得通过:、M1DW5060HMOVBL,M1、M2EQU10HMOV M2,AL、M3DWABCD、M4DB1234、DATA1SEGMENTDA1DW1234H DATA1ENDS DATA2SEGMENT DA2DW5678HDTA2:CODE,DS:DATA1MOVBX,DA2CODEENDS4.4、设已定义数据段:DATASEGMENTDA1DBXX, XXDA2DBXX, XXADRRDWDA1, DA2DATAENDS 为使

20、ADRR+2字存储单元中存内容为0022H,上述方框中应填写什么语句?4.5、下面的程序段中,有数据为3000H的字存储单元有几个?它们的偏移量分别是多小?ORG30HDA1 DB0, 0, 30H, 0, 30HDWDA14.6、下面的语句中有数据0102H的字存储单元有多少?DB10HDUP(1,2DUP(2))4.7、下述指令执行后,寄存器DS和SI的内容分别是多少?ADDRDW1234H, 5678H, 0ABCDHLDSSI,ADDR+14.8、设某数据段为:DATASEGMENTORG20HNUM1=8MUM2=NUM1+10HDA1DBIBM PCDB0AH,0DHCUNTEQU

21、$=DA1DA2DWIB,M,PC,0A0DHDATAENDS上述数据段定义后,DA1和DA2的偏移量,CUNT的值以及DA2+5字节单元的内容分别是多少?4.9、某源程序有如下数据段:DATA1SEGMENTWORDPUBLICDA1DB20HDUP(0)DATA1ENDSDATA2SEGMENTPAGEPUBLICDA2DB20HDUP(0)DATA2ENDS设DA1物理地址是134CEH,那么DATA2段基值,DA2的偏移量分别是多少?4.10、下述程序段执行后,寄存器AX,BX和CX的内容分别是多少?ORG0202HDA_WORDDW20HMOVAX, DA_WORDMOVBX, OF

22、FSETDA_WORDMOVCL, BYTEPTRDA_WORD+1MOVCH, TYBEDA_WORD4.11、下述程序段执行后,寄存器BX和CX的内容分别是多少?NUM1=20*20NUM2EQU400HREL1DWNUM1LENUM2,EQNUM2MOVBX, REL2MOVCX, WORDPTRREL24.12、下述程序段执行后,寄存器AX和BX的内容分别是多少?NUMEQU945HALPH=35*27MOVAX, ALPHLENUMMOVBX, ALPHGTNUM4.13、下述语句汇编后,$+20H和$+40H中的$值分别是多少ORG34HNUM=DA1DB10H,$+20H,30H

23、,$+490HDA2DA1 + NUM + 40H4.14、试用数据定义语句DW改写下述语句,使它们在存储器中有完全相同的存储情况。DA1DBABCDEFGHIDA2DB12H, 34H, 56H,7 8H, 9AH, 0BCH4.15、现有两个程序摸块:TITLEPROCTITLEPROC2DATA1SEGMENTDATA2SEGMENDDA1DB10H DUP(0)DA2DW10HDUP(0)DATA1ENDSDATA2ENDSCODE1SEGMENTCODE2SEGMENTASSUMECS: CODE1ASSUMECS: CODE2ASSUMEDS: DATA1ASSUMEDS: DAT

24、A2START:SUB2PROCFARMOVDX, DA2+2MOVAL, DA1+2CALLSUB2RETSUB2ENDPCODE1ENDSCODE2ENDSENDATARTENDSUB2在上述两个程序模块汇编、连接后,准备从START处开始执行。但在汇编连接期间出现语法错误,为使上述两程序模块能正确汇编、连接并执行,试 修改和补充有关语句。4.16、指出下列程序中哪几条语句有语法错误,并指出是什么错误(如符号有没有定义)序号指令语句1DATASEGMENT2VAR1DB0, 3, 5H, 0B7H3VAR2DB12H, A4H, 5BH4VAR3DB“ABCDEFGHIJ”5VAR4DW1

25、234H,”XY”, 0ACDH, 87H6VAR5DBDUP (?)7DATAENDS8STACK1SEGMEND PARASTACK9DW10H DUP (0)10STACK1ENDS11COSEGSEGMENT12ASSUMECS: COSEG, DS: DATA,SS: STACK113STARTMOVBX, DATA14MOVDS, BX15LEASI, VAR516MOVBX, OFFSETVAR317MOVAX,VAR1+218MOVSI,0ABH19SHLAX, 320ADDVAR1, VAR2+221MOVBX, SI22MOVAH, 4CH23INT21H24CODEENDS25ENDSTART4.17、试用段定义伪指令编制一个小练习程序。待程序调试通过后,试对下列情况作一试验,观察它们在汇编、连接、调试时有何变化? 、在组合类型中没有指定”STACK的段;、有23个数据段组合类型中分别设置PUBLIC和COMMON;、在定位类型中有的段设置为WORD或BYTE。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!