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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

期中复习提纲.docx

1、期中复习提纲习题1.19什么是8086中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?请将如下逻辑地址用物理地址表达:(1)FFFFh:0(2)40h:17h(3)2000h:4500h(4)B821h:4567h解答在8086处理器中,对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从00000HFFFFFH。在8086内部和用户编程时,采用的段基地址:段内偏移地址形式称为逻辑地址。将逻辑地址中的段地址左移二进制4位(对应16进制是一位,即乘以16),加上偏移地址就得到20位物理地址如下逻辑地址用物理地址表达:(1)FFFFh:0FFFF0H(2)40h:17h00417H(

2、3)2000h:4500h24500H(4)B821h:4567hBC777H (不要算错)习题2.1已知DS2000H、BX0100H、SI0002H,存储单元20100H20103H依次存放12345678H,21200H21203H依次存放2A4CB765H,说明下列每条指令执行完后AX寄存器的内容。(1)movax,1200h(2)movax,bx(3)movax,1200h(4)movax,bx(5)movax,bx+1100h(6)movax,bx+si(7)movax,bxsi+1100h解答(1)AX1200H(2)AX0100H(3)AX4C2AH;偏移地址=bx=0100h

3、(4)AX3412H;偏移地址=bx=0100h(5)AX4C2AH;偏移地址=bx+1100h=1200h(6)AX7856H;偏移地址=bx+si=0100h+0002h=0102h(7)AX65B7H;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h习题2.2指出下列指令的错误(1)movcx,dl(2)movip,ax(3)moves,1234h(4)moves,ds(5)moval,300(6)movsp,ax(7)movax,bx+di(8)mov20h,ah解答(1)两操作数类型不匹配(2)IP指令指针禁止用户访问(3)立即数不允许传给段寄存器(4

4、)段寄存器之间不允许传送(5)两操作数类型不匹配(6)目的操作数应为SI(7)源操作数应为BX+DI(8)立即数不能作目的操作数习题2.6给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:moval,89haddal,aladdal,9dhcmpal,0bchsubal,aldecalincal解答moval,89h ;AL=89hCFZFSFOFPFaddal,al ;AL=12h10011;10001001+10001001100010010addal,9dh ;AL=0afh00101;00010010+1001110110101111cmpal,0bch ;AL=0

