微型机指令系统.ppt
《微型机指令系统.ppt》由会员分享,可在线阅读,更多相关《微型机指令系统.ppt(123页珍藏版)》请在三一办公上搜索。
1、8086/8088的的存储器管理,段基址寄存器与偏移地址寄存器的隐含对应关系,1.取指操作 CSIP,2.数据存取 DSBX、DI、SI、direct(存储器直接地址),3.串操作 DSSI ESDI,4.堆栈操作 SSSP,5.BP的间接寻址 SSBP,第二章微型机指令系统,第一节 寻址方式,寻址方式,:寻找操作数所在地址的方式。(共七种),一、立即寻址,MOV CL,05,MOV AX,1000H,立即数,操作码,操作数,立即寻址中的操作数作为指令的一部分存放在代码段中,在取指阶段数据随指令一起被取到CPU,这种数据在指令格式中的直接表现为常数。立即寻址方式主要用于给寄存器或存储器赋初值。
2、,第二章微型机指令系统,第一节 寻址方式,一、立即寻址,二、寄存器寻址,MOV SS,AX(累加器的内容传送给堆栈段寄存器),MOV AX,BX(将基址寄存器的内容传送给累加器),指定某些CPU寄存器存放操作数,由于操作数在CPU寄存器中,指令执行过程中不必通过访问内存而取得操作数,因此执行速度很快,第二章微型机指令系统,第一节 寻址方式,一、立即寻址,二、寄存器寻址,三、直接寻址(存储器寻址),MOV AX,1000H,直接寻址隐含段为数据段DS,但允许段超越。MOV AX,ES:1000H MOV AX,SS:1000H MOV AX,CS:1000H,12 34,直接寻址指令在指令的操作
3、码后面直接给出操作数的偏移地址,它与操作码一起存放在存储器的代码段,高地址对应高8位,低地址对应低8位,但是操作数本身一般存放在内存的数据段。默认段地址为DS。,段地址*10+偏移地址,第二章微型机指令系统,第一节 寻址方式,一、立即寻址,二、寄存器寻址,三、直接寻址(存储器寻址),四、寄存器间接寻址(存储器寻址),MOV AX,BX,直接寻址指令在指令的操作码后面没有直接给出操作数的偏移地址,而是寄存器(DI、SI、BX、BP)存放操作数16位偏移地址。,存储器操作数的寻址方式中,数据都存放于存储单元中,指令操作过程中需要BIU通过一个总线周期的访问,才能获取操作数。,第二章微型机指令系统,
4、第一节 寻址方式,一、立即寻址,二、寄存器寻址,三、直接寻址,四、寄存器间接寻址,五、变址寻址,变址寄存器(SI、DI)的内容加上指令中给出的位移量,得到操作数的有效地址。,MOV BX,SI+1003H,变址寻址指令的几种不同形式 MOVAL,TABLESI MOV AL,SI+TABLE MOV AL,SI+TABLE,变址寻址举例,MOV AX,BX+SI 操作如图所示,数据段,3000H:0000H,3000H:3000H,34H,12H,+,+,3 0 0 0 0(段基址)+3 0 0 0(偏移地址),第二章微型机指令系统,第一节 寻址方式,一、立即寻址,二、寄存器寻址,三、直接寻址
5、,四、寄存器间接寻址,五、变址寻址,六、基址寻址,基址寻址和变址寻址类似,不同之处在于指令使用基址寄存器(BX、BP)的内容加上指令中给出的位移量,而不是变址寄存器(SI、DI)。,第二章微型机指令系统,第一节 寻址方式,一、立即寻址,二、寄存器寻址,三、直接寻址,四、寄存器间接寻址,五、变址寻址,六、基址寻址,七、基址-变址寻址,基址寄存器(BX、BP)的内容、变址寄存器(SI、DI)的内容和指令中给出的位移量三者相加,得到操作数的有效地址。,MOV AX,COUNTBXSI,MOV AX,BX+COUNTSI MOV AX,BX+SI+COUNT MOV AX,BXCOUNTSI MOV
6、AX,BX+SICOUNT MOV AX,COUNTSIBX,第二章微型机指令系统,第一节 寻址方式,一、立即寻址,二、寄存器寻址,三、直接寻址,四、寄存器间接寻址,五、变址寻址,六、基址寻址,七、基址-变址寻址,MOV AX,CountBXSI,BX:1000HSI:0B00H Count:0500H,基址-变址寻址方式是前面两种寻址方式的结合指令中规定一个基址寄存器(BP、BX)和一个变址寄存器(SI、DI),同时给出一个8位或者16位的位移量,将三者的内容相加就得到了操作数的偏移地址(有效地址、逻辑地址、EA)。,第二章微型机指令系统,第一节 寻址方式,第二节 8086/8088指令系统
7、,数据传送指令算术运算指令逻辑运算和移位指令串操作指令控制转移指令处理器控制指令,8086总共有90多种基本指令,按照功能,可分为六大类:,第二节 8086/8088指令系统,一、数据传送指令,通用数据传送指令,输入、输出指令,目标地址传送指令,标志传送指令,传送指令是将数据送寄存器或者存储单元中;在寄存器之间、寄存器与存储器之间进行数据传送。按照其功能不同,可分为:,第二节 8086/8088指令系统,一、数据传送指令,(一)通用传送指令,寄存器 存储器 段寄存器(代码段寄存 器cs除外),寄存器 存储器 段寄存器 立即数,注:不能用MOV指令直接完成以下传递,存储单元之间的传递,立即数至段
8、寄存器的传递,段寄存器之间的传递,若想实现上述传输,必须使用两条MOV指令来实现:,DEST:目标操作数;SRC:源操作数,1.MOV(Movement)一般传送指令,将源操作数送入指定目的操作数,举例存储单元之间的传送(MEM1 MEM2):MOV AX,MEM1;先将MEM1传送至通用寄存器MOV MEM2,AX;先将通用寄存器传送至MEM2段寄存器之间的传递(DS ES):MOV AX,DS;段寄存器传送至通用寄存器MOV ES,AX;从通用寄存器传送到段寄存器同样可以实现立即数至段寄存器的传输,间接传递举例:,第二节 8086/8088指令系统,一、数据传送指令,(一)通用传送指令,1
9、.MOV(Movement)一般传送指令,2.PUSH 入栈指令,例:PUSH AX,已知:AX=9ABCH;SS=3400H;SP=0562H;,功能:将堆栈指针上移两个字节后将源操作数压入堆栈,SS*10+SP,冒号前后表示两个地址连续的储存单元,第二节 8086/8088指令系统,一、数据传送指令,(一)通用传送指令,1.MOV(Movement)一般传送指令,2.PUSH 入栈指令,3.POP 出栈指令(LIFO),例:POP AX,已知:AX=9ABCH;SS=3400H;SP=0560H;,AL,AH,将栈顶内容弹到目的操作数中,然后堆栈的栈顶指针下移两个字节,第二节 8086/8
10、088指令系统,一、数据传送指令,(一)通用传送指令,1.MOV(Movement)一般传送指令,2.PUSH 入栈指令,3.POP 出栈指令,XCHG(Exchange)交换指令,例:,功能:将源操作数、目的操作数内容互换,MOV AX,BX操作如图所示,两个操作数不能同为存储器操作数。段寄存器的内容不能参加交换。,注,第二节 8086/8088指令系统,一、数据传送指令,(一)通用传送指令,5.XLAT(Translate)字节查表指令,查表方式,功能:ALDS:BX+AL。把BX的内容作为数据段中数据表的首地址,AL内容为查表的项数,将其对应的字节单元的值再送给AL,3000H:0000
11、H,3000H:2000H,3000H:2005H,数据段,+,表首址,查表项,+,34H,34H,第二节 8086/8088指令系统,一、数据传送指令,(一)通用传送指令,第二节 8086/8088指令系统,一、数据传送指令,(一)通用传送指令,(二)输入输出指令,1.IN I/O口输入指令,输入指令IN用于从I/O端口接收数据,输入指令从I/O端口port中输入一个字节到累加器。,第二节 8086/8088指令系统,一、数据传送指令,(二)输入输出指令,1.IN I/O口输入指令,OUT或者IN指令,无论接收到的数据或者准备发送的数据都必须在累加器中AX(字)或AL(字节)中,所以这两条指
12、令时累加器专用指令。,2.OUT I/O口输出指令,输出指令OUT用于从I/O端口输出数据,输出指令从累加器输出一个字节到I/O端口port。,第二节 8086/8088指令系统,一、数据传送指令,(一)通用传送指令,(二)输入输出指令,(三)目标地址传送指令,1.LEA 偏移地址传送指令,例:,LEA AX,BPDI LEA BX,BUFFER LEA DX,BETABXSI LEA CX,SI+100AH,MOV BX,OFFSET BUFFER,功能:将源操作数的有效地址送指定寄存器,第二节 8086/8088指令系统,一、数据传送指令,(三)目标地址传送指令,1.LEA 偏移地址传送指
13、令,LEA、MOV的区别,已知:DS:2000H,SI:0030H,12,34,10 3A,MOV指令时将内容传送到CX,而LEA将偏移地址传送到CX。,第二节 8086/8088指令系统,一、数据传送指令,(三)目标地址传送指令,1.LEA 偏移地址传送指令,2.LDS DS段指针装入指令,LDS:LDS REG,MEM,功能:将MEM所对应的双字存储单元数据的高字送入DS,低字送入指令指定的寄存器。MEM为双字数据。,LDS BX,DI指令执行如图所示:,数据段,4000H:0000H,4000H:0100H,双字,3.LES的原理与LDS相似,第二节 8086/8088指令系统,一、数据
14、传送指令,(一)通用传送指令,(二)输入输出指令,(三)目标地址传送指令,(四)标志传送指令,1.LAHF 将标志位装入AH指令,功能:将标志寄存器的低8位送入AH寄存器。,第二节 8086/8088指令系统,一、数据传送指令,(四)标志传送指令,2.SAHF 将AH存入标志位指令,功能:将AH寄存器送入标志寄存器的低8位。,1.LAHF 将标志位装入AH指令,第二节 8086/8088指令系统,一、数据传送指令,(四)标志传送指令,2.SAHF,1.LAHF,3.PUSHF 标志位入栈指令,4.POPF 标志位出栈指令,将标志寄存器内容压入栈顶,将栈顶内容送标志寄存器,第二节 8086/80
15、88指令系统,一、数据传送指令,(一)通用传送指令,1.MOV(Movement)一般传送指令,2.PUSH 入栈指令,3.POP 出栈指令,XCHG(Exchange)交换指令,5.XLAT(Translate)字节查表指令,第二节 8086/8088指令系统,一、数据传送指令,二、算术运算指令,加法运算指令,减法运算指令,乘法运算指令,除法运算指令,转换指令,(一)加法运算指令,ADD、ADC、INC、AAA、DAA,1.ADD 不带进位加法指令,寄存器 存储器,寄存器 存储器 立即数,第二节 8086/8088指令系统,二、算术运算指令,(一)加法运算指令,1.ADD 不带进位加法指令,
16、例:,ADD CL,10 ADD DX,DI ADD AX,MEM ADD DATABX,AL ADD ALPHADI,30H,MOV AL,7EH MOV BL,5BH ADD AL,BL,AL=?,注:结果影响状态标志位,CF=0 PF=AF=ZF=SF=OF=,D9H,0,1,0,1,1,溢出标志位,符号标志位:最高位为1,零标志位:结果为0时,为1,辅助进位:低8位向高8位进位,奇偶标志位:1的个数偶数,1,进位标志位:最高位进位或借位,第二节 8086/8088指令系统,二、算术运算指令,(一)加法运算指令,1.ADD 不带进位加法指令,2.ADC 带进位加法指令,寄存器 存储器,寄
17、存器 存储器 立即数,实现目的操作数加源操作数,再加上进位标志位CF的内容,结果存放于目的操作数中,第二节 8086/8088指令系统,二、算术运算指令,(一)加法运算指令,2.ADC 带进位加法指令,注:结果影响状态标志位,已知:CS=1000H,DS=2000H,SS=3000H,ES=4000H。BX=1200H,状态标志位均为1 执行程序 ADCBX+106BH,5678H,求:存储器物理地址 运算后结果 标志位内容,2226BH,2226BH,89BDH(3344+5678+1),CF=?PF=?AF=?ZF=?SF=?OF=?,0,0,0,0,1,1,BX对应DS段寄存器,第二节
18、8086/8088指令系统,二、算术运算指令,(一)加法运算指令,1.ADD,3.INC 加1指令,2.ADC,注:结果影响除CF外状态标志位,寄存器 存储器,该指令实现了操作数在自身基础上加1,第二节 8086/8088指令系统,二、算术运算指令,(一)加法运算指令,1.ADD,3.INC 加1指令,2.ADC,4.AAA 加法的ASCII码、非压缩BCD码调整指令,注:结果只影响标志位CF、AF。,第二节 8086/8088指令系统,二、算术运算指令,(一)加法运算指令,4.AAA 加法的ASCII码、非压缩BCD码调整指令,(1)非压缩BCD码调整,非压缩BCD码:一个字节存放一位十进制
19、数,即低四位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)=0,CF进位标志位(最高位发生进位),AF辅助进位位(低八位向高八位进位)。,个位存放在AL,十位存放在AH.,该汇编指令后面不写操作数,但实际上隐含累加器操作数AL和AH.,第二节 8086/8088指令系统,二、算术运算指令,(一)加法运算指令,4.AAA 加法的ASCII码、非压缩BCD码调整,(1)
20、非压缩BCD码调整,(2)ASCII码调整,计算 4609+3875=?,Datasegmentstring1 db 9064 string2 db 5783 sum dd 1 dup(?)Dataends,第二节 8086/8088指令系统,二、算术运算指令,(一)加法运算指令,1.ADD,3.INC,2.ADC,4.AAA,5.DAA 十进制、压缩BCD码调整指令,注:结果影响状态标志位AF、CF、SF、ZF、PF、OF,该指令同样不带操作数,实际上隐含寄存器操作数AL.压缩BCD码指一个字节可以存放两位BCD码,高4位和低4位各存放一位,这样两个BCD码相加后可能得到不正确的BCD码。,
21、辅助进位位:第4位对高4位,进位标志位:最高位,压缩BCD码:一个字节存放两位BCD码,即低四位存放1位 BCD码,高四位存放1位。,第二节 8086/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)=0,1.ADD,3.INC,2.ADC,4.AAA,第二节 8086/8088指令系统,二、算术运算指令,(一)加法运算
22、指令,(二)减法运算指令,SUB、SBB、DEC、NEG、CMP、AAS、DAS,1.SUB 不带借位减法指令,寄存器 存储器,寄存器 存储器 立即数,例:,SUB AL,37H SUB BX,DX SUB CX,VAR1 SUB ARRAYSI,AX SUB BETABXDI,512,第二节 8086/8088指令系统,二、算术运算指令,(二)减法运算指令,1.SUB 不带借位减法指令,2.SBB 带借位减法指令,寄存器 存储器,寄存器 存储器 立即数,例:,SBB BX,1000 SBB CX,DX SBB AL,DATASI SBB DISPBP,BL SBB SI+6,96,第二节 8
23、086/8088指令系统,二、算术运算指令,(二)减法运算指令,2.SBB 带借位减法指令,注:结果影响状态标志位,已知:CS=1000H,DS=2000H,SS=3000H,ES=4000H。BP=4567H,BX=0FEDCH,状态标志位均为1 执行程序 SBB BP+2011H,BX,求:存储器物理地址 运算后结果 标志位内容,36578H,36578H,3467H,CF=?PF=?AF=?ZF=?SF=?OF=?,1,1,1,0,0,0,BP对应SS段寄存器,结果中1的个数为偶数,3.DEC 减1指令,注:结果影响除CF外状态标志位,例:,DEC BL DEC CX DEC BYTE
24、PTRBX DEC WORD PTRBPDI,寄存器 存储器,第二节 8086/8088指令系统,二、算术运算指令,(二)减法运算指令,1.SUB,2.SBB,3.DEC 减1指令,第二节 8086/8088指令系统,二、算术运算指令,(二)减法运算指令,1.SUB,2.SBB,4.NEG 求补指令,寄存器 存储器,例:,NEG BL NEG AX NEG BYTE PTRBPSI NEG WORD PTRDI+20,3.DEC 减1指令,第二节 8086/8088指令系统,二、算术运算指令,(二)减法运算指令,1.SUB,2.SBB,4.NEG 求补指令,注:结果影响所有状态标志位,作用:求
25、负数绝对值,NEG AL;AL=FFH(为-1的补码),AL=0-FFH=01H,3.DEC 减1指令,第二节 8086/8088指令系统,二、算术运算指令,(二)减法运算指令,1.SUB,2.SBB,4.NEG 求补指令,5.CMP 比较指令,;d-s,寄存器 存储器,寄存器 存储器 立即数,注:只做减法,不存结果,影响状态标志位,与减法指令SUB不同。,例:,CMP AL,0AH CMP CX,DI CMP AX,AREA1,CMP BX+5,SI CMP GAMMA,100,3.DEC,第二节 8086/8088指令系统,二、算术运算指令,(二)减法运算指令,1.SUB,2.SBB,5.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型机 指令系统

链接地址:https://www.31ppt.com/p-5349622.html