微型机指令系统课件.ppt

上传人(卖家):三亚风情 文档编号:3291318 上传时间:2022-08-17 格式:PPT 页数:123 大小:3.11MB
下载 相关 举报
微型机指令系统课件.ppt_第1页
第1页 / 共123页
微型机指令系统课件.ppt_第2页
第2页 / 共123页
微型机指令系统课件.ppt_第3页
第3页 / 共123页
微型机指令系统课件.ppt_第4页
第4页 / 共123页
微型机指令系统课件.ppt_第5页
第5页 / 共123页
点击查看更多>>
资源描述

1、段基址(段基址(16位)位)0000偏移地址(偏移地址(16位)位)+物物 理理 地地 址(址(20位)位)8086/8088的的存储器管理的的存储器管理段基址寄存器与偏移地址寄存器的段基址寄存器与偏移地址寄存器的隐含对应隐含对应关系关系1.取指操作取指操作 CSIP2.数据存取数据存取 DSBX、DI、SI、direct(存储器直接地址存储器直接地址)3.串操作串操作 DSSI ESDI4.堆栈操作堆栈操作 SSSP5.BP的间接寻址的间接寻址 SSBP第二章第二章微型机指令系统微型机指令系统第一节第一节 寻址方式寻址方式操作码操作码:规定指令进行什么操作。:规定指令进行什么操作。操作数操作

2、数:规定指令操作的对象。:规定指令操作的对象。寻址方式寻址方式:寻找操作数所在地址的方式。(共七种):寻找操作数所在地址的方式。(共七种)一、立即寻址一、立即寻址MOV CL,05MOV AX,1000H立即数立即数 操作码操作码操作数操作数立即寻址中的操作数作为指令的一部分存放在代码段中,在取指阶段数据随指令一起被取到CPU,这种数据在指令格式中的直接表现为常数。立即寻址方式立即寻址方式主要用于给寄存器或存储器赋初值。主要用于给寄存器或存储器赋初值。第二章第二章微型机指令系统微型机指令系统第一节第一节 寻址方式寻址方式一、立即寻址一、立即寻址二、寄存器寻址二、寄存器寻址MOV SS,AX(累

3、加器(累加器的内容传送给堆栈段寄存器)的内容传送给堆栈段寄存器)MOV AX,BX(将基址(将基址寄存器的内容传送给累加器)寄存器的内容传送给累加器)指定某些指定某些CPU寄存器存放操作数,由于操作数在寄存器存放操作数,由于操作数在CPU寄存器中,指令执行过程中不必通过访问内存而取得寄存器中,指令执行过程中不必通过访问内存而取得操作数,因此执行速度很快操作数,因此执行速度很快第二章第二章微型机指令系统微型机指令系统第一节第一节 寻址方式寻址方式一、立即寻址一、立即寻址二、寄存器寻址二、寄存器寻址三、直接寻址(存储器寻址)三、直接寻址(存储器寻址)MOV AX,1000H直接寻址隐含段为数据段直

4、接寻址隐含段为数据段DS,但允,但允许许段超越段超越。MOV AX,ES:1000H MOV AX,SS:1000H MOV AX,CS:1000H12 34直接寻址指令在指令的操作码后面直直接寻址指令在指令的操作码后面直接给出操作数的偏移地址,它与操作接给出操作数的偏移地址,它与操作码一起存放在存储器的代码段,高地码一起存放在存储器的代码段,高地址对应高址对应高8位,低地址对应低位,低地址对应低8位,但位,但是操作数本身一般存放在内存的数据是操作数本身一般存放在内存的数据段。默认段地址为段。默认段地址为DS。段地址段地址*10+偏移地址偏移地址第二章第二章微型机指令系统微型机指令系统第一节第

5、一节 寻址方式寻址方式一、立即寻址一、立即寻址二、寄存器寻址二、寄存器寻址三、直接寻址(存储器寻址)三、直接寻址(存储器寻址)四、寄存器间接寻址(存储器寻址)四、寄存器间接寻址(存储器寻址)MOV AX,BX直接寻址指令在指令的操作码后面没直接寻址指令在指令的操作码后面没有直接给出操作数的偏移地址,而是有直接给出操作数的偏移地址,而是寄存器寄存器(DI、SI、BX、BP)存放操作存放操作数数16位偏移地址。位偏移地址。存储器操作数的寻址方式中,数据都存储器操作数的寻址方式中,数据都存放于存储单元中,指令操作过程中存放于存储单元中,指令操作过程中需要需要BIU通过一个总线周期的访问,通过一个总线