5、afh10101;10101111-10111100*01000011subal,al ;AL=00h01001decal ;AL=0ffh00101;00000000-00000001*11111111incal ;AL=00h01001;11111111+00000001*11111111习题2.8请分别用一条汇编语言指令完成如下功能:(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。(2)用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。(3)用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并

6、把结果送回存储器中。(4)用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。(5)把数0A0H与AL寄存器的内容相加,并把结果送回AL中。解答(1)ADDDX,BX(2)ADDAL,BX+SI(3)ADDBX+0B2H,CX(4)ADDWORDPTR0520H,3412H(5)ADDAL,0A0H习题2.9设X、Y、Z、V均为16位带符号数,分别装在X、Y、Z、V存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。movax,X ;ax=XimulY ;DX.AX=X*Ymovcx,ax;cx=X*Y的低16位moxbx,dx;

7、bx=X*Y的高16位movax,Z ;ax=Zcwdaddcx,ax;cx=Z的低16位+X*Y的低16位adcbx,dx;bx=Z的高16位+X*Y的高16位+低位进位subcx,540;cx=Z的低16位+X*Y的低16位-540sbbbx,0 ;bx=Z的高16位+X*Y的高16位+低位进位-低位借位movax,V ;ax=Vcwdsubax,cx ;ax=V的低16位-(Z的低16位+X*Y的低16位-540)sbbdx,bx ;dx=V的高16位-(Z的高16位+X*Y的高16位+低位进位-低位借位)-低位借位idivX;/X解答V-(X*Y+Z-540)/XAX存商,DX存余数习

8、题2.22判断下列程序段跳转的条件(1)xorax,1e1ehjeequal(2)testal,10000001bjnzthere(3)cmpcx,64hjbthere解答(1)AX1e1eh(异或后为0)(2)AL的D0或D7至少有一位为1(3)CX(无符号数)64h习题2.23设置CX=0,则LOOP指令将循环多少次?例如:movcx,0delay:loopdelay解答216次。习题2.25有一个首地址为array的20个字的数组,说明下列程序段的功能。movcx,20movax,0movsi,axsum_loop:addax,arraysiaddsi,2loopsum_loopmovt

9、otal,ax解答将首地址为array得20个字的数组求和,并将结果存入total单元中。习题2.26按照下列要求,编写相应的程序段:(1)起始地址为string的主存单元中存放有一个字符串(长度大于6),把该字符串中的第1个和第6个字符(字节量)传送给DX寄存器。(2)从主存buffer开始的4个字节中保存了4个非压缩BCD码,现按低(高)地址对低(高)位的原则,将它们合并到DX中。(3)编写一个程序段,在DX高4位全为0时,使AX=0;否则使AX=-1。(4)有两个64位数值,按“小端方式”存放在两个缓冲区buffer1和buffer2中,编写程序段完成buffer1buffer2功能。(

10、5)假设从B800h:0开始存放有100个16位无符号数,编程求它们的和,并把32位的和保存在DX.AX中。(6)已知字符串string包含有32KB内容,将其中的$符号替换成空格。(7)有一个100个字节元素的数组,其首地址为array,将每个元素减1(不考虑溢出)存于原处。(8)统计以$结尾的字符串srting的字符个数。解答(1)解答:movsi,0movdl,stringsi ;第1个字符送dl寄存器:movdl,stirng0movsi,5movdh,stringsi ;第6个字符送dh寄存器:movdl,stirng5(2)解答:xorsi,si ;si清零moval,buffer

11、si ;第一字节incsimovah,buffersi ;第二字节movcl,4shlah,cl ;BCD码移到高半字节oral,ah ;组合成压缩BCD码movdl,al ;存入dl寄.incsimoval,buffersi ;第三字节incsimovah,buffersi ;第四字节movcl,4shlah,cl ;BCD码移到高半字节oral,ah ;组合成压缩BCD码movdh,al ;存入dh寄.(3)解答:testdx,0f000h ;testdh,0f0hjznext ;jnznextmovax,-1 ;movax,0jmpagainnext:movax,0 ;movax,0ff

12、ffhagain: .(4)解答:movax,wordptrbuffer1subax,wordptrbuffer2 ;先减低16位movdx,wordptrbuffer1+2sbbdx,wordptrbuffer2+2 ;后减高16位,需减低16位的借位(5)解答:movax,0b800hmovds,ax ;段地址xorsi,si ;地址偏移量si=0xordx,dx ;和的高字dx=0movcx,99 ;加的次数movax,si ;第一个数again:incsi ;指向下一个字单元incsiaddax,si ;加下一个数jncnoc ;无进位转incdx ;有进位dx=dx+1noc:dec

13、cx ;次数-1jnzcx,again ;非0继续加(6)解答1:不使用串操作指令(更好)movsi,offsetstringmovcx,8000h ;32k=215=8000hagain: cmpbyteptrsi,$;$24hjnznext ;不要采用jz进行分支movbyteptrsi,;20hnext: incsiloopagain ;deccx;jnzagain(6)解答2:使用串操作指令movdi,offsetstringmoval,$movcx,8000hcldagain: scasbjnznextmovbyteptres:di-1,next: loopagain(7)解答1:m

14、ovsi,offsetarraymovcx,100again: decbyteptrsiincsiloopagain(7)解答2:xorsi,si ;si-0movcx,100 ;循环次数again:decarraysiincsiloopagain(7)解答3:movsi,offsetarraymovdi,simovax,dsmoves,axmovcx,100cldagain:lodsbdecalstosbloopagain(8)解答:xorsi,si ;si-0coun: cmpstringsi,$jedoneincsijmpcoundone: .习题4.9编制一个程序,把变量bufX和bu

15、fY中较大者存入bufZ;若两者相等,则把其中之一存入bufZ中。假设变量存放的是8位无符号数。解答.modelsmall.stack256.databufx db?bufY db?bufz db?.code.startupmoval,bufXmovbl,bufYcmpal,bljanextmovbufZ,bljmpdonenext:movbufZ,aldone: .exit0end习题4.10设变量bufX为有符号16位数,请将它的符号状态保存在signX,即:如果X大于等于0,保存0;如果X小于0,保存-1(ffh)。编写该程序。解答.modelsmall.stack.databufX d

16、w-7signX db?.code.startupcmpbufX,0 ;testbufX,80hjlnext ;jnznextmovsignX,0jmpdonenext: movsignX,-1done: .exit0end习题4.11bufX、bufY和bufZ是3个有符号16进制数,编写一个比较相等关系的程序:(1)如果这3个数都不相等,则显示0;(2)如果这3个数中有两个数相等,则显示1;(3)如果这3个数都相等,则显示2。解答.modelsmall.stack256.databufx dw?bufY dw?bufz dw?.code.startupmovax,bufXmovbx,buf

17、Ymovcx,bufZmovdl,0cmpax,bxjnznext1incdlnext1: cmpax,cxjnznext2incdlnext2: cmpbx,cxjnznext3incdlnext3: cmpdl,3jbnext4movdl,2next4: movah,02h ;显示int21h.exit0end1.什么是8088中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?1MB最多能分成多少个逻辑段?请将如下逻辑地址用物理地址表达:FFFFH:0 40H:17H2000H:4500HB821H:4567H解答物理地址:物理存储单元具有的一个唯一的20位编号逻辑地址:在8088内部和

18、用户编程时,所采用的“段地址:偏移地址”形式将逻辑地址中的段地址左移二进制4位(对应16进制是一位,即乘以16),加上偏移地址就得到20位物理地址1MB最多能分成1MB16B22024216个逻辑段,因为每隔16个字节单元就可以开始一个逻辑段FFFFH:0FFFF0H40H:17H00417H2000H:4500H24500HB821H:4567HBC777H习题2.68088有哪4种逻辑段,各种逻辑段分别是什么用途?解答代码段(CodeSegment)用来存放程序的指令序列。处理器利用CS:IP取得下一条要执行的指令堆栈段(StackSegment)确定堆栈所在的主存区域。处理器利用SS:S

19、P操作堆栈中的数据数据段(DataSegment)存放当前运行程序所用的数据。处理器利用DS:EA存取数据段中的数据附加段(ExtraSegment)是附加的数据段,也用于数据的保存。处理器利用ES:EA存取数据段中的数据习题2.8已知DS2000H、BX0100H、SI0002H,存储单元20100H20103H依次存放12H、34H、56H、78H,21200H21203H依次存放2AH、4CH、B7H、65H,说明下列每条指令执行完后AX寄存器的内容,以及源操作数的寻址方式?movax,1200hmovax,bxmovax,1200hmovax,bxmovax,bx+1100hmovax

20、,bx+simovax,bxsi+1100h解答movax,1200h ;AX1200H, 立即数寻址movax,bx; AX0100H, 寄存器寻址movax,1200h ;AX4C2AH, 直接寻址movax,bx ;AX3412H, 寄存器间接寻址movax,bx+1100h;AX4C2AH, 寄存器相对寻址movax,bx+si;AX7856H, 基址变址寻址movax,bxsi+1100h ;AX65B7H,相对基址变址寻址习题2.9说明下面各条指令的具体错误原因movcx,dlmovip,axmoves,1234hmoves,dsmoval,300movsp,axmovax,bx+

21、di mov20h,ah解答习题2.11给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:moval,89haddal,aladdal,9dhcmpal,0bchsubal,aldecalincal解答moval,89h ;AL89H CFZF SF OFPFaddal,al ;AL12H 1 0 0 1 1addal,9dh ;AL0AFH 0 0 1 0 1cmpal,0bch ;AL0AFH1 0 1 0 1subal,al ;AL00H 0 1 0 0 1decal ;AL0FFH 0 0 1 0 1incal ;AL00H 0 1 0 0 1习题2.12请分别用一

22、条汇编语言指令完成如下功能:把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。把数0A0H与AL寄存器的内容相加,并把结果送回AL中解答把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器adddx,bx用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果

23、送到AL中addal,bx+si用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中addbx+0b2h,cx用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中addwordptr0520h,3412h把数0A0H与AL寄存器的内容相加,并把结果送回AL中addal,0a0h习题2.13设X、Y、Z、V均为16位带符号数,分别装在X、Y、Z、V存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。movax,XimulYmovcx,axmoxbx,dxmovax,Zcwdaddcx

24、,axadcbx,dxsubcx,540sbbbx,0movax,Vcwdsubax,cxsbbdx,bxidivX解答习题2.14给出下列各条指令执行后的结果,以及状态标志CF、OF、SF、ZF、PF的状态。movax,1470handax,axorax,axxorax,axnotaxtestax,0f0f0h解答movax,1470h ;AX1470HCFZF SF OFPFandax,ax ;AX1470H0 0 0 0 0orax,ax ;AX1470H0 0 0 0 0xorax,ax ;AX0000H0 1 0 0 1notax ;AXFFFFH0 1 0 0 1testax,0f

25、0f0h ;AXFFFFH0 0 1 0 1习题2.17判断下列程序段跳转的条件xorax,1e1ehjeequaltestal,10000001bjnztherecmpcx,64hjbthere解答 xorax,1e1ehjeequal ;AX1e1eh(异或后为0) testal,10000001bjnzthere;AL的D0或D7至少有一位为1 cmpcx,64hjbthere ;CX(无符号数)64h习题2.19有一个首地址为array的20个字的数组,说明下列程序段的功能。movcx,20movax,0movsi,axsumlp: addax,arraysiaddsi,2loopsumlpmovtotal,ax解答习题2.20按照下列要求,编写相应的程序段:由string指示起始地址的主存单元中存放有一个字符串(长度大于6),把该字符串中的第1个和第6个字符(字节量)传送给DX寄存器。有两个32位数值,按“小端方式”存放在两个缓冲区bu

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

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