汇编语言期末复习总结(完整版)_第1页
汇编语言期末复习总结(完整版)_第2页
汇编语言期末复习总结(完整版)_第3页
汇编语言期末复习总结(完整版)_第4页
汇编语言期末复习总结(完整版)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——汇编语言期末复习总结(完整版)〔习题1.24〕说明以下指令中源操作数的寻址方式?假使BX=2000H,DI=40H,给出DX的值或有效地址EA的值。

(1)movdx,[1234h]直接寻址,EA=1234H(3)movdx,bx寄放器寻址,DX=2000H

(6)movdx,[bx+di]基址变址寻址,EA=2040H

第2章8086的指令系统

〔习题2.1〕已知DS=2000H、BX=0100H、SI=0002H,存储单元[20230H]~[20233H]依次存放12345678H,[21200H]~[21203H]依次存放2A4CB765H,说明以下每条指令执行完后AX寄放器的内容。

(1)movax,1200hAX=1200H(2)movax,bxAX=0100H

(3)movax,[1200h]AX=4C2AH;偏移地址=1200h(4)movax,[bx]AX=3412H;偏移地址=bx=0100h

(5)movax,[bx+1100h]AX=4C2AH;偏移地址=bx+1100h=1200h

(6)movax,[bx+si]AX=7856H;偏移地址=bx+si=0100h+0002h=0102h(7)movax,[bx][si+1100h]AX=65B7H;偏移地址bx+si+1100h=0100h+0002h+1100h=1202h

〔习题2.2〕指出以下指令的错误

(1)movcx,dl两操作数类型不匹配

(2)movip,axIP指令指针阻止用户访问

(3)moves,1234h马上数不允许传给段寄放器(DS、CS、SS、ES)(4)moves,ds段寄放器之间不允许传送(5)moval,300两操作数类型不匹配(6)mov[sp],ax目的操作数应为[SI](7)movax,bx+di源操作数应为[BX+DI](8)mov20h,ah马上数不能作目的操作数

〔习题2.8〕请分别用一条汇编语言指令完成如下功能:

(1)把BX寄放器和DX寄放器的内容相加,结果存入DX寄放器。(2)用寄放器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄放器的内容相加,并把结果送到AL中。

(3)用BX和位移量0B2H的寄放器相对寻址方式把存储器中的一个字和CX寄放器的内容相加,并把结果送回存储器中。(4)用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。

(5)把数0A0H与AL寄放器的内容相加,并把结果送回AL中。(1)ADDDX,BX

(2)ADDAL,byteptr[BX+SI](3)ADD[BX+0B2H],CX

(4)ADDWORDPTR[0520H],3412H(5)ADDAL,0A0H

〔习题2.10〕指出以下指令的错误:

(1)xchg[si],30hxchg的操作数不能是马上数(2)popcs不应对CS直接赋值

(3)sub[si],[di]两个操作数不能都是存储单元(4)pushah堆栈的操作数不能是字节变量(5)adcax,dsadc的操作数不能是段寄放器(6)add[si],80h没有确定是字节还是字操作(7)shl[si],1没有指定指向数据的大小(8)rordx,alal应当换成cl

〔习题2.22〕假设AX和SI存放的是有符号数,DX和DI存放的是无符号数,请用比较指令和条件转移指令实现以下判断:(1)若DX>DI,转到above执行cmpdx,di

jaabove;=jnbeabove(2)若AX>SI,转到greater执行cmpax,si

jggreater;=jnlegreater(3)若CX=0,转到zero执行cmpcx,0

jzzero;=jcxzzero

〔习题2.25〕对下面要求,分别给出3种方法,每种方法只用一条指令。(1)使CF=0(2)使AX=0(1)解答:

clc(清零)

andax,ax(规律操作不会进位)orax,ax(2)解答:xorax,axandax,0movax,0

〔习题3.7〕假设myword是一个字变量,mybyte1和mybyte2是两个字节变量,指出以下语句中的错误原因。

