第3章微机原理课件.ppt_第1页
第3章微机原理课件.ppt_第2页
第3章微机原理课件.ppt_第3页
第3章微机原理课件.ppt_第4页
第3章微机原理课件.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、1,格式:incopr(B/W),(OPR) (OPR) 1 OPR3360寄存器,内存不能是段寄存器。功能:指定的目标操作数1操作数单元格。用途:您可以在循环程序中修改地址指针和循环数。旗标位元影响状况:影响SF、ZF、AF、PF、OF不会影响CF。3)加1命令INC(单个操作数命令),2,例如incalAL的内容中包含1 INCCX添加。将1 incbyte ptr bx di 500添加到CX的内容中。在BX DI 500牙齿指向的单元格内容中添加1 Inc Word PTR DI。内存1(字操作)INC DS错误,3,ADD/ADC对条件标志位(CF/OF/ZF/SF)的影响:CF位表

2、示无符号数字的额外溢出。OF位表示添加到有符号计数中的溢出。4,(1)减去命令SUB格式,不考虑借用:SUB dest,src操作:dest(dest)-(src) src:立即计数,寄存器,内存。Dest:寄存器,内存。完成双字节或双词减法。注:1 .源操作数和目标操作数不能同时是存储操作数。2.不能使用立即数作为目标操作数。2.减法命令,5,命令示例:SUB AL、60H SUB BX 20H、DX SUB AX、CX SUB BX、CX;从BX的内容中减去CX的内容,将BX中的SUB BP 2,CL;从BP 2指向的单元格中的值减去CL。值,结果在BP 2指向的堆栈单元格中为SUB AL

3、,20。AL的数量减去20等于AL的SUB SI,5010H。SI的数量减去5010H时,SI中的SUB WORD PTR DI,1000H中选择所需的构件。DI和DI 1牙齿指的两个词;metal的数量减去1000H时,DI和DI 1牙齿指向的单元格中的6,SBB指令主要用于多字节减法。格式:SBB dest,src操作:dest(dest)-(src)-(CF)命令示例:SBB AX、CX SBB WORD PTRSI、2080h sbbsi、dx 30h.x2,y2,56,2ch,a1h,f3h,z Y,Y 2;在Z,Z 2的存储(单词)单元格中,将wx y 24-z作为命令序列实现,并

4、放置在W,W 2(单词)单元格中。8,例如,x、y和z是32位数字,分别存储在x、x 2中。y,y 2;在Z,Z 2的存储(单词)单元格中,将wx y 24-z作为命令序列实现,并放置在W,W 2(单词)单元格中。Movax、x mov dx、x2 add ax、y;低8位相加结果AX ADC DX,Y 2;高度8位相加,结果DX ADD AX,24 ADC DX,0;X y 24sub ax,z;低8位减法结果AX SBB DX,Z 2;高8位相减的结果DX MOV W、AX MOV W 2、DX;结果存入W,W 2单元,X发送DX和AX,实现X Y,X Y-Z,9,就像C语言中的“运算符”

5、一样。格式:decoprOpr:寄存器、内存、段寄存器操作:opr(opr)-1用于修改循环程序中的地址指针和循环数。影响SF、ZF、AF、PF、OF影响CF命令示例:DEC CL DEC BYTE PTRDI 2 DEC SI,(3)减1命令DEC,10,格式:NEG opr操作:opr 0-(当操作数为正数时,补充操作得到正数对应的负数补充代码;当操作数为负数时,补充操作得到负数的绝对值。11,SUB/SBB对标志位(CF/OF/ZF/SF)的影响,CF=1表示无符号数字减溢出。OF=1表示有符号数字减溢出。NEG命令对CF/OF的影响:CF:如果操作数为0,则补充结果为CF=0;否则,C

6、F=1。OF:当字节运算补充-128或单词运算补充-32768时,OF=1;否则,OF=0。12,格式:CMP dest,src操作:(dest)-(src) CMP也执行两个操作数相减,但结果不发送目标操作数,结果仅反映在标志位中。命令示例:CMP AL、0AH CMP CX、SI CMP DI、BX 03、(5)比较命令根据CMP、Src:立即计数、寄存器、内存Dest:寄存器、存储、13、标记位进行比较如果ZF=1,则两个数字相同。2)如果两个数字不相等,则考虑两个茄子的:比较两个无符号数字。如果CF=0,则为destsrc如果CF=1,则为destsrc。如果OFSF=0,则为dest

7、src如果OFSF=1,则为destsrc。使用、14、“比较”命令时,通常紧跟在条件切换命令之后以确定比较结果的方向。例如:比较AL、BL、CL中带符号数字的大小,并将最小值放在AL中。程序:CMP al、bl;AL和BL比较jng BBB如果为ALBL,则为xchgal,bl;如果为ALBL,则为BBB : CMP al、cl;AL和CL比较jng CCC如果是ALCL,则为xchgal、cl;ALCL为CC: HLT,15更换,乘法时:8位*8位16位乘法16位*16位32位乘法(1)无符号数字的乘法命令MUL(MEM/REG)格式:MUL src操作(1)(AX)(CX),乘积为DX,