6、周期的访问,才能获取操作数。才能获取操作数。第二章第二章微型机指令系统微型机指令系统第一节第一节 寻址方式寻址方式一、立即寻址一、立即寻址二、寄存器寻址二、寄存器寻址三、直接寻址三、直接寻址四、寄存器间接寻址四、寄存器间接寻址五、变址寻址五、变址寻址 变址寄存器(变址寄存器(SI、DI)的内容加上指令中给出的)的内容加上指令中给出的位移量,得到操作数的有效地址。位移量,得到操作数的有效地址。MOV BX,SI+1003H 变址寻址指令的几种不同形式变址寻址指令的几种不同形式 MOV AL,TABLESI MOV AL,SI+TABLE MOV AL,SI+TABLE7变址寻址举例变址寻址举例M

7、OV AX,BX+SI 操作如图所示 数据段数据段3000H:0000H3000H:0000H3000H:3000H3000H:3000H34H12HAHAL20H00HBX+10H00HSI+3 0 0 0 0(段基址)(段基址)+3 0 0 0(偏移地址)(偏移地址)第二章第二章微型机指令系统微型机指令系统第一节第一节 寻址方式寻址方式一、立即寻址一、立即寻址二、寄存器寻址二、寄存器寻址三、直接寻址三、直接寻址四、寄存器间接寻址四、寄存器间接寻址五、变址寻址五、变址寻址六、基址寻址六、基址寻址 基址寻址和变址寻址类似,不同之处在于指令使基址寻址和变址寻址类似,不同之处在于指令使用基址寄存器

8、(用基址寄存器(BX、BP)的内容加上指令中给出的)的内容加上指令中给出的位移量,而不是变址寄存器(位移量,而不是变址寄存器(SI、DI)。)。第二章第二章微型机指令系统微型机指令系统第一节第一节 寻址方式寻址方式一、立即寻址一、立即寻址二、寄存器寻址二、寄存器寻址三、直接寻址三、直接寻址四、寄存器间接寻址四、寄存器间接寻址五、变址寻址五、变址寻址六、基址寻址六、基址寻址七、基址七、基址-变址寻址变址寻址 基址寄存器(基址寄存器(BX、BP)的内容、变址寄存器()的内容、变址寄存器(SI、DI)的内容和指令中给出的位移量三者相加,得到操作)的内容和指令中给出的位移量三者相加,得到操作数的有效地

9、址。数的有效地址。MOV AX,COUNTBXSIMOV AX,BX+COUNTSI MOV AX,BX+SI+COUNT MOV AX,BXCOUNTSI MOV AX,BX+SICOUNT MOV AX,COUNTSIBX第二章第二章微型机指令系统微型机指令系统第一节第一节 寻址方式寻址方式一、立即寻址一、立即寻址二、寄存器寻址二、寄存器寻址三、直接寻址三、直接寻址四、寄存器间接寻址四、寄存器间接寻址五、变址寻址五、变址寻址六、基址寻址六、基址寻址七、基址七、基址-变址寻址变址寻址MOV AX,CountBXSIBX:1000HSI:0B00H Count:0500H基址基址-变址寻址方式

10、是前面两种寻址方式变址寻址方式是前面两种寻址方式的结合指令中规定一个基址寄存器(的结合指令中规定一个基址寄存器(BP、BX)和一个变址寄存器()和一个变址寄存器(SI、DI),同),同时给出一个时给出一个8位或者位或者16位的位移量,将三位的位移量,将三者的内容相加就得到了操作数的偏移地者的内容相加就得到了操作数的偏移地址(有效地址、逻辑地址、址(有效地址、逻辑地址、EA)。)。第二章第二章微型机指令系统微型机指令系统第一节第一节 寻址方式寻址方式第二节第二节 8086/80888086/8088指令系统指令系统n数据传送指令数据传送指令n算术运算指令算术运算指令n逻辑运算和移位指令逻辑运算和

