文档详情

微机原理周荷琴版第三章.ppt

发布:2017-06-05约1.67万字共101页下载文档
文本预览下载声明
3、地址目标传送指令 (1)LEA:取有效地址 格式:LEA REG,MEM 功能:取源操作数地址的偏移量,并把它传送到止的操作数所在的单元。 要求:源操作数必须是一个存储器操作数,目标操作数必须是一个除段寄存器以外的16位寄存器,通常是间址寄存器SI等。 LDS指令例 DS = 6000H DI = 1234H AX = 2233H 4. 标志传送(位操作)指令 LAHF SAHF PUSHF POPF LAHF,SAHF (1)LAHF ;将FLAGS的低8位装入AH (2)SAHF ;执行与LAHF相反的操作 AAS指令检查AL低四位,如低四位表示的数是0-9的数字,ASS清除AL高四位及CF和AF标志;如AL低四位表示的数大于9或AF=1,AAS进行如下调整: AL减去6; AH减去1; 置AF=1,CF=1; 清除AL中高四位。 例:求13-4=? MOV AX,0103H MOV BL,04H SUB AL,BL ;AL=FFH AAS ;AL=09H,AH=0 AAM:指令的作用是用10(0AH)来除AL寄存器的内容,并将除得的商和余数分别送到AH和AL来实现转换。 例:7×9=? MOV AL,07H MOV BL,09H MUL BL ;AX=003FH AAM ;AH=06H,AL=03H AAD(非压缩BCD码除法调整) 指令格式:AAD 指令功能:在做除法之前,将AL加AH*10,AH清0进行调整。然后与非压缩BCD码作除法,AL中得到正确的商,AH中得到正确的余数。 例:73÷2=? MOV AX,0703H MOV BL,02H AAD DIV BL ;AL=24H,AH=01H AAM ;AH=03H,AL=06H 以上几条指令的执行结果为:在AX中得到正确的商(非压缩BCD码),但余数丢失。如果需要保留余数,则应在DIV指令之后,AAM之前,将余数暂存到一个寄存器。如果有必要,还应对余数进行调整。 三、 逻辑运算与移位指令 1、逻辑运算指令:对字节或字数据进行按位的操作。 格式: 逻辑与 AND DST,SRC; (DST)(DST)AND(SRC) 逻辑或 OR DST,SRC; (DST)(DST)OR(SRC) 逻辑非 NOT OPR ; (OPR)(OPR) 异或 XOR DST,SRC; (DST)(DST)XOR(SRC) 测试 TEST OPR1,OPR2;(OPR1)AND(OPR2) AND指令主要用于使操作数的某些位保留(和1相与)、某些位清0(和0相与)。 例:AND AL,0FH;屏蔽高4位,保留低4位。 OR用法: a 用于使操作数的某些位保留(和0相或),某些位置1(和1相或)。 b 用于分离符号标志,进行判断、转移。影响ZF、SF和PF,CF=OF=0。 例:OR BX,0C000B 将BX的两位最高的有效位(15和14位)置成1,而其它位不变。 XOR用法:用于使操作数的某些位保留(与0异或),某些位取反(和1异或)。 例:将AL的高4位保留,低4位取反: XOR AL,0FH 例:将AX中的内容清0: XOR AX,AX NOT指令改变寄存器或存储单元的每一位状态,原来为0变为1,原为1变为0。 例: NOT AX ;AX各位取反 TEST指令是一条测试指令,它执行的操作与AND相同,不过它不送回结果,只影响标志位。 例:TEST AL,0000 0001B;如AL最低位为0,则ZF=1。 例:测试AL的0、3、5位,若有一位为1,则转出错处理。 TEST AL JNZ ERROR ;ZF=0,转出错ERROR。 2、移位指令 逻辑左移 SHL OPR,CNL 算术左移 SAL OPR,CNL 逻辑右移 SHR OPR,CNL 算术右移 SAR OPR,CNL 其中:OPR为操作数,CNL为1或CL表示移位次数 0 CF OPR 0 CF OPR CF OPR 例:设AL=1011 0100,CF=1 在SHL AL,1之后,AL= 0110 1000
显示全部
相似文档