逻辑运算和移位指令.ppt

上传人:牧羊曲112 文档编号:6028979 上传时间:2023-09-16 格式:PPT 页数:27 大小:240KB
返回 下载 相关 举报
逻辑运算和移位指令.ppt_第1页
第1页 / 共27页
逻辑运算和移位指令.ppt_第2页
第2页 / 共27页
逻辑运算和移位指令.ppt_第3页
第3页 / 共27页
逻辑运算和移位指令.ppt_第4页
第4页 / 共27页
逻辑运算和移位指令.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《逻辑运算和移位指令.ppt》由会员分享,可在线阅读,更多相关《逻辑运算和移位指令.ppt(27页珍藏版)》请在三一办公上搜索。

1、2.5.3 逻辑运算和移位指令,1、逻辑运算指令,(1)逻辑非指令NOT,(2)逻辑与指令AND,(3)逻辑或指令OR,(4)逻辑异或指令XOR,(5)测试指令TEST,(1)逻辑非指令NOT,格式:NOT 目标操作数,功能:将目标操作数各位取反,结果送回目标操作数,目标操作数:通用寄存器、存储器,例如:NOT AX NOT DAT1BX,cx:0f0fhnot ch,cx:f00fh,(2)逻辑与指令AND,格式:AND 目标,源,功能:对两个操作数进行按位与操作,结果送回目标,用途:对需要保留的位与1相与,需要置0的位与0相与,例如:将AL中的ASCII码5变为BCD数,保留低4位,去掉高

2、4位,AND AL,0FH,逻辑运算中,双操作数指令,操作数寻址方式的规定同算术运算指令,格式:OR 目标,源,功能:两个操作数进行逻辑或运算,结果送回目标,用途:要保留的位与0相或,需要置1的位与1相或,例如:将AL中的1位BCD数转换为ASCII码,OR AL,30H,(3)逻辑或指令OR,(4)逻辑异或指令XOR,格式:XOR 目标,源,功能:两个操作数进行异或运算,结果送回目标,用途:部分位不变,部分位取反,例如:使BL中高四位不变,低四位取反,XOR BL,0FH,1 0 1 0 1 0 0 1【BL】,0 0 0 0 1 1 1 1【0FH】,1 0 1 0 0 1 1 0,例如:

3、BX清零,XOR BX,BX,(5)测试指令TEST,格式:TEST 目标,源,功能:两个操作数进行逻辑与运算,结果不送回目标,只置标志位,用途:不改变原操作数,测试某些位的状态。,例如:测试AL中的D0位,TEST AL,01H,若D0=0,则ZF=1,若D0=1,则ZF=0,2、移位指令,(1)逻辑左移/算术左移指令SHL/SAL,格式:,逻辑左移 SHL 目标,计数值,算术左移 SAL 目标,计数值,SHL、SAL是同一条指令的两种助记符,计数值:如果移1位,为1;如果大于1,移位次数在CL eg:mov ax,0fhmov cl,2shl ax,cl,Shift logical lef

4、t,Shift arithmetic left,操作:左移的位放入CF,右边的空位补0,目标:8/16位通用寄存器或存储单元,(2)逻辑右移指令SHR,格式:SHR 目标,计数值,操作:右移的位放入CF,左边的空位补0,(3)算术右移指令SAR,格式:SAR 目标,计数值,操作:右移的位放入CF,符号位不变,3、循环移位指令,(1)循环左移指令ROL,(2)循环右移指令ROR,(3)带进位循环左移指令RCL,(4)带进位循环右移指令RCR,注:,1.OF 只有当计数值1才有效,当目标操作数的最高位0-1或1-0时:OF=1,其他OF=02.循环移位指令只影响OF和CF标志位3.算术移位指令:相