8、AX中的MUL BYTE PTRBX,3。乘法命令,源操作数必须是寄存器或内存操作数。16,格式类似于MUL指令,但两个操作数都必须有符号。命令示例:imul bl(ax)(al)(bl)imul word ptr si;(DX,AX)(AX)(SI 1SI),(2)有符号数字乘法命令IMUL,注意:在MUL/IMUL命令中,AL(AX)是隐式乘数寄存器。AX(DX,AX)是隐式产品寄存器。SRC不能立即计数。除CF和OF外,没有其他标志位的定义。源操作数是寄存器或内存操作数,17,乘法命令对CF/OF的影响。例如,(AL)=A5H(负真-5BH),(BL)=11H(1)IMUL BL(1)a

9、511-5 b11=-060B f9f 5;(AX)=F9F5H CF=OF=1(2)MUL BL;(AX)(AL)(BL);A511=0AF5(AX)=0AF5H CF=OF=1,18,4。除法命令,除法:16位/8位8位份额32位/16位16位份额对被除数、份额和馀数有以下规定:被除数份额除以剩馀字节axal格式:DIV src操作:字节操作(AL)/(SRC)的份额(AH) (AX)/(SRC)的剩馀数字操作(axal)商和其他都是有符号的数,其他符号总是与被除数符号相同。是DIV/IDIV命令AX(DX,AX)的隐式被除数寄存器。ax是隐式商寄存器。AH(DX)是隐式剩余寄存器。Src

10、不能立即计算。未为所有条件标志位定义。源操作数为寄存器或内存操作数,21,除法运算要求被除数字符长度为除数字符长度的两倍,如果不满足,则必须扩展被除数。否则,将出现错误。对于无符号数字除法扩展,只需将AH或DX整理为0。对于带符号的数字,是符号位的扩展。使用上述符号扩展命令CBW和CWD,分割操作的字符长度扩展问题,22,示例:可以写入34H25H的节目段。MOV AL、34H MOV BL、25H CBWAL的符号扩展到AH IDIV BL。0034H25H,结果如下:(AH)=0FH,(AL)=01H,23,*5。BCD代码操作的十进制曹征命令,用于控制BCD代码操作的结果。AAA、DAA

11、、AAS、DAS、AAS BCD代码实质上是小数。也就是说,要遵守遇到十进制数的规则。计算机以二进制(十六进制)进行运算,不按照十进制规则进行运算。24,1)加十进制曹征命令,(1)添加未压缩BCD代码曹征AAA牙齿命令调整AL中两个未组合BCD代码或ASCII代码添加的结果,以获得正确的未组合BCD代码。AAA命令仅影响AF和CF,其馀标志未定义。AAA命令必须紧跟在ADD或ADC命令之后。,25,AL的低4位9或AF=1:al (al)6,(ah) (ah) 1,af1 al (al) 0fh) CFAF非AL(AL曹征原则因为在计算过程中生成从低4位到高4位的舍入时(在牙齿中AF=1),

12、是符合十六进制数的规则,但BCD代码要求所有内容。牙齿1表示16,实际上应该再加10,即6。27,实际上,第四位低的结果9(即AF之间)时也要进行6次调整。(遇到10的话,因为没有四舍五入,所以用加6的方法强制四舍五入。)以上示例的结果加上6:0001 0001 11 0000 0110 6 0001 0111 17 0000 1111,如果不是-1 0000 111 AF1 al (al) 0fh)CFAF,则为AL(AL)0FH,1牙齿AH从问题中可以看出,加法和加法的每个人都以ASCII代码存储在内存中。假设这两个数字在内存中都是低的,高的位在后面,剩下的5个单位存储相加的结果。内存中的

13、数据存储格式如下一页所示。29,36h,32h,39h,31h,string1,string2,38h,35h,36hSTRING2偏移地址DI LEA BX,sum总偏移地址传输BX MOV CX,4;Clc循环4次;舍入标志again: moval、SI ADC AL、di;包括卡里AAA未压缩的BCD代码修正MOV BX,al;结果存储在sum Inc si中。指针Inc di Inc bx dec CX曹征循环计数器减去1 jnz again。如果处理未完成,则为AGAIN、31、事故问题:1。按照过程记录结果SUM的值。2.最高位置有舍入的话,程序怎么修改?3.在牙齿中,AAA指令也可以调整字符串格式的十进制加法,因此也称为加法的ASCII曹征指令。为什么AAA命令可以调整未压缩的BCD代码附加和ASCII代码格式的十进制数?(请参见AAA命令步骤),32,(2)添加压缩BCD代码曹征DAA,添加两个压缩BCD代码结果AL中的D

温馨提示

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

评论

0/150

提交评论