




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微型计算机课件第三节第三节 80X86指令系统指令系统一、数据传送指令一、数据传送指令 1、通用数据传送指令(、通用数据传送指令(MOV、PUSH、POP、HCXG等)。等)。 (1)最基本的传送指令: MOV DEST,SRC ;(SRC) (DEST) 寄存器之间传送(除寄存器之间传送(除CS 和和 IP) MOV AL ,BL MOV DL,CH MOV DX,BX MOV AX,ES MOV DS,AX8位数据传送16位数据传送通用REG 通用REG段REG 通用REG微型计算机课件MOV CL ,4MOV AX ,03FFHMOV WORD PTR 100H ,5678HMOV ME
2、M ,5 ;MEM是以定义的变量(符号地址)是以定义的变量(符号地址) 注意的问题:注意的问题:1、不能在两个存储单元之间传送。MOV 1000H ,2000H2、立即数不能送段寄存器。 MOV DS ,300H 3、段寄存器之间不能传送。 MOV DS ,ES4、CS不能做目的但可做源操作数。MOV CS ,AXMOV AX ,CS 立即数送通用立即数送通用REG或存储器或存储器存储器与通用寄存器存储器与段寄存器 寄存器(除寄存器(除CS、IP)与存储器之间传送)与存储器之间传送MOV AX ,SIMOV DI ,CXMOV 1000H ,ALMOV DS,DATASI+BXMOV DEST
3、BP+DI ,ES微型计算机课件5、操作数类型要匹配,字对字,字节对字节传送 MOV AX ,BL6、MOV指令不影响标志寄存器的值。 200BUFFER1BUFFER2. MOV SI ,OFFSET BUFFER1 MOV DI ,OFFEST BUFFER2 MOV CX,200NEXT: MOV AL ,SI MOV DI ,AL INC SI INC DI DEC CX JNZ NEXT HLTBUFFER1、BUFFER2是符号地址(变量)先定义后使用。在这是字是符号地址(变量)先定义后使用。在这是字节传送定义字节变量节传送定义字节变量例题:将例题:将buffer1开始的开始的20
4、0个字节的数据移动到由个字节的数据移动到由buffer2指示的位置。指示的位置。微型计算机课件扩展传送指令扩展传送指令格式:格式: MOV SX DEST, SRC MOV ZX DEST, SRC功能:将源操作数由功能:将源操作数由8位扩展到位扩展到16位,送目的操作数;或将源操位,送目的操作数;或将源操作数由作数由16位扩展到位扩展到32位,送目的操作数。其中位,送目的操作数。其中SX表示带符号扩展,表示带符号扩展, ZX表示无符号扩展。表示无符号扩展。见见p76 例题例题3.15和和 例题例题3.16微型计算机课件2、堆栈指令、堆栈指令PUSH SRC (源操作数可(源操作数可REG、M
5、、立即数,目的隐含、立即数,目的隐含SP) PUSH AX ;通用REG PUSH DS ;段REG PUSH 1000H ;直接寻址,字单元。 PUSH DATA ;直接寻侄(字变量) PUSH EBX PUSH DWORD PTR DI PUSHW 0A123H ; 立即数入栈(16位) PUSHD 20H ; 立即数入栈(立即数入栈(32位)位)PUSHA ;将将16位通用寄存器圧入堆栈位通用寄存器圧入堆栈PUSHAD ;将将32位通用寄存器圧入堆栈位通用寄存器圧入堆栈POP DEST (目的可(目的可REG、M,源隐含,源隐含SP) 关系与入栈对应注意:目的操作数不允许位注意:目的操作
6、数不允许位CS以及立即数。以及立即数。微型计算机课件3、交换指令、交换指令 XCHG、BSWAPXCHG DEST , SRC 通用REG 通用REG ;将源操作数与目的操作数的 M M 内容互换。 没有段REG和立即数,存储器之间不能交换。 XCHG AL,BL XCHG BX,CX XCHG 2530H ;(CX)和2530H,2531H两单元内容交换。BSWAP REG 功能:将功能:将32位位通用寄存器中的第1个字节和第4个字节交换,第2个字节和第3个字节交换。 见见p77 例题例题 3.184、 累加器专用传送指令(查表指令)累加器专用传送指令(查表指令) 1、换码指令、换码指令 X
7、LAT XLAT (无操作数指令,隐含)(无操作数指令,隐含)功能:功能: (BX)+(AL) A L) 源源 目的目的微型计算机课件5、地址传送指令、地址传送指令LEA、LDS、LES 1)、取有效地址指令 LEA LEA DEST , SRC ;EA(M寻址)寻址) 16位通用位通用REG LEA BX ,2728H;将(相对于DS)偏移地址2728H送BX。 LEA DX ,BETABXSI; LEA BX,VAR; 2)、取指示器到DS的指令LDS LDSEST,SRC ;(SRC是 32 位的逻辑地址指针,低字节的地址DEST是 16 位的通用REG)高 16 位 DS(隐含)低 1
8、6 位 DEST的REGSRC (32位, 4字节)3)、取指示器到ES的指令LES微型计算机课件6、标志传送指令、标志传送指令读取标志读取标志 LAHF ; (FR)低)低 8 位位 AH设置标志设置标志 SAHF ; AH (FR)低)低 8 位位标志进栈标志进栈 PUSHF ;(FR 16位)位) (SP)标志出栈标志出栈 POPF ; (SP) (FR 16位)位)标志进栈标志进栈 PUSHFD ;(EFR 32位)位) SP)标志出栈标志出栈 POPFD ; (SP) (EFR 32位)位) 例:例:将标志寄存器的将标志寄存器的 TF 置置 1 。 PUSHF POP AX OR A
9、X ,0100H PUSH AX POPF 微型计算机课件二、输入二、输入/输出指令输出指令输入输入 IN AL/AX ,OPRT 输出输出 OUT OPRT ,AL/AX直接直接IN/OUT指令(口地址只能指令(口地址只能 8 位)位) IN AL ,50H IN AX ,80H OUT 44H , AL OUT 70H , AX间接间接IN/OUT指令(口地址是指令(口地址是16 位,也可位,也可8 位。)位。) MOV DX,0FFF2H IN AL ,DX MOV DX,87FEH MOV AL ,40H OUT DX ,ALCPU外设外设I/OI/OOUT DX ,ALMOV DX
10、,80H微型计算机课件三、算术运算指令三、算术运算指令1、加法指令、加法指令不带进位的加法 ADD DEST,SRC ;DEST+SRC DEST带进位的加法 ADC DEST,SRC ;DEST+SRC+CF DEST加 1 指令 INC DEST ;DEST+1 DEST (不影响不影响CF) SRC: n,通用REG,M三种寻址方式 DEST: 通用REG,M两种寻址方式 ADD CL ,10 ; ADD AL,1000H ; ADD BX + DI,SI ADC AX,BX ; ADC BX + 200H,CL ; ADC SI,2 INC SI ; INC WORT PTR BP +
11、 DI + 500 立即数不能做目的操作数,立即数不能做目的操作数,DEST,SRC不能同为存储不能同为存储器寻址方式,类型要一致,段寄存器不能做操作数。器寻址方式,类型要一致,段寄存器不能做操作数。 微型计算机课件2、减法指令、减法指令不带借位减法不带借位减法 SUB DEST,SRC; DEST - SRC DEST带借位减法带借位减法 SBB DEST,SRC; DEST - SRC - CF DEST减减 1 指令指令 DEC DEST ; DEST - 1 DEST求补指令求补指令 NEG DEST; 0 - DEST DEST比较指令比较指令 CMP DEST,SRC;DEST -
12、 SRC(不回送结果)(不回送结果) SRC与与DEST的要求同加法指令。的要求同加法指令。3、乘法指令(无符号、乘法指令(无符号MUL,带符号,带符号IMUL) MUL(IMUL) SRC;SRC字节:(字节:(AL) SRC AX SRC字:(字:(AX) SRC DX:AXSRC只能是通用只能是通用REG或或M寻址,不能是立即数。寻址,不能是立即数。只能是字节乘字节或字乘字只能是字节乘字节或字乘字存储器寻址时加类型说明,如存储器寻址时加类型说明,如MUL BYTE PTR BX, MUL WORD PTR BX微型计算机课件4、除法指令(无符号、除法指令(无符号DIV,带符号,带符号ID
13、IV)DIV(IDIV) SRC; SRC字节:(字节:(AX) SRC AL(商)(商) AH(余数)(余数) SRC字:字: (DX:AX) SRC AX(商)(商) DX(余数)(余数) SRC不能是立即数不能是立即数 若商超出字或字节表示的范围,自动产生若商超出字或字节表示的范围,自动产生 0 号中断号中断 IDIV规定余数和被除数的符号相同规定余数和被除数的符号相同 只能字除以字节,双字除以字,不满足需扩展。只能字除以字节,双字除以字,不满足需扩展。无符号扩展用无符号扩展用 SUB AH,AH; 字节字节 字字 SUB DX,DX; 字字 双字双字带符号数扩展用带符号数扩展用 CBW
14、 ;字节(;字节(AL) 字(字(AX) CWD ;字(;字(AX) 双字(双字(DX:AX)CWDE ; AX EAXCDQ ; EAX EDX:EAX微型计算机课件5、BCD码运算(十进制调整)指令码运算(十进制调整)指令BCD码的两种形式:压缩和非压缩码的两种形式:压缩和非压缩BCD码。码。压缩压缩BCD码指令:码指令:DAA(加法调整)、(加法调整)、DAS(减法调整)(减法调整)非压缩非压缩BCD码指令:码指令:AAA(加法调整)、(加法调整)、AAS(减法调整)(减法调整) AAM(乘法调整)、(乘法调整)、AAD(除法调整)(除法调整)1、这类指令都是无操作数指令,隐含的源操作数
15、是、这类指令都是无操作数指令,隐含的源操作数是AL(AX),目的是),目的是AL(AX),即对),即对AL的内容调整,调整的结果再放的内容调整,调整的结果再放AL。2、先执行二进制运算指令如、先执行二进制运算指令如ADD、SUB、MUL等(除法除外),并将结等(除法除外),并将结果放果放AL(AX),然后紧接着执行),然后紧接着执行BCD码指令。码指令。例:例:MOV AL,56H MOV AL,09H MOV AL,05 ADD AL,34H SUB AL,04H MOV BL,04 DAA AAS MUL BL AAM微型计算机课件四、逻辑运算和移位指令四、逻辑运算和移位指令1、逻辑运算指
16、令、逻辑运算指令与与 AND DEST,SRC ;两位都是两位都是 1 ,结果为,结果为 1,否则为,否则为 0。用于屏蔽。用于屏蔽。或或 OR DEST,SRC;两位都是两位都是 0 ,结果为,结果为 0 ,否则为,否则为 1 。用于置位。用于置位。异或异或 XOR DEST,SRC;两位相同为;两位相同为 0 ,两位不同为,两位不同为 1 。指定位取反,。指定位取反, 或自身清或自身清 0。求反求反 NOT DEST;按位取反。;按位取反。測试測试 TEST DEST,SRC;执行与的操作,不回送结果。;执行与的操作,不回送结果。 DEST:通用:通用REG、M 按位计算(位操作指令)按位
17、计算(位操作指令) SRC:通用:通用REG、M、n 可可 8 位或位或 16 位。位。微型计算机课件2、移位指令、移位指令SAL (算术左移)(算术左移)SAR (算术右移)(算术右移)SHL (逻辑左移)(逻辑左移)SHR (逻辑右移)(逻辑右移)1、当、当 n = 1时,时,1 写在指令中,如常写在指令中,如常SHL AL,1 当当 n大于大于 1 时,将计数值时,将计数值 n 写入写入CL,再把,再把CL写入指令,如写入指令,如 MOV CL ,3 SHL BX,CL2、这类指令都把、这类指令都把CF看做第看做第 9 位或第位或第 17 位参加运算。位参加运算。3、算术移位是对带符号数
18、,逻辑移位是对无符号数而言。、算术移位是对带符号数,逻辑移位是对无符号数而言。SAL要判要判断断OF,OF = 1结果无效(符号变),结果无效(符号变),SAR要保持符号位不变。要保持符号位不变。DEST ,计数值 n微型计算机课件移位指令操作过程移位指令操作过程CF000最低位最低位最低位最低位最高位最高位最高位最高位CFCFCFSALSHLSARSHR微型计算机课件3、循环移位指令、循环移位指令CFCFCFCF不带进位的循环左移不带进位的循环右移带进位的循环左移带进位的循环右移ROLRORRCLRCR微型计算机课件4 4、位操作指令、位操作指令1)位测试)位测试和位设置和位设置(bit t
19、est)BT DEST,SRC ;将将SRC指定的指定的DEST中的位值复制到中的位值复制到CF中中BTC DEST,SRC ;C代表将对应位代表将对应位CLEARBTR DEST,SRC ;R代表将对应位代表将对应位RESETBTS DEST,SRC ;S代表将对应位代表将对应位SET微型计算机课件说明:说明: (1 1)目标操作数)目标操作数DST是是16/3216/32位的通用寄存器位的通用寄存器或存储器,用于指定要测试的内容;源操作数或存储器,用于指定要测试的内容;源操作数SRC是是8 8位立即数或与目标操作数位数相等的通用寄存器,位立即数或与目标操作数位数相等的通用寄存器,用于指定要
20、测试的位。用于指定要测试的位。(简)简) (2 2)如果源操作数是立即数,或源操作数和目)如果源操作数是立即数,或源操作数和目标操作数均为寄存器,标操作数均为寄存器,则源操作数除以目标操作数则源操作数除以目标操作数的位数,其余数为的位数,其余数为i i(要测试的位)。(要测试的位)。 (3 3)如果源操作数为寄存器,目标操作数为存)如果源操作数为寄存器,目标操作数为存储器,则将该存储器的地址加上源操作数除以储器,则将该存储器的地址加上源操作数除以8 8的商,的商,其和就是实际测试单元的地址,源操作数除以其和就是实际测试单元的地址,源操作数除以8 8的余的余数数i i就是实际测试单元中要测试的位
21、。寄存器中的源就是实际测试单元中要测试的位。寄存器中的源操作数是有符号整数。操作数是有符号整数。 微型计算机课件 设设 SRC SRC 除以除以 DST DST 的长度后所得到的商为的长度后所得到的商为disp disp ,所得余数为所得余数为offsetoffset。那么这些指令要测试的位是根。那么这些指令要测试的位是根据如下方法确定的:据如下方法确定的:如果如果DSTDST是寄存器,则是寄存器,则offsetoffset是寄存器操作数是寄存器操作数DSTDST中中要测试的位的位号。要测试的位的位号。如果如果DSTDST是存储单元,存储器操作数是存储单元,存储器操作数DSTDST的偏移与的偏
22、移与dispdisp相加之和是实际测试存储单元的偏移,则相加之和是实际测试存储单元的偏移,则offsetoffset是该存储单元中要测试位的位号。是该存储单元中要测试位的位号。 操作数操作数SRCSRC取符号整数值,所以当取符号整数值,所以当SRCSRC为为1616位时,位时,可访问(可访问(32K32K)至()至(32K32K1 1)范围内的位串,当)范围内的位串,当SRCSRC是是3232位时,可访问(位时,可访问(2G2G)至()至(2G2G1 1)范围)范围内的位串。内的位串。微型计算机课件2 2) 位扫描指令组位扫描指令组 位扫描指令组含有以下两条指令:前向扫描指位扫描指令组含有以下
23、两条指令:前向扫描指令令BSFBSF和反向位扫描指令和反向位扫描指令BSRBSR。 格式:格式: BSF BSF DST,SRC BSR BSR DST,SRC 指令功能:指令功能: 前向位扫描指令前向位扫描指令BSFBSF的功能是从低到高逐位扫的功能是从低到高逐位扫描源操作数,并将遇到的第一个含描源操作数,并将遇到的第一个含1 1的位的位号送目的位的位号送目标操作数;标操作数; 反向位扫描指令反向位扫描指令BSRBSR从高到低逐位扫描源操作从高到低逐位扫描源操作数,将遇到的第一个含数,将遇到的第一个含1 1的位的位号送目标操作数。的位的位号送目标操作数。微型计算机课件说明:说明: (1 1)
24、目标操作数和源操作数可以是)目标操作数和源操作数可以是16/3216/32位的寄位的寄存器或存储单元,两者的位数(长度)必须相等。存器或存储单元,两者的位数(长度)必须相等。 (2 2)如果源操作数为)如果源操作数为0 0,则指令执行后零标志,则指令执行后零标志ZFZF置置1 1,目标操作数的值不确定;否则零标志,目标操作数的值不确定;否则零标志ZFZF被清被清0 0。微型计算机课件例:例: 下列程序段处理下列程序段处理AXAX中的信息,仅保留可能有的最右和中的信息,仅保留可能有的最右和最左的各一位为最左的各一位为1 1的位。若的位。若AX=11010BAX=11010B,则程序段执行后,则程
25、序段执行后AX=00010B。 XOR DX,DX;(;(DX)0000,0000,0000,0000 BSF CX,AX;(;(CX) 0000,0000,0000,0001 JZ DONE;若位号为;若位号为0,则为最右边,则为最右边 BTS DX,CX; (DX)0000,0000,0000,0010 BSR CX,AX; (CX) 0000,0000,0000,1101 JZ DONE; BTS DX,CX; (DX)0010,0000,0000,0010DONE: MOV AX,DX微型计算机课件3)进位标志指令)进位标志指令 CLC STC CMC4)条件设置字节指令)条件设置字节
26、指令格式:格式: SETcond DEST或:或: SETSETXX OPR OPR 指令功能:若被测试条件指令功能:若被测试条件XX成立,将成立,将OPROPR置置1 1,否则清零。,否则清零。说明:说明: (1 1)“条件条件”XX是指令助记符的一部分,是是指令助记符的一部分,是SETSET指令所测指令所测试的内容,该条件与转移指令的条件相同,即包括:试的内容,该条件与转移指令的条件相同,即包括: 微型计算机课件 SETZ/SETE SETZ/SETE 等于等于 SETNZ/SETNE SETNZ/SETNE 不等于不等于 SETS/SETNS SETS/SETNS 为负为负/ /为正为正
27、 SETO/SETNO SETO/SETNO 有溢出有溢出/ /无溢出无溢出 SETP/SETPE SETP/SETPE 校验为偶校验为偶 SETNP/SETPO SETNP/SETPO 校验为奇校验为奇 SETC/SETNC SETC/SETNC 有进位有进位/ /无进位无进位 SETB/SETNAE SETB/SETNAE 低于低于/ /不高于等于不高于等于 STEBE/SETNA STEBE/SETNA 低于等于低于等于/ /不高于不高于 SETA/SETNBE SETA/SETNBE 高于高于/ /不低于等于不低于等于微型计算机课件SETAE/SETNB SETAE/SETNB 高于等
28、于高于等于/ /不低于不低于SETL/SETNGE SETL/SETNGE 小于小于/ /不大于等于不大于等于SETLE/SETNG SETLE/SETNG 小于等于小于等于/ /不大于不大于SETG/SETNLE SETG/SETNLE 大于大于/ /不小于等于不小于等于SETGE/SETNL SETGE/SETNL 大于等于大于等于/ /不小于不小于SETCXZ/SETECXZ CX=0/ECX=0SETCXZ/SETECXZ CX=0/ECX=0微型计算机课件(2 2)OPROPR只能是只能是8 8位的寄存器或存储器,用于存放测位的寄存器或存储器,用于存放测试结果。试结果。(3 3)本指
29、令的前面一般有影响标志位的)本指令的前面一般有影响标志位的CMPCMP或或TESTTEST指令。指令。例例SETZ BLSETZ BL;若;若ZF=1ZF=1,则,则BL=1BL=1,否则,否则BL=0BL=0SETG DHSETG DH;若;若SFOF=0SFOF=0且且ZF=0 ZF=0 ,则,则DH=1DH=1,否则,否则DH=0DH=0微型计算机课件五、控制转移指令五、控制转移指令1、转移指令、转移指令 1)无条件转移指令)无条件转移指令 JMP DEST (目标地址)(目标地址) 2)条件转移指令(段内直接短转移)条件转移指令(段内直接短转移) JCC DEST CC表示条件,目标地
30、址常用标号表示。表示条件,目标地址常用标号表示。 满足条件,转到目标地址执行,否则顺序执行。满足条件,转到目标地址执行,否则顺序执行。 (1)条件转移指令都是以标志的状态作为判断条件。)条件转移指令都是以标志的状态作为判断条件。 (2)是二字节指令。)是二字节指令。 (3)可分三类)可分三类 (1)、简单的条件转移指令(单个标志做判断条件)、简单的条件转移指令(单个标志做判断条件)JC JNC JE / JZ JNE /JNZJS JNS JO JNO JPJNP ZFSFOFPFJCXZ (CX = 0 转)CF微型计算机课件(2)、无符号数条件转移(测试标志)、无符号数条件转移(测试标志
31、CF、ZF) JB JNB JA JNA (3)带符号数条件转移(测试)带符号数条件转移(测试 SF、OF、ZF) JL JNL JG JNG 2、循环控制指令、循环控制指令 LOOP OPRD :CX 0 循环循环 LOOPNE OPRD :CX 0 且且 ZF = 0 循环循环 LOOPE OPRD :CX 0 且且 ZF = 1 循环循环 1)目的地址范围)目的地址范围 -128 +127 2)先将循环次数送)先将循环次数送CX中中 3)指令执行时,先将)指令执行时,先将CX减减 1,直到,直到CX = 0 循环结束。循环结束。ZF不受不受CX影影 响。响。 4)后两条指令,两个条件只要
32、一个条件不满足,循环结束。)后两条指令,两个条件只要一个条件不满足,循环结束。微型计算机课件3、过程调用和返回指令、过程调用和返回指令调用指令调用指令 CALL 目标地址(标号)目标地址(标号)返回指令返回指令 RETCALL指令有将断点(返回地址)进栈操作,指令有将断点(返回地址)进栈操作,RET指令有将断点出指令有将断点出栈的操作。栈的操作。 CALL A1RET返回地址返回地址过程入口A1.返回地址是CALL指令的下一条指令,CALL是三字节指令可段内直接、间接段间直接、间接。微型计算机课件4、中断指令和中断返回指令、中断指令和中断返回指令例:INT 21H (二字节指令)若该指令的地址
33、是049E:1002H,则下一条指令的地址是049E:1004H CS SP = 01FEHSP= 01FCHSS:0。INT 21H 执行前堆栈情况执行前堆栈情况SP = 01FCHSP = 01FAH SP = 01F8H。(FR)1004H SP = 01F6H 094EH执行情况执行情况INT 21H后后SS:0。标志寄存器进栈标志寄存器进栈断点进栈断点进栈TF = 0,IF = 00:0002H0:0000HIPCS中断类型中断类型 00:03FFH 0:03FCHIPCS中断类型中断类型255。 0:0084H 0:0086H 中断类型中断类型 21H 21H*4 = 84H,85
34、H 86H,87HIPCSFFF0HFE6EH中断向量表中断向量表主程序主程序。 1002H1003H 1004H INT 21H的机器代码的机器代码 FFF0:FE6EH。IRET断点断点(断点)(断点)子程序子程序微型计算机课件 8048680486串操作的基本单位在字节和字的基础上增串操作的基本单位在字节和字的基础上增加了双字。以双字为元素的串操作指令的功能、使加了双字。以双字为元素的串操作指令的功能、使用方法、对标志位的影响等,和以字节和字为元素用方法、对标志位的影响等,和以字节和字为元素的串操作指令相同。在双字基本串操作后源串指针的串操作指令相同。在双字基本串操作后源串指针和目的串指
35、针加和目的串指针加4 4或减或减4 4。如果使用了。如果使用了“重复前缀重复前缀”指令,则重复执行的次数由指令,则重复执行的次数由CX/ECXCX/ECX中的值来决定。中的值来决定。 六、串操作指令六、串操作指令微型计算机课件 五条基本串操作指令五条基本串操作指令MOVSB / MOVSW ; 传送字节传送字节/字字 DS:SI ES:DICMPSB / CMPSW ;比较指令比较指令 ES:DI 与与 DS:SI 比较(相减)比较(相减)SCASB / SCASW ;扫描指令扫描指令 ES:DI 与与 AL / AX 比较比较LODSB / LODSW ;装入(读)指令装入(读)指令 DS:
36、SI AL / AXSTOSB / STOSW ; 存入(写)指令存入(写)指令 AL / AX ES:DI 三条前缀指令三条前缀指令REP ;当当 CX 0 时重复,时重复,CX 1 CX,可加在,可加在 MOVS 和和 STOS 前前REPE / REPZ ;当当 ZF 1且且 CX 0 时重复时重复 (两数相等(两数相等 / 为零重复)为零重复) 即即ZF =1 或或 CX = 0 停止。停止。REPNE / REPNZ ;当当ZF 1 且且 CX 0 时重复时重复 (两数不等(两数不等/不为零重复)不为零重复) 即即ZF = 1或或CX = 0停止。停止。 REPE和和REPNE可加在
37、可加在CMPS和和SCAS前。前。REPNE用于找第一个相等的元素,用于找第一个相等的元素,REPE用于找第一个不相等的元素。用于找第一个不相等的元素。微型计算机课件使用字串指令时:使用字串指令时:1、对、对 DS、SI、ES、DI 赋值(赋值(DS和和ES可隐含)可隐含) 这类指令都是用这类指令都是用SI对源操作数进行间接寻址并在对源操作数进行间接寻址并在DS段,用段,用DI对对目的操作数进行间接寻址并在目的操作数进行间接寻址并在ES段。段。2、将字串长度送、将字串长度送 CX(计数值)(计数值)3、设置方向标志、设置方向标志DF的值:若的值:若SI、DI是起址,使是起址,使DF = 0(C
38、LD),), 地址加地址加 1或加或加 2修改,若修改,若SI、DI是末地址,使是末地址,使DF = 1 (STD) 地址减地址减 1或减或减 2修改。修改。4、加重复前缀时,指令执行的顺序是:、加重复前缀时,指令执行的顺序是: (1)先判断)先判断 CX = 0 ?CX = 0 退出,退出,CX 0,CX - 1 CX (2)执行字串指令)执行字串指令 (3)修改)修改SI、DI 的内容的内容 (4)回到()回到(1)微型计算机课件七、处理器控制指令七、处理器控制指令(一)、对标志操作的指令(一)、对标志操作的指令 1、 CLC ;使;使 CF = 0 STC ; 使使 CF = 1 CMC
39、 ;使;使 CF = CF 2、 CLD ;使;使 DF = 0 STD ;使;使 DF = 1 3、 CLI ; 使使 IF = 0 STI ; 使使 IF = 1 (二)外部同部指令(二)外部同部指令 1、HLT ;暂停;暂停 2、NOP ;空操作;空操作 3、WAIT ;等待;等待 4、ESC ; 交权交权 5、LOOK ;封锁;封锁微型计算机课件MOV SI ,5000H MOV DI ,5004HMOV AX,SISUB AX ,DIMOV SI,AXINC SI INC SI ADD SI ,2INC DI ADD DI ,2INC DIMOV AX ,SISBB AX ,DIMO
40、V SI ,AXPUSHF ADD SI ,2 ADD DI ,2POPF例:将例:将5000H开始存放的双字与开始存放的双字与5004H开始存放的开始存放的双字相减,结果存放到双字相减,结果存放到5000H开始存放的位置。开始存放的位置。微型计算机课件八、中断指令与八、中断指令与DOS功能调用功能调用中断指令格式:中断指令格式: INT n功能:产生中断类型码位功能:产生中断类型码位n的软中断,指令中含操作码和中断类型的软中断,指令中含操作码和中断类型码,码, n为为8位。位。软中断执行过程:软中断执行过程:将将FLAGS(或或EFLAGS)圧入堆栈;圧入堆栈;清除清除TF和和IF标志位;标
41、志位;CS, IP/EIP圧入堆栈;圧入堆栈;实地址模式下,实地址模式下,n4获取中断矢量表地址指针,获取中断矢量表地址指针, n8获取获取中断描述符表地址指针;中断描述符表地址指针;根据地址指针,从中断矢量表或中断描述符表中取出中断服根据地址指针,从中断矢量表或中断描述符表中取出中断服务程序地址送务程序地址送IP/EIP和和CS,控制程序转移去执行中断服务程序。,控制程序转移去执行中断服务程序。遇到遇到中断返回指令中断返回指令,出栈,出栈CS, IP/EIP和和FLAGS(或或EFLAGS),返回原断点。返回原断点。中断返回指令格式中断返回指令格式:IRET/IRETDIRET ;与;与IP,CS,FLAGS相关相关IRETD ;与;与EIP,CS,EFLAGS相关相关微型计算机课件操作系统 MS - DOS 的结构用用户户用户程序用户程序 命令处理模块命令处理模块磁盘管理模块磁盘管理模块基本输入输出模块基本输入输出模块软件中断和系统调用键盘命令COMMAND.COMIBM DOS.COMIBM BIO.COMROM BIOS微型计算机课件DOS功能调用 主要学习系统功能调用中的主要学习系统功能调用中的 INT 21H中的五个。中的五个。 使用方法:使用方法:传送入口参数到规定的寄存器传送入口参数到规定的寄存器把功能号送到把功能号送到AH寄存器寄存器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论