11、移位指令n串操作指令串操作指令n控制转移指令控制转移指令n处理器控制指令处理器控制指令8086总共有总共有90多种基本指令,按照功能,可分为六大类:多种基本指令,按照功能,可分为六大类:第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令通用数据传送指令通用数据传送指令输入、输出指令输入、输出指令目标地址传送指令目标地址传送指令标志传送指令标志传送指令传送指令是将数据送寄存器或者存储单元中;在寄存器之间、寄存器与存储器之间进行数据传送。按照其功能不同,可分为:第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据

12、传送指令(一)通用传送指令(一)通用传送指令指令格式指令格式MOV D ,S寄存器寄存器 存存储器储器 段寄段寄存器存器(代码(代码段寄存段寄存 器器cs除外)除外)寄存器寄存器 存存储器储器 段寄段寄存器存器 立即数立即数注注:不能用:不能用MOV指令直接完成以下传递指令直接完成以下传递存储单元之间的传递存储单元之间的传递立即数至段寄存器的传递立即数至段寄存器的传递段寄存器之间的传递段寄存器之间的传递若想实现上述传输,必须若想实现上述传输,必须使用两条使用两条MOV指令来实指令来实现:现:DEST:目标操作数目标操作数;SRC:源操作数源操作数 D S1.MOV(Movement)一般传送指

13、令一般传送指令将源操作数送入指定目的操作数14n举例存储单元之间的传送(MEM1 MEM2):MOV AX,MEM1;先将MEM1传送至通用寄存器MOV MEM2,AX;先将通用寄存器传送至MEM2段寄存器之间的传递(DS ES):MOV AX,DS;段寄存器传送至通用寄存器MOV ES,AX;从通用寄存器传送到段寄存器同样可以实现立即数至段寄存器的传输间接传递举例:间接传递举例:第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令(一)通用传送指令(一)通用传送指令1.MOV(Movement)一般传送指令一般传送指令2.PUSH 入栈指令入栈指