(1)movbyteptr[bx],10001000超出了一个字节范围

(2)movbx,offsetmyword[si]寄放器的值只有程序执行时才能确定,而offset是汇编过程计算的偏移地址,故无法确定,改为leabx,myword[si]

(3)cmpmybyte1,mybyte2两个都是存储单元,指令不允许

(4)moval,mybyte1+mybyte2变量值只有执行时才确定,汇编过程不能计算(5)subal,myword字节量AL与字变量myword,类型不匹配

(6)jnzmywordJnz指令只有相对寻址方式,不支持间接寻址方式〔〔习题3.10〕画图说明以下语句分派的存储空间及初始化的数据值:(1)byte_varDB’ABC’,10,10h,’EF’,3DUP(-1,?,3DUP(4))(2)word_varDW10h,-5,’EF’,3DUP(?)

(1)从低地址开始,依次是(十六进制表达):

4142430a104546ff-040404ff-040404ff-040404(2)从低地址开始,依次是(十六进制表达):1000FBFF4645------

〔习题3.11〕请设置一个数据段mydataseg,依照如下要求定义变量:(1)my1b为字符串变量:PersonalComputer(2)my2b为用十进制数表示的字节变量:20(4)my4b为用二进制数表示的字节变量:20(5)my5w为20个未赋值的字变量(6)my6c为100的常量

(7)my7c表示字符串:PersonalComputermydatasegsegment

my1bdb‘PersonalComputer’my2bdb20

my3bdb14h;20hmy4bdb00010100bmy5wdw20dup(?)

my6cequ100;my6c=100my7cequmydatasegends

第4章基本汇编语言程序设计

〔习题4.6〕编制一个程序,把变量bufX和bufY中较大者存入bufZ;若两者相等,则把其中之一存入bufZ中。假设变量存放的是8位无符号数。.modelsmall.stack256.databufxdb?bufYdb?bufzdb?.code.startup

moval,bufXmovbl,bufYcmpal,bljanext

movbufZ,bljmpdone

next:movbufZ,aldone:.exit0End

大题

1.显示HelloWorld字符串。.modelsmall;定义程序的存储模型,一般程序采用小型模型.stack;堆栈段.data;数据段stringdb'HelloWorld!',0dh,0ah,'$';定义需要显示的字符串.code;代码段.startup;程序的起始点,建立DS、SS内容movdx,offsetstring;指定字符串在数据段的偏移地址movah,9int21h;调用功能调用显示信息.exit0;程序终止点,返回DOSend;汇编终止2.COM程序实现任意键后响铃.modeltiny.code.startupmovdx,offsetstringmovah,9;9号调用输出字符串int21hmovah,01h;1号调用,从stdin读取字符int21hmovah,02hmovdl,07hint21h;2号调用,向stdout输出字符(07H-\\a响铃).exit0stringdb'Pressanykeytocontinue!$';数据安排在不与代码冲突的地方end3.设有一个64位的数据,要求将它算术左移8位(从高字节开始,从右向左左移8位).modelstmall.stack.dataqvardq1234567887654321h;dq表示4个字4*16=64bytes.code.startupmovcx,7movsi,6;1again:moval,byteptrqvar[si]movbyteptrqvar[si+1],al;si-1descsi;incsiloopagainmovbyteptrqvar[si+1],0;si4.计算1~100的和,将结果放入SUM中.modelstmall.stack.datasumdw?.code.startupxorax,axmovcx,100again:addax,cxloopagainmovsum,ax.exit0end5.把一个字符串中所有的大小改小写,该字符串以’0’结尾。.modelstmall.stack.datastringdb'HELLOworld!',0.code.startupmovbx,offsetstringagain:moval,[bx]oral,aljzdonecmpal,'A'jbnextcmpal,'Z'janextoral,20hmov[bx],alnext:incbxjmpagaindone:.exit0end6.编制一个程序,把变量bufX和bufY中较大者存入bufZ;若两者相等。则将其中之一存入bu

温馨提示

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

评论

0/150

提交评论