版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、习题33.1 简要分析8086的指令格式由哪些部分组成,什么是操作码?什么是操作数?寻址和寻址方式的含义是什么?8086指令系统有哪些寻址方式?【解答】8086的指令格式由操作码和操作数字段组成。操作码:要完成的操作。操作数:参与操作的对象。寻址:寻找操作数或操作数地址的过程。寻址方式:指令中给由的找到操作数或操作数地址采用的方式。8086指令系统的寻址方式主要有立即数寻址、寄存器寻址、存储器寻址和I/O端口寻址。其中,存储器寻址可进一步分为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址;I/O端口指令IN和OUT使用的端口寻址方式有直接寻址和间接寻址。3.2 设(D
2、S)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量VAL的偏移地址为0050H,请指由下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?(1) MOVAX,21H(2) MOVAX,BX(3) MOVAX,1000H(4) MOVAX,VALMOVAX(6)MOVAXMOVAX(8)MOVAX(9)MOVAX(10)MOVAX(11)MOVAX(12)MOVAX【解答】,BX,ES:BX,BP,SI,BX+10,VALBX,BXSI,VALBXSI(1) MOVAX,21H立即寻址,源操作数直接放在指
3、令中(2) MOVAX,BX寄存器寻址,源操作数放在寄存器BX中(3) MOVAX,1000H直接寻址,EA=1000H,PA=(DS)X10H+EA=2000H10H1000H=21000H(4) MOVAX,VAL直接寻址,EA=VAL=0050H,PA=(DS)X10H+EA=2000HX10H+0050H=20050H(5) MOVAX,BX寄存器间接寻址,EA=(BX)=0100H,PA=(DS)X10H+EA=2000HX10H+0100H=20100H(6) MOVAX,ES:BX寄存器间接寻址,EA=(BX)=0100H,PA=(ES)X10H+EA=2100HX10H+010
4、0H=21100H(7) MOVAX,BP寄存器间接寻址,EA=(BP)=0010H,PA=(SS)X10H+EA=1500HX10H+0010H=15010H(8) MOVAX,SI寄存器间接寻址,EA=(SI)=00A0H,PA=(DS)X10H+EA=2000HX10H+00A0H=200A0H(9) MOVAX,BX+10相对寄存器寻址,EA=(BX)+10D=0100H+000AH=010AH,PA=(DS)X10H+EA=2000HX10H+010AH=2010AH(10) MOVAX,VALBX相对寄存器寻址,EA=(BX)+VAL=0100H+0050H=0150H,PA=(D
5、S)X10H+EA=2000HX10H+0150H=20150H(11) MOVAX,BXSI基址变址寻址,EA=(BX)+(SI)=0100H+00A0H=01A0H,PA=(DS)X10H+EA=2000HX10H+01A0H=201A0H(12) MOVAX,VALBXSI相对基址变址寻址,EA=(BX)+(SI)+VAL=0100H+00A0H+0050H=01F0H,PA=(DS)X10H+EA=2000HX10H+01F0H=201F0H3.3给定寄存器及存储单元的内容为:(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=32H,(20101)=51
6、H,(20102)=26H,(20103)=83H,(21200)=1AH,(21201)=B6H,(21202)=D1H,(21203)=29H。试说明下列各条指令执行完后,AX寄存器中保存的内容是什么。MOVAX,1200H(2)MOVAX,BX(3)MOVAX1200H(4)MOVAX,BX(5)(6)MOVAXBXSI【解答】(1) MOVAX,1200H(2) MOVAXBX=0100HMOVAX,1100HBX;执行后,(AX)=1200H;执行后,(AX)=(BX)(3) MOVAX1200H直接寻址,EA=VAL=1200H,PA=(DS)X10H+EA=2000HX10H+1
7、200H=21200H,执行后,(AX)=B61AH(4) MOVAX,BXEA=(BX)=0100H,PA=(DS)X10H+EA=2000HX10H+0100H=20100H,执行后,(AX)=5132H(5) MOVAX,1100HBXEA=(BX)+1100H=0100H+1100H=1200H,PA=(DS)X10H+EA=2000HX10H+1200H=21200H,执行后,(AX)=B61AH(6) MOVAX,BXSIEA=(BX)+(SI)=0100H+0002H=0102H,PA=(DS)X10H+EA=2000HX10H+0102H=20102H,执行后,(AX)=29D
8、1H3.4分析下列指令的正误,对于错误的指令要说明原因并加以改正。(1) MOVAH,BX(2) MOVBX,SI(3) MOVAX,SIDI(4) MOVMYDATBXSI,AX(5) MOVBYTEPTRBX,1000(6) MOVBX,OFFSETMAYDATSI(7) MOVCS,AX(8) MOVDS,BP【解答】(1) MOVAHBX错误,寄存器类型不匹配,可改为MOVAX,BX(2) MOVBXSI错误,两个操作数不能都为存储单元,可改为MOVBX,SI或MOVBX,SI(3) MOVAXSIDI错误,寻址方式中只能由现一个变址寄存器,可改为MOVAX,BXDI(4) MOVMY
9、DATBXSI,ES:AX错误,AX签不能有段跨越前缀,去掉ES:,改为MOVMYDATBXSI,AX(5) MOVBYTEPTRBX,1000错误,1000超由字节空间存储范围(6) MOVBX,OFFSETSI;正确(7) MOVCS,AX错误,MOV指令CS不能做目的操作数,可改为MOVDS,AX(8) MOVDS,AX;正确注:本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式。3.5设VAR1、VAR2为字变量,LAB为标号,分析下列指令的错误之处并加以改正。(1) ADDVAR1,VAR2(2)MOVAL,VAR2(3)SUBAL,VAR1(4)JMPLABSI(5) J
10、NZVAR1(6)JMPNEARLAB【解答】(1) ADDVAR1,VAR2错误,两个操作数不能都为存储单元,可改为MOVBXVAR2ADDVAR1BX(2) MOVALVAR2错误,数据类型不匹配,可改为MOVAX,VAR2(3) SUBALVAR1错误,数据类型不匹配,可改为SUBAX,VAR1(4) JMPLABSI错误,寄存器相对寻址形式中不能用标号做位移量,可改为JMPVAR1SI(5) JNZVAR1错误,条件跳转指令只能进行段内短跳转,所以后面只能跟短标号。可改为JNZLAB(6) JMPNEARLAB错误,缺少运算符PTR,可改为JMPNEARPTRLAB注:本题错误改正部分
11、有的答案并不唯一,可参考原题题意改成合法形式。3.6写生能够完成下列操作的8086CPU指令。(1)把4629H传送给AX寄存器;MOVAX,4629H(2)从AX寄存器中减去3218H;SUBAX,3218H(3)把BUF的偏移地址送入BX中。LEABX,BUF【解答】(1) MOVAX,4629H(2) SUBAX,3218H(3) LEABX,BUF3.7 根据以下要求写由相应的汇编语言指令。(1) 把BX和DX寄存器的内容相加,结果存入DX寄存器中;ADDDX,BX(2)用BX和SI的基址变址寻址方式,把存储器中的一个字节与AL内容相加,并保存在AL寄存器中;ADDAL,BXSI(3)
12、用寄存器BX和位移量21B5H的变址寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器单元中;ADDBX+21B5H,CX(4)用位移量2158H的直接寻址方式把存储器中的一个字与数3160H相加,并把结果送回该存储器中;MOVAX,3160HADDAX,2158HMOV2158H,AX(5)把数25H与(AL)相加,结果送回寄存器AL中。ADDAL,25H【解答】(2) ADDDX,BX(3) ADDAL,BXSI(4) ADD21B5HBX,CX(5) ADDWORDPTR2158H,3160H(6) ADDAL,25H3.8 写生将首地址为BLOCK的字数组的第6个字送到CX寄
13、存器的指令序列,要求分别使用以下几种寻址方式:(1)以BX的寄存器间接寻址LEABX,BLOCKMOVCX,BX+10(2)以BX的寄存器相对寻址(3)以BX、SI的基址变址寻址LEABX,BLOCKMOVSI,10MOVCX,BXSI【解答】LEABX,BLOCK+10MOVCX,BX(2)LEABX,BLOCKMOVCX,10BXLEABX,BLOCKMOVSI,10MOVCX,BXSI3.9 执行下列指令后,AX寄存器中的内容是什么?TABLEDB10,20,30,40,50ENTRYDW3MOVBX,OFFSETTABLEADDBX,ENTRYMOVAX,BXAX=【解答AX=3228
14、H3.10 下面是将内存一字节数据高4位和低4位互换并放回原位置的程序,找由错误并改正。DATASEGMENTDD1DB23HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,OFFSETDD1MOVAL,SIMOVCL,4RCRALCLMOVSIALMOVAH4CHINT21HCODEENDSENDSTART【解答】程序第8行错误:LEASI,OFFSETDD1,应去掉OFFSET;程序第10行错误:RCRAL,CL,应使用ROR或ROL,改为RORAL,CL3.11已知用寄存器BX作地址指针,自BUF
15、所指的内存单元开始连续存放着3个无符号数字数据,编程序求它们的和,并将结果存放在这3个数之后。【解答】参考程序如下:LEABX,BUFMOVAX,BXADDAX,BX+2ADDAX,BX+4MOVBX+6,AX3.12分析汇编语言源程序应该由哪些逻辑段组成?各段的作用是什么?语句标号和变量应具备哪3种属性?【解答】汇编语言源程序应该由若干个逻辑段组成,可以有若干个数据段、代码段、堆栈段和附加数据段,至少要有一个代码段。各段的作用如下:(1)代码段用来存放程序和常数。(2)数据段用于数据的保存。(3)堆栈段用于保护数据,尤其在子程序调用、中断过程中进行现场信息保护。(4)附加数据段用于数据的保存
16、。语句标号和变量应具备的3种属性:段属性、偏移属性和类型属性。3.13执行完下列程序后,回答指定的问题。MOVAX,0MOVBX,2MOVCX,50LP:ADDAX,BXADDBX,2LOOPLP问:(1)该程序的功能是O(2)程序执行完成后,(AX)=。【解答】(1)完成0到100间所有偶数求和的功能。(2)25503.14 编写程序,计算下面函数的值。2x(x0)s3x(0x10)4xx10【解答】DATASEGMENTXDW34SDW?DATAENDSCODESEGMENTASSUMESTART:MOVMOVMOVCS:CODE,AX,DATADS,AXDS:DATAAX«-X
17、;将X送到aX马?DOUB司doub1010吗?TRIB向tribDOUB:1TRIB:EXIT:AX4CHCODECMPAX(AX)>'0JLCMPJLESALSAJMJMPADDMOVINTENDSEND;是,AX;否,(ax);是,AX-1EXITSALAX;否,乘以AXEXITSALAX°XMOVAX;乘以321HSTARTS,;保存结果AH;结束注意,在比较的过程中使用的是针对带符号数的跳转指令,X应该看作带符号数。程序中还用了移位指令代替了乘法指令。3.15 从键盘输入一系列字符,以回车符结束,编程统【解答】DATASEGMENT计其中非数字字符的个数。BL
18、OCKDB100DUP(?)COUNTDB?DATAENDSCODESEGMENTASSUMEDS:DATACS:CODESTART:MOVAXDATAMOVDSAXMOVDL0LEASIBLOCKLP:MOVAH1INT21HCMPAL,0DHJZEXITMOVSI,ALCMPAL30HJAENEXTCMPAL,39HJBENEXTINCDLNEXT:INCSIJMPLPEXIT:MOVCOUNTDLMOVAH4CHINT21HCODEENDSENDSTART3.16 已知在内存中从BLOCK单元起存放有20个带符号字节数据,统计其中负数的个数并放入COUNT单元。【解答】DATASEGME
19、NTBLOCKDB-7,1,12,-90,-70,34,-1,56,45,-12DB-3,-4,23,0,12,11,-9,-8,67,-56CNEQU$-BLOCKCOUNTDB?DATAENDSASSUMEDS:DATASTART:MOVAXDATADSAXDL0LEASIBLOCKMOVCXCS:CODEMOVMOVCODESEGMENTLP:MOVALTESTALjzneXtINCDLDLNEXT:INCSILOOPLPMOVCOUNTMOVAH4CHNT21HCODEENDSENDSTART3.17 从键盘输入一个大写英文字母,将其转换为小写字母并显示由来,要求输入其它字符时,能够有由错提示信息。【解答】DATASEGMENTMESSDB'INPUPERROR!',0AH,0DH,$,DATAENDSCODESEGMENTASSUMEDS:DATACS:CODESTART:MOVAXDATAMOVDSAXMOVAH01HNT21HCMPAL'A'JBERRCMPAL,'Z'JAERRADDAL20HMOVDLALMOVAH02HIN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2 说话要算数2023-2024学年四年级下册道德与法治同步说课稿(统编版)
- 二零二五年度林业资源测绘合同范本3篇
- 11 保护土壤(说课稿)-2023-2024学年三年级上册科学 青岛版
- 2025年度食品添加剂研发与生产合同(2025版)3篇
- 16 赤壁赋 登泰山记(说课稿)-2024-2025学年高一语文必修上册同步备课系列(统编版2019)
- 2025年沪科版九年级数学上册阶段测试试卷
- 2025年苏科版七年级生物下册月考试卷含答案
- 第六单元写作《发挥联想和想象》说课稿 2024-2025学年统编语文七年级上册
- 2025年沪教版六年级数学下册阶段测试试卷含答案
- 与打印店签订合同协议书
- 2024年医师定期考核临床业务知识考试题库及答案(共三套)
- 2014新PEP小学英语六年级上册-Unit5-What-does-he-do复习课件
- 建筑材料供应链管理服务合同
- 孩子改名字父母一方委托书
- 2024-2025学年人教版初中物理九年级全一册《电与磁》单元测试卷(原卷版)
- 江苏单招英语考纲词汇
- 2024年事业单位财务工作计划例文(6篇)
- 2024年工程咨询服务承诺书
- 青桔单车保险合同条例
- 车辆使用不过户免责协议书范文范本
- 2023-2024学年天津市部分区九年级(上)期末物理试卷
评论
0/150
提交评论