14、令指令格式指令格式PUSH s操作操作(SP)(SP)-2;(SP)+1:(SP)s例:例:PUSH AX 已知:已知:AX=9ABCH;SS=3400H;SP=0562H;9AHBCH功能:将堆栈指针上移两个字节后将源操作数压入堆栈 SS*10+SP冒号前后表示两个地冒号前后表示两个地址连续的储存单元址连续的储存单元第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令(一)通用传送指令(一)通用传送指令1.MOV(Movement)一般传送指令一般传送指令2.PUSH 入栈指令入栈指令3.POP 出栈指令(出栈指令(LIFO)指令格式指令格式PO

15、P d操作操作d(SP)+1:(SP)(SP)(SP)+2;例:例:POP AX 已知:已知:AX=9ABCH;SS=3400H;SP=0560H;ALAH9AHBCH将栈顶内容弹到目的操作数中,然后堆栈的栈顶指针下移两个字节 第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令(一)通用传送指令(一)通用传送指令1.MOV(Movement)一般传送指令一般传送指令2.PUSH 入栈指令入栈指令3.POP 出栈指令出栈指令4.XCHG(Exchange)交换指令交换指令指令格式指令格式XCHG d,S;d s寄存器寄存器 寄存器寄存器寄存器寄存器

16、 存储器存储器例:例:功能:将源操作数、目的操作数内容互换MOV AX,BX操作如图所示 BHBLBXAHALAX两个操作数不能同为存储器操作数。段寄存器的内容不能参加交换。注注第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令(一)通用传送指令(一)通用传送指令5.XLAT(Translate)字节字节查表指令查表指令指令格式指令格式XLAT s_table查表方式查表方式功能:ALDS:BX+AL。把BX的内容作为数据段中数据表的首地址,AL内容为查表的项数,将其对应的字节单元的值再送给AL 3000H:0000H3000H:0000H300

17、0H:2000H3000H:2000H3000H:2005H3000H:2005H数据段数据段+2000BX表首址表首址查表项查表项+AL 05HAL 05H34H34H第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令(一)通用传送指令(一)通用传送指令1.MOV(Movement)一般传送指令一般传送指令2.PUSH 入栈指令入栈指令3.POP 出栈指令出栈指令4.XCHG(Exchange)交换指令交换指令5.XLAT(Translate)字节字节查表指令查表指令第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送

18、指令一、数据传送指令(一)通用传送指令(一)通用传送指令(二)输入输出指令(二)输入输出指令1.IN I/O口输入指令口输入指令指令格式指令格式IN ACC,port;(ACC)(port)IN AL,data8 IN AX,data8 IN AL,DX IN AX,DX具体形式具体形式输入指令输入指令IN用于从用于从I/O端口接收数据端口接收数据输入指令从输入指令从I/O端口端口port中输入一个字节到累加器。中输入一个字节到累加器。第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令(二)输入输出指令(二)输入输出指令1.IN I/O口输入指令

19、口输入指令指令格式指令格式OUT port,ACC;(port)(ACC)OUT data8,AL OUT data8,AX OUT DX,AL OUT DX,AX具体形式具体形式OUT或者或者IN指令,无论接收到的数据或者准备发送的数据都必须在指令,无论接收到的数据或者准备发送的数据都必须在累加器中累加器中AX(字字)或或AL(字节字节)中,所以这两条指令时累加器专用指令。中,所以这两条指令时累加器专用指令。2.OUT I/O口输出指令口输出指令输出指令输出指令OUT用于从用于从I/O端口输出数据端口输出数据输出指令从累加器输出一个字节到输出指令从累加器输出一个字节到I/O端口端口port。

20、第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令(一)通用传送指令(一)通用传送指令(二)输入输出指令(二)输入输出指令(三)目标地址传送指令(三)目标地址传送指令1.LEA 偏移地址传送指令偏移地址传送指令指令格式指令格式LEA reg16,mem16 通用寄存器通用寄存器 AX、BX、CX、DX、BP、SP、DI、SI例:例:LEA AX,BPDI LEA BX,BUFFER LEA DX,BETABXSI LEA CX,SI+100AHMOV BX,OFFSET BUFFER功能:将源操作数的有效地址送指定寄存器功能:将源操作数的有效地址

21、送指定寄存器 第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令(三)目标地址传送指令(三)目标地址传送指令1.LEA 偏移地址传送指令偏移地址传送指令LEA、MOV的区别的区别LEA CX,SI+100AHMOV CX,SI+100AH已知:已知:DS:2000H,SI:0030HCX1234CX10 3AMOV指令时将内容传送到指令时将内容传送到CX,而,而LEA将偏移地址传送到将偏移地址传送到CX。第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令(三)目标地址传送指令(三)目标地址传送指令1

22、.LEA 偏移地址传送指令偏移地址传送指令2.LDS DS段指针装入指令段指针装入指令LDSLDS:LDS REGLDS REG,MEMMEM 功能:将MEM所对应的双字存储单元数据的高字送入DS,低字送入指令指定的寄存器。MEM为双字数据为双字数据。LDS BX,DI指令执行如图所示:数据段数据段4000H:0000H0100HDIXXXXHBXXXXXHDS4000H:0100H55H66H33H44H双字双字6655HBX4433HDS3.LES3.LES的原理与的原理与LDSLDS相似相似第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令

23、(一)通用传送指令(一)通用传送指令(二)输入输出指令(二)输入输出指令(三)目标地址传送指令(三)目标地址传送指令(四)标志传送指令(四)标志传送指令1.LAHF 将标志位装入将标志位装入AH指令指令指令格式指令格式 LAHF 功能:将标志寄存器的低功能:将标志寄存器的低8位送入位送入AH寄存器。寄存器。CFPFAFZFSFTFIFDFOF15118740AH第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令(四)标志传送指令(四)标志传送指令2.SAHF 将将AH存入标志位指令存入标志位指令指令格式指令格式 SAHF 功能:将功能:将AH寄存

24、器送入标志寄存器的低寄存器送入标志寄存器的低8位。位。CFPFAFZFSFTFIFDFOF15118740AH1.LAHF 将标志位装入将标志位装入AH指令指令第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令(四)标志传送指令(四)标志传送指令2.SAHF1.LAHF3.PUSHF 标志位入栈指令标志位入栈指令指令格式指令格式 PUSHF 操作操作(SP)(SP)-2;(SP)+1:(SP)flags4.POPF 标志位出栈指令标志位出栈指令指令格式指令格式 POPF 操作操作flags(SP)+1:(SP)(SP)(SP)+2;将标志寄存器内

25、容压入栈顶将标志寄存器内容压入栈顶将栈顶内容送标志寄存器将栈顶内容送标志寄存器第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令(一)通用传送指令(一)通用传送指令1.MOV(Movement)一般传送指令一般传送指令2.PUSH 入栈指令入栈指令3.POP 出栈指令出栈指令4.XCHG(Exchange)交换指令交换指令5.XLAT(Translate)字节字节查表指令查表指令(二)输入输出指令(二)输入输出指令1.IN I/O口输入指令口输入指令2.OUT I/O口输出指令口输出指令(三)目标地址传送指令(三)目标地址传送指令1.LEA 2.

26、LDS 3.LES(四)标志传送指令(四)标志传送指令1.LAHF 2.SAHF 3.PUSHF 4.POPF 第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令二、算术运算指令二、算术运算指令加法运算指令加法运算指令减法运算指令减法运算指令乘法运算指令乘法运算指令除法运算指令除法运算指令转换指令转换指令(一)加法运算指令(一)加法运算指令ADD、ADC、INC、AAA、DAA1.ADD 不带进位加法指令不带进位加法指令指令格式指令格式ADD d,s;d d+s寄存器寄存器 存储器存储器寄存器寄存器 存储器存储器 立即数立即数第二节第二节 808

27、6/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(一)加法运算指令(一)加法运算指令1.ADD 不带进位加法指令不带进位加法指令例:例:ADD CL,10 ADD DX,DI ADD AX,MEM ADD DATABX,AL ADD ALPHADI,30HMOV AL,7EH MOV BL,5BH ADD AL,BLAL=?CFPFAFZFSFTFIFDFOF15118740注注:结果影响:结果影响状态标志位状态标志位CF=0 PF=AF=ZF=SF=OF=D9H01011溢出标志位溢出标志位符号标志位:最高位为符号标志位:最高位为1零标志位:结果为零标志位:结果

28、为0时,为时,为1辅助进位辅助进位:低:低8位向高位向高8位进位位进位奇偶标志位:奇偶标志位:1的个数偶的个数偶数,数,1进位标志位进位标志位:最高位进位或最高位进位或借位借位第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(一)加法运算指令(一)加法运算指令1.ADD 不带进位加法指令不带进位加法指令2.ADC 带进位加法指令带进位加法指令指令格式指令格式ADC d,s;d d+s+CF寄存器寄存器 存储器存储器寄存器寄存器 存储器存储器 立即数立即数实现目的操作数加源操作数,再加上进位标志位CF的内容,结果存放于目的操作数中 第二节第二节

29、8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(一)加法运算指令(一)加法运算指令2.ADC 带进位加法指令带进位加法指令CFPFAFZFSFTFIFDFOF15118740注注:结果影响:结果影响状态标志位状态标志位已知:已知:CS=1000H,DS=2000H,SS=3000H,ES=4000H。BX=1200H,状态标志位均为状态标志位均为1 执行执行程序程序 ADCBX+106BH,5678H 求求 :存储器物理地址:存储器物理地址 运算后结果运算后结果 标志位内容标志位内容2226BH2226BH89BDH(3344+5678+1)CF=?PF=

30、?AF=?ZF=?SF=?OF=?000011BX对应对应DS段寄存段寄存器器第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(一)加法运算指令(一)加法运算指令1.ADD3.INC 加加1指令指令2.ADC指令格式指令格式INC d;d d+1注注:结果影响:结果影响除除CF外状态标志位外状态标志位寄存器寄存器 存储器存储器该指令实现了操作数在自身基础上加1 第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(一)加法运算指令(一)加法运算指令1.ADD3.INC 加加1指令指令2.ADC4.A

31、AA 加法的加法的ASCII码、非压缩码、非压缩BCD码码调整指令调整指令指令格式指令格式 AAA 操作:操作:如果如果AL的低的低4位大于位大于9或(或(AF)=1,则:,则:(AL)=(AL)+6(AH)=(AH)+1(AF)=(CF)=1 且且AL高高4位清零。位清零。否则:(否则:(CF)=(AF)=0 AL高高4位清零。位清零。注注:结果只影响标志位:结果只影响标志位CF、AF。第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(一)加法运算指令(一)加法运算指令4.AAA 加法的加法的ASCII码、非压缩码、非压缩BCD码码调整指令调

32、整指令(1)非压缩非压缩BCD码码调整调整非压缩非压缩BCD码码:一个字节存放一位十进制数,即低四位:一个字节存放一位十进制数,即低四位0000-1001表表示示0-9,高四位总为,高四位总为0。MOV AL,07H MOV BL,08H MOV AH,00H ADD AL,BL AAA;AL、BL各存放各存放1个非压缩个非压缩BCD码码;(AL)=05H,(AH)=01H,(CF)=(AF)=1;(AL)=0FH,(CF)=(AF)=0CF进位标志位(最高位发生进位),进位标志位(最高位发生进位),AF辅助进位位(低八位向高八位进位)。辅助进位位(低八位向高八位进位)。个位存放在个位存放在A

33、L,十位存放在十位存放在AH.该汇编指令后面不写操作数,但实际上隐含累加器操作数该汇编指令后面不写操作数,但实际上隐含累加器操作数AL和和AH.第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(一)加法运算指令(一)加法运算指令4.AAA 加法的加法的ASCII码、非压缩码、非压缩BCD码码调整调整(1)非压缩非压缩BCD码码调整调整(2)ASCII码码调整调整012345678930H31H32H33H34H35H36H37H38H39H计算计算 4609+3875=?Datasegmentstring1 db 9064 string2 db

34、 5783 sum dd 1 dup(?)Dataends第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(一)加法运算指令(一)加法运算指令1.ADD3.INC2.ADC4.AAA5.DAA 十进制十进制、压缩压缩BCD码码调整指令调整指令指令格式指令格式 DAA 如果如果AL寄存器中低寄存器中低4位位=10或(或(AF)=1,则(则(AL)=(AL)+6 且(且(AF)=1;如果(如果(AL)=0A0H 或(或(CF)=1,(高,(高4位位=10)则(则(AL)=(AL)+60H 且(且(CF)=1。操作:操作:注注:结果影响:结果影响状态

35、标志位状态标志位AF、CF、SF、ZF、PF、OF该指令同样不带操作数,实际上隐含寄存器操作数该指令同样不带操作数,实际上隐含寄存器操作数AL.压缩压缩BCD码指一个字节可以存放两位码指一个字节可以存放两位BCD码,高码,高4位和低位和低4位各存放位各存放一位,这样两个一位,这样两个BCD码相加后可能得到不正确的码相加后可能得到不正确的BCD码。码。辅助进位位:辅助进位位:第第4位对高位对高4位位进位标志位:进位标志位:最高位最高位压缩压缩BCD码码:一个字节存放两位:一个字节存放两位BCD码,即低四位存放码,即低四位存放1位位 BCD码,高四位存放码,高四位存放1位。位。第二节第二节 808

36、6/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(一)加法运算指令(一)加法运算指令5.DAA十进制十进制、压缩压缩BCD码码调整指令调整指令MOV AL,07H MOV BL,08H MOV AH,00H ADD AL,BL DAA;AL、BL各存放各存放1个个BCD码码;(AL)=15H,(AH)=00H,(AF)=1,(CF)=0;(AL)=0FH,(CF)=(AF)=01.ADD3.INC2.ADC4.AAA第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(一)加法运算指令(一)加法运算指令(二)减法运算指

37、令(二)减法运算指令SUB、SBB、DEC、NEG、CMP、AAS、DAS1.SUB 不带借位减法指令不带借位减法指令指令格式指令格式SUB d,s;d d-s寄存器寄存器 存储器存储器寄存器寄存器 存储器存储器 立即数立即数例:例:SUB AL,37H SUB BX,DX SUB CX,VAR1 SUB ARRAYSI,AX SUB BETABXDI,512第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(二)减法运算指令(二)减法运算指令1.SUB 不带借位减法指令不带借位减法指令2.SBB 带借位减法指令带借位减法指令指令格式指令格式SB

38、B d,s;d d-s-CF寄存器寄存器 存储器存储器寄存器寄存器 存储器存储器 立即数立即数例:例:SBB BX,1000 SBB CX,DX SBB AL,DATASI SBB DISPBP,BL SBB SI+6,96第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(二)减法运算指令(二)减法运算指令2.SBB 带借位减法指令带借位减法指令CFPFAFZFSFTFIFDFOF15118740注注:结果影响:结果影响状态标志位状态标志位已知:已知:CS=1000H,DS=2000H,SS=3000H,ES=4000H。BP=4567H,BX

39、=0FEDCH,状态标志位均为状态标志位均为1 执行程序执行程序 SBB BP+2011H,BX 求求 :存储器物理地址:存储器物理地址 运算后结果运算后结果 标志位内容标志位内容36578H36578H3467HCF=?PF=?AF=?ZF=?SF=?OF=?111000BP对应对应SS段寄段寄存器存器结果中结果中1的的个数为偶数个数为偶数3.DEC 减减1指令指令指令格式指令格式DEC d;d d-1注注:结果影响:结果影响除除CF外状态标志位外状态标志位例:例:DEC BL DEC CX DEC BYTE PTRBX DEC WORD PTRBPDI寄存器寄存器 存储器存储器第二节第二节

40、 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(二)减法运算指令(二)减法运算指令1.SUB2.SBB3.DEC 减减1指令指令第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(二)减法运算指令(二)减法运算指令1.SUB2.SBB4.NEG 求补指令求补指令指令格式指令格式NEG d;d 0-d寄存器寄存器 存储器存储器例:例:NEG BL NEG AX NEG BYTE PTRBPSI NEG WORD PTRDI+203.DEC 减减1指令指令第二节第二节 8086/80888086/8088指令系

41、统指令系统二、算术运算指令二、算术运算指令(二)减法运算指令(二)减法运算指令1.SUB2.SBB4.NEG 求补指令求补指令注注:结果影响所有状态标志位:结果影响所有状态标志位作用作用:求负数绝对值:求负数绝对值NEG AL ;AL=FFH(为(为-1的补码)的补码)AL=0-FFH=01H3.DEC 减减1指令指令第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(二)减法运算指令(二)减法运算指令1.SUB2.SBB4.NEG 求补指令求补指令5.CMP 比较指令比较指令指令格式指令格式CMP d,s;d-s寄存器寄存器 存储器存储器寄存器

42、寄存器 存储器存储器 立即数立即数注注:只做减法,:只做减法,不存结果不存结果,影响状态标志位,与减法指令,影响状态标志位,与减法指令SUB不同。不同。例:例:CMP AL,0AH CMP CX,DI CMP AX,AREA1CMP BX+5,SI CMP GAMMA,1003.DEC第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(二)减法运算指令(二)减法运算指令1.SUB2.SBB5.CMP6.AAS 减法的减法的ASCII码、非压缩码、非压缩BCD码码调整指令调整指令4.NEG指令格式指令格式 AAS 操作:操作:如果如果AL的低的低4

43、位大于位大于9或(或(AF)=1,则:,则:(AL)=(AL)-6(AH)=(AH)-1(AF)=(CF)=1 且且AL高高4位清零。位清零。否则:(否则:(CF)=(AF)=0 AL高高4位清零。位清零。注注:结果只影响标志位:结果只影响标志位CF、AF。MOV AX,0103H MOV BL,04H SUB AL,BL AAS3.DEC第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(二)减法运算指令(二)减法运算指令1.SUB2.SBB5.CMP6.AAS 减法的减法的ASCII码、非压缩码、非压缩BCD码码调整指令调整指令4.NEG例:

44、例:13-4=9;(AX)=01FFH,(CF)=(AF)=1;(AX)=0009H,(CF)=(AF)=1(AL)=(AL)-6(AH)=(AH)-1(AF)=(CF)=1 且且AL高高4位清零。位清零。3.DEC第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(二)减法运算指令(二)减法运算指令1.SUB2.SBB5.CMP6.AAS 减法的减法的ASCII码、非压缩码、非压缩BCD码码调整指令调整指令4.NEG7.DAS 减法的减法的十进制、压缩十进制、压缩BCD码码调整指令调整指令指令格式指令格式 DAS 如果如果AL寄存器中低寄存器中

45、低4位大于位大于9或(或(AF)=1,则(则(AL)=(AL)-6 且(且(AF)=1;(低;(低4位减位减6)如果(如果(AL)=0A0H 或(或(CF)=1,则(则(AL)=(AL)-60H 且(且(CF)=1。(高(高4位减位减6)操作:操作:注注:结果影响:结果影响状态标志位状态标志位AF、CF、SF、ZF、PF、OF。3.DEC第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(二)减法运算指令(二)减法运算指令1.SUB2.SBB5.CMP6.AAS 减法的减法的ASCII码、非压缩码、非压缩BCD码码调整指令调整指令4.NEG7.D

46、AS 减法的减法的十进制、压缩十进制、压缩BCD码码调整指令调整指令例:例:83-38=45MOV AL,83H MOV BL,38H SUB AL,BL DAS;(AL)=4BH,(AF)=1(CF)=0;(AL)=45H,(AF)=1(CF)=0低低4位位大于大于9第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(一)加法运算指令(一)加法运算指令(二)减法运算指令(二)减法运算指令ADD、ADC、INC、AAA、DAASUB、SBB、DEC、NEG、CMP、AAS、DAS51第二节第二节 8086/80888086/8088指令系统指令系

47、统二、算术运算指令二、算术运算指令(一)加法运算指令(一)加法运算指令(二)减法运算指令(二)减法运算指令(三)乘法运算指令(三)乘法运算指令MUL、IMUL、AAM1.MUL 无符号数无符号数乘法指令乘法指令指令格式指令格式MUL s 操作操作字节乘法字节乘法 (AX)(AL)*s(两个(两个8位相乘,结果位相乘,结果 可能是可能是16位,储存在位,储存在AX中)中)字乘法字乘法 (DX,AX)(AX)*s(两个(两个16位相乘,位相乘,结果可能是结果可能是32位,结果高位,结果高16位存位存DX,低低16位存位存AX中)中)注注:运算结果高位(:运算结果高位(AH、DX)为)为0,则,则O

48、F=CF=0,否则否则OF=CF=1(OF,溢出,超出溢出,超出8或或16的表示范围的表示范围),标志位标志位SF、ZF、AF、PF不确定。不确定。第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(三)乘法运算指令(三)乘法运算指令1.MUL 无符号数无符号数乘法指令乘法指令指令格式指令格式MUL s 寄存器寄存器 存储器存储器例:例:MUL AL (AL*AL)MUL BX (AX*BX)MUL BYTE PTRDI+6(AL*存储器存储器8位位)MUL WORD PTR ALPHA(AX*存储器存储器16位位)MOV AL,14H MOV

49、CL,05H MUL CL;14H*05H=20*5=100=64H;(AX)=0064H,(CF)=(OF)=0 编程演示编程演示第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(三)乘法运算指令(三)乘法运算指令1.MUL 无符号数无符号数乘法指令乘法指令2.IMUL 有符号数有符号数乘法指令乘法指令指令格式指令格式IMUL s 操作操作字节乘法字节乘法 (AX)(AL)*s 字乘法字乘法 (DX,AX)(AX)*s注注:运算结果高位(:运算结果高位(AH、DX)为有效数字而非符号扩展,)为有效数字而非符号扩展,则则OF=CF=1,否则,否

50、则OF=CF=0。标志位标志位SF、ZF、AF、PF不确定不确定。S组成组成寄存器寄存器 存储器存储器例:例:IMUL DL IMUL CX IMUL BYTE PTR GAMMA IMUL WORD PTR SI+BP第二节第二节 8086/80888086/8088指令系统指令系统二、算术运算指令二、算术运算指令(三)乘法运算指令(三)乘法运算指令1.MUL 无符号数无符号数乘法指令乘法指令2.IMUL 有符号数有符号数乘法指令乘法指令(编程演示编程演示)MOV AX,04E8H MOV BX,4E20H IMUL BX;04E8H*4E20H=(+1256)*(+20000)=25120

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(微型机指令系统课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|