5、当于有符号数运算,其中,SAL n位2n SAR n位/2n4.逻辑移位指令:相当于无符号数运算,其中,SHL n位 2n SHR n位/2n,2.5.4 串操作指令,1.串操作指令均采用隐含寻址方式。,2.串操作指令在执行之前,必须做如下预备工作:,(1)目的操作数的逻辑地址初始化:ES:段地址 DI:偏移地址(串首地址),如:MOVSB;或 MOVSW;,(2)源操作数的逻辑地址初始化:DS:段地址 SI:偏移地址(串首地址),说明:,(3)操作重复的次数必须存放在CX寄存器中.,3.一条串指令在完成上述预备工作后,即可直接运用,如:MOVSB等。但要注意,一条串指令只执行一次(当然内部隐

6、含着若干具体的操作)。如果要使得串指令执行多次,必须用到重复前缀。,(4)方向标志DF的确定:若使得DF=0(CLD),则CPU每处理完一个元素,自动修改SI和DI寄存器内容,使之指向下一个元素(地址增加:1(字节)或者2(字);若使得DF=1(STD),则CPU每处理完一个元素,自动修改SI和DI寄存器内容,使之指向上一个元素(地址减少:1(字节)或者2(字);,4.重复前缀通常与串指令连用,目的是使得串指令执行多次,执行的次数由CX寄存器的值或ZF位决定。具体格式为:重复前缀名 串指令名 如:REP MOVSB;,5.常用的重复前缀及其功能,(1)无条件重复前缀REP格式:REP 串指令功

7、能:当CX0时,重复执行指定的串指令,每执行一次,(CX)(CX)1。直到CX0为止。使用:通常与MOVS串指令连用,完成一个串的传送。,(2)相等时/结果为0时重复前缀REPE/REPZ格式:REPE/REPZ 串指令功能:当ZF=1且CX0时,重复执行指定的串指令。每执行一次,(CX)(CX)1。当ZF1或者CX0时停止重复。使用:通常与CMPS串指令连用,在一个串中查找指定串。,(3)不相等时/结果不为0时重复前缀REPNE/REPNZ格式:REPNE/REPNZ 串指令功能:当ZF=0且CX0时,重复执行指定的串指令。每执行一次,(CX)(CX)1。当ZF0或者CX0时停止重复。使用:

8、通常与SCAS串指令连用,在一个串中查找指定字符或数据。,(1)MOVS 串传送指令 格式:MOVS目标串,源串(不提倡)MOVSB 字节串传送 MOVSW 字串传送指令功能:从源串中取一个元素送目标串中,根据DF修改SI和DI,使之指向下(或上)一元素(1或者2)。若加上REP前缀,则每传送完一个元素,CX减量,直到CX=0为止。,6.常用的串指令,DS:SI,ES:DI,23,40,23,40,DATA SEGMENT ABUF DB 100 DUP(?)DATA ENDSEXTRA SEGMENT BBUF DB 100 DUP(?)EXTRA ENDS CLD;DF=0 MOV AX,

9、DATA MOV DS,AX MOV AX,EXTRA MOV ES,AXMOV CX,100,LEA SI,ABUFLEA DI,BBUFREP MOVSB;串传送,直到CX=0,(2)CMPS 串比较指令格式:CMPS 目标串,源串 CMPSB字节串比较 CMPSW字串比较指令功能:将源串的一个元素和目标串中相对应的一个元素进行比较,根据结果特征置标志位,并修改SI和DI,使之指向下(上)一元素。通常在CMPS指令前加重复前缀REPE/REPZ,用来寻找两个串中的第一个不相同数据。,DS:SI,ES:DI,23,40,23,40,OF CF ZF AF SF PF,CLD;DF=0MOV

10、CX,100MOV SI,2400HMOV DI,1200HREPE CMPSB;串比较,直到ZF=0或CX=0AND CX,0FFFFHJZ sameDEC SIMOV BX,SI;第一个不相同字节偏移地址送BXMOV AL,SI;第一个不相同字节内容送ALJMP STOP same:MOV BX,0;两串完全相同,BX=0 STOP:HLT,(3)SCAS 串扫描指令 格式:SCAS 目标串 SCASB 字节串扫描 SCASW字串扫描指令功能:用来从目标串中查找某个关键字,要求查找的关键字应事先置入AX或AL寄存器中。SCAS指令的操作是:1.将AX/AL寄存器中的关键字和DI所指向的目标

11、串中一个元素相比较,不传送结果,只根据结果置标志位;2.修改DI寄存器内容指向下(上)一个元素。通常在SCAS指令之前加重复前缀REPNE/REPNZ,用来从目标串中寻找关键字,操作一直进行到ZF=1或CX=0为止。,(4)LODS 取串指令格式:LODS 源串 LODSB取字节串 LODSW取字串指令功能:1.将源串中SI所指向的元素送到AX/AL寄存器中;2.修改SI内容指向下一个元素。该指令一般不加重复前缀,常和其他指令结合起来完成复杂的串处理功能。,(5)STOS 存串指令格式:STOS 目标串 STOSB存入字节串 STOSW存入字串指令功能:1.将AX/AL寄存器内容写入目标串中,地址由DI所指向;2.修改DI内容指向下一元素。该指令可加重复前缀REP,常与其他指令结合起来完成较复杂的串处理功能。,2.5.5 处理器控制指令,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号