微机原理与接口技术的课件第3章.ppt
《微机原理与接口技术的课件第3章.ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术的课件第3章.ppt(98页珍藏版)》请在三一办公上搜索。
1、1,8086指令系统(2),2,三、逻辑运算和移位类,逻辑运算移位操作,非循环移位循环移位,3,逻辑运算和移位指令,4,指令类型,逻辑运算与,或,非,异或移位操作非循环移位,循环移位,5,一、逻辑运算,逻辑运算指令对操作数的要求大多与MOV指令相同。“非”运算指令要求操作数不能是立即数;除“非”运算指令外,其余指令的执行都会使标志位OF=CF=0,6,1.“与”指令:,格式:AND OPRD1,OPRD2操作:两操作数相“与”,结果送目标地址。注:与运算规则:见0为0,全1为1。例:MOV AX,5555H AND AX,0FFH;AX=0055H屏蔽高位,取出低位(高位清零);即对应位为0则
2、清0,对应位为1则不变。,7,“与”指令的应用,实现两操作数按位相与的运算AND BL,SI使目标操作数的某些位不变,某些位清零AND AL,0FH在操作数不变的情况下使CF和OF清零AND AX,AX,8,2.“或”运算指令,格式:OR OPRD1,OPRD2操作:两操作数相“或”,结果送目标地址。或运算规则:见1为1,全0为0。例:MOV AX,8888H;OR AX,0FFH;AX=88FFH对应1位置1对应0位则不变。,9,“或”指令的应用,实现两操作数相“或”的运算OR AX,DI使某些位不变,某些位置“1”OR CL,0FH在不改变操作数的情况下使OF=CF=0OR AX,AX,1
3、0,3.“非”运算指令,格式:NOT OPRD操作:操作数按位取反再送回原地址注:指令中的操作数不能是立即数指令的执行对标志位无影响 例:MOV AX,1;NOT AX;AX=0FFFEH该指令只是执行求反操作,而不是求反码指令,对符号位也求反。该指令不影响标志位。,11,4.“异或”运算指令,格式:XOR OPRD1,OPRD2操作:两操作数相“异或”,结果送目标地址例:MOV AX,3333H;XOR AX,0FFH;AX=33CCH对应0不变,对应1求反。例:XOR AX,AX;AX=0 清零某一操作数和自身相“异或”,结果为零。,12,5.“测试”指令,格式:TEST OPRD1,OP
4、RD2操作:执行“与”运算,但运算的结果不送回目标地址。应用:常用于测试某些位的状态,13,二、移位指令,非循环移位指令 循环移位指令,注:移动一位时由指令直接给出;移动两位及以上,则移位次数由CL指定。,14,1.非循环移位指令,逻辑左移算术左移逻辑右移算术右移,15,算术左移和逻辑左移,算术左移指令:SAL OPRD,1 SAL OPRD,CL逻辑左移指令:SHL OPRD,1 SHL OPRD,CL,有符号数,无符号数,移动一位后,若CF与最高位不相等,则OF=1;否则OF=0,16,1)算术左移和逻辑左移指令SAL/SHL,格式:SAL DST,CNT 或SHL DST,CNT 操作:
5、CF 0 即将目的操作数的内容左移1位或CL所指定的位,每左移1位,左边的最高位移入CF位,而在右边的最低位补0.注:SAL指令与SHL指令操作一样,即机器码一样。例:MOV BL,0CH;BL=12(0CH)SHL BL,1;BL=24(18H)左移一位,等于对操作数(带符号或无符号)乘2运算,左移N次,则乘2N,但防止溢出.,17,逻辑右移SHR,格式:SHR OPRD,I SHR OPRD,CL,0,CF,无符号数的右移,移动一位后,若次高位与最高位不相等,则OF=1;否则OF=0,18,逻辑右移例:,MOV AL,68HMOV CL,2SHR AL,CL;AL=1AH,0,CF,0 1
6、 1 0 1 0,AL,0,0,0,0 0 1 1 0 1 0 0,AL,CF,0,0,0 0 0 1 1 0 1 0,AL,CF,0,0,移动1次,移动2次,19,算术右移SAR,格式:SAR OPRD,I SAR OPRD,CL,有符号数的右移,CF,将目标操作数向右移1位或CL指定的位数,操作数最低位移入标志位CF,移空的位由最高位补充。(例3-31),20,非循环移位指令的应用,左移可实现乘法运算右移可实现除法运算,21,2.循环移位指令,不带进位位的循环移位带进位位的循环移位,左移 ROL右移 ROR,左移 RCL右移 RCR,指令格式、对操作数的要求与非循环移位指令相同,22,不带
7、进位位的循环移位,CF,CF,23,(5)循环右移ROR,格式:ROR DST,CNT操作:CF 将(DST)右移CNT位,且将最低位移至最高位,移空的位由移出位补充。(6)循环左移ROL格式:ROL DST,CNT操作:CF 将(DST)左移CNT位,且将最高位移至最低位,移空的位由移出位补充。例:MOV AL,45H MOV CL,4 ROL AL,CL;AL=54H,高四位与低四位互换,使用ROR也一样。,24,带进位位的循环移位,CF,CF,25,(7)带进位循环右移,格式:RCR DST,CNT操作:CF将8位、16位寄存器或存储器内容左移,移空的位由CF位补充。(8)带进位循环右移
8、格式:RCL DST,CNT操作:CF 将8位、16位寄存器或存储器内容右移,移空的位由CF位补充。此四条指令只影响CF,不影响其它标志。当想把一个寄存器或单元的内容,移至另一个单元时,常用带进位移.,26,循环移位指令的应用,用于对某些位状态的测试;高位部分和低位部分的交换;与非循环移位指令一起组成32位或更长字长数的移位。,27,串操作指令,28,串操作指令说明,针对数据块或字符串的操作;可实现存储器到存储器的数据传送;待操作的数据串称为源串,目标地址称为目标串。,29,串操作指令的特点,源串一般存放在数据段,偏移地址由SI指定。允许段重设;目标串必须在附加段,偏移地址由DI指定;指令自动
9、修改地址指针,修改方向由DF决定。DF=0 DF=1数据块长度值由CX指定可增加自动重复前缀以实现自动修改CX内容。,增地址方向;,减地址方向;,30,重复前缀,无条件重复REP条件重复REPE 相等重复REPZ 为零重复REPNE 不相等重复REPNZ 不为零重复,CX0 ZF=1,CX0 ZF=0,CX0 重复,31,串操作指令流程,取源串地址,取目标串地址,设串长度,传送一个字节或字,修改地址指针,修改串长度值,传送完否?,N,Y,设操作方向,32,串操作指令,串传送 MOVS串比较 CMPS串扫描 SCAS串装入 LODS串送存 STOS,33,1.串传送指令,格式:MOVS OPRD
10、1,OPRD2 MOVSB MOVSW串传送指令常与无条件重复前缀连用,34,串传送指令,对比用MOV指令和MOVS指令实现将200个字节数据从内存的一个区域送到另一个区域的程序段。,35,串传送指令例,用串传送指令实现200个字节数据的传送:LEA SI,MEM1 LEA DI,MEM2 MOV CX,200 CLD REP MOVSB HLT,36,2.串比较指令,格式:CMPS OPRD1,OPRD2 CMPSB CMPSW串比较指令常与条件重复前缀连用,指令的执 行不改变操作数,仅影响标志位。前缀的操作对标志位不影响,37,串比较指令例,测试200个字节数据是否传送正确:,LEA SI
11、,MEM1LEA DI,MEM2MOV CX,200CLD REPE CMPSB TEST CX,00FFH,JZ STOP DEC SI MOV AL,SI MOV BX,SISTOP:HLT,38,3.串扫描指令,格式:SCAS OPRD SCASB SCASW执行与CMPS指令相似的操作,只是这里的源 操作数是AX或AL,目 标操作数,39,串扫描指令的应用,常用于在指定存储区域中寻找某个关键字。,40,串装入指令,格式:LODS OPRD LODSB LODSW操作:对字节:AL对 字:AX,源操作数,DS:SI,DS:SI,41,4.串装入指令,用于将内存某个区域的数据串依次装入累加
12、器,以便显示或输出到接口。LODS指令一般不加重复前缀。,42,5.串存储指令,格式:STOS OPRD STOSB STOSW操作:对字节:AL对 字:AX,目 标操作数,ES:DI,ES:DI,43,串存储指令例 内存某个区域清零,设计思想:,区域首地址送ES:DI,串长度送CX,置方向标志DF,0送累加器AL,执行串送存指令,p132,44,程序控制指令,转移指令循环控制过程调用中断控制,45,一、转移指令,无条件转移指令 无条件转移到目标地址,执行新的指令有条件转移指令 在具备一定条件的情况下转移到目标地址,通过修改指令的偏移地址或段地址及偏移地址实现程序的转移,46,1.无条件转移指
13、令,格式:JMP OPRD,目标地址,与JMP在同一代码段,与JMP不在同一代码段,原则上可实现在整个内存空间的转移,47,无条件段内转移,转移的目标地址在当前代码段内,段地址不改变。即:目标地址是16位偏移地址。,指令中直接给出目标地址,由指令中的寄存器或存储器操作数指出目标地址,段内直接转移,段内间接转移,48,段内直接转移,段内直接转移转移的目标地址由指令直接给出格式:JMP(NEAR)Label,近地址标号,说明:指令被汇编时,汇编程序会计算出JMP指令的下一条指令到Label所指示的目标地址之间的位移量(即相距多少个字节单元)操作:IP+位移量(16位或8位)新的IP,目标地址与JM
14、P指令处于同一地址段范围之内(都在CS段)。,49,段内直接转移示图,JMP,Label,代码段,位移量,下一条要执行指令的偏移地址=当前IP+位移量,50,段内间接转移,段内间接转移转移的目标地址存放在某个16位寄存器或存储器 的某两个单元中格式:JMP OPRD操作:用指定的16位寄存器内容或存储器两单元内容内容作为转移目标的偏移地址,用其内容取代原来IP的内容,从而实现程序的转移。,16位的寄存器或存储器地址,51,段内间接转移例,例:JMP BX若:BX=1200H则:转移的目标地址=1200H,JMP,代码段,1200H,MOV,52,段内间接转移例,JMP WORD PTRBX 设
15、:BX=1200H,JMP,代码段,数据段,BX=1200,XXH,XXH,IP,指令码,53,无条件段间转移,转移的目标地址不在当前代码段内。目标地址为32位,包括段地址和偏移地址。,指令中直接给出目标地址,由指令中的32位存储器操作数指出目标地址,段间直接转移,段间间接转移,54,段间直接转移,段间直接转移转移的目标地址由指令直接给出格式:JMP FAR PTR Label这种方式下,指令中给出转向地址的段地址和段内偏移量。发生转移时,用前者取代当前CS寄存器内容,用后者取代当前IP中的内容,从而使程序从一个代码段转移到另一个代码段,例:JMP FAR PTR LABEL;其中LABEL为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 课件
链接地址:https://www.31ppt.com/p-6572782.html