微型计算机技术与应用4_第1页
微型计算机技术与应用4_第2页
微型计算机技术与应用4_第3页
微型计算机技术与应用4_第4页
微型计算机技术与应用4_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

12023/10/223.2.3逻辑运算和移位指令1.逻辑运算指令1)AND(Logicaland)逻辑“与”指令2)OR(Lgicalinclusiveor)逻辑“或”指令3)XOR(Logicalexclusiveor)逻辑“异或”指令4)TEST(Testornon-destructivelogicaland)测试指令5)NOT(Logicalnot)逻辑“非”指令特点:对其操作数按位执行逻辑操作,操作数可以是双字、字或字节。影响条件码:(NOT指令除外)

CF=0F=0,A未定义,SFZFPF(运算结果) ↕↕↕源操作数可以为立即数、寄存器、存储器目的操作数可以为寄存器、存储器,不能为立即数源操作数不是立即数时,两操作数必有一个寄存器第3章Pentium的指令系统22023/10/22

ANDdest,src

;(dest)

(dest∧src)

操作:进行“与”运算,两位中有一位为0(或二位都为0),则结果为0,否则为1。

寄存器、存储器立即数、寄存器、存储器1)AND逻辑“与”指令(Logicaland)“与”指令的用途:

(1)清CF,OF

,自己“与”自己.操作数不变,CF=0,OF=0

例:ANDAL ;结果:操作数不变,CF=0,OF=0。

(2)使操作数中若干位保持不变,若干位与“1”相与;而若干位置为“0“的场合,若干位与“0”相与。

例:

若(AL)=43H ANDAL,0FH ;(AL)=03H,(AL)0~3不变;

;(AL)4~7=00H,屏蔽高4位。

第3章Pentium的指令系统32023/10/22“与”指令应用举例:

例1:将英文小写字母ASCII转换成大写。 小写英文字母ASCII为:‘a’~’z’61H~7AH

大写英文字母ASCII为:‘A’~’Z’41H~5AH

程序: MOVAL,’z’ ANDAL,0DFH;(AL)=5AH11011111DFH011000010100000161H41H01111010010110107AH5AH第3章Pentium的指令系统42023/10/22

ORdset,src

;(dset)←(dset)(src)

操作:

进行按位“或”运算

两位操作数中任一位为1(或都为1),则该位(结果)=1,否则为0。

∧寄存器、存储器立即数、寄存器、存储器

2)OR逻辑“或”指令(

Lgicalinclusiveor)或指令应用用途:(1)清CF,OF,自己与自己“或”,操作数不变,CF=0,OF=0

例:ORAL;(AL)不变,CF=0(2)使某操作数若干位保持不变,若干位与“0”或;若干位置1,与“1”或。(3)将两个操作数信息组合。若(AL)=03H用OR指令组合使(AL)=33H=’3’。

ORAL,30H;(AL)=33H第3章Pentium的指令系统52023/10/22

XORdset,src

;(dset)

(dset)

(src)

操作:对指令的两个操作数进行按位“异或”运算。

二位不相同时为1,相同时为0。

寄存器、存储器立即数、寄存器、存储器3)XOR逻辑“异或”指令(Logicalexclusiveor)用途:对某些特定位求反,某些特定位与“1”

其余位保持不变,保持不变与“0”

。应用举例:例1:将(AL)中的第1、3、5、7位求反

0、2、4、6位保持不变。

MOVAL,0FH XORAL,0AAH第3章Pentium的指令系统62023/10/22例:比较三条(AX)清“0”指令:

XORAX,AX;清AX,清CF。

SUBAX,AX;清AX,清CF。

MOVAX,0;清AX,不影响标志位。

XOR清“0”指令在多字节累加程序中十分有用。第3章Pentium的指令系统72023/10/22

TESTdest,src

;(dest)∧(src)

操作:二个操作数相与,结果不存,只置条件码。

寄存器、存储器立即数、寄存器、存储器4)TEST测试指令(Testornon_destructivelogicaland)用途:常常用来检测一些条件是否满足,但又不希望改变原有的操作数的情况下,常在此指令后边加一条条件转移指令。例:判断A单元中数据的奇偶性,设:(A)=0AEH

程序:MOVAL,A ;(AL)=0AEH

TESTAL,01H JZEVEN

;结果=0为偶数转EVEN…

奇数处理

EVEN:偶数处理

检测(AL)的最低位是否为0,若为0转EVEN第3章Pentium的指令系统82023/10/22执行操作:对标志位无影响。字节求反:(dest)

0FFH-(dest) 字求反:(dest)

0FFFFH-(dest)

5)NOT逻辑“非”指令(Logicalnot)NOTdest

;操作数只一个,对操作数按位求反。逻辑指令应用小结:(1)AND指令用来对指令的指定位清“0”。(2)OR指令常用来对某些位置1。(3)XOR指令用在程序开头,使某个寄存器清“0”。(4)NOT指令对某个数据取反,+1成补码。(5)TEST指令用来检测指定位为1,还是0。第3章Pentium的指令系统92023/10/22逻辑运算指令102023/10/22

1)非循环移位(算术/逻辑移位指令)

SAL,SAR

, SHL,SHR。

2)循环移位

ROL,

ROR,RCL,RCR。

3)双精度移位

SHLD,SHRD。将操作数移动一位或多位,分别具有左移或右移操作将操作数从一端移出的位返回到另一端形成循环,分成不带进位和带进位,分别具有左移或右移操作2.移位指令快速数据移位,三个操作数,实现双左移,双右移第3章Pentium的指令系统112023/10/22

SHLdest,cnt

;逻辑左移指令,B/W/DW

SALdest,cnt

;算术左移指令,B/W/DW

0CFdest执行操作:相当于无符号数的×2功能。第3章Pentium的指令系统122023/10/22

cnt:表示移位次数

cnt≤31,可写在指令中,也可用CL给出。

cnt>31,用CL存放移位次数,不能是其他寄存器。 如: SALAX,1 MOVCL,4 SALAX,CLSALEAX,CL第3章Pentium的指令系统132023/10/22SHRdest,cnt

;逻辑右移指令,B/WdestCF0执行操作:相当于无符号数的÷2功能。第3章Pentium的指令系统142023/10/22SARdest,cnt

;算术右移指令,B/Wdest执行操作:相当带符号数÷2功能,SAR对负数向下舍入

IDIV指令对负数向上舍入。第3章Pentium的指令系统152023/10/22用SAR指令与用IDIV指令做除法的区别:用SAR指令做除法(对负数向下舍入):

MOVAX,81H ;(AX)=-127 SARAX,1 ;(AX)=-64用IDIV指令做除法(IDIV指令对负数向上舍入):

MOVAX,81H ;(AX)=-127 MOVCL,2 IDIVCL ;(AL)=-63,(AH)=-11000000111000000第3章Pentium的指令系统162023/10/22ROLdest,cnt

;不含CF循环左移指令CFdest移动8次后操作数还原。第3章Pentium的指令系统172023/10/22RORdest,cnt

;不含CF循环右移指令

右移8次后操作数还原。CFdest第3章Pentium的指令系统182023/10/22RCLdest,cnt

;含CF循环左移指令

左移9次后操作数还原CFdest第3章Pentium的指令系统192023/10/22RCRdest,cnt

;含CF循环右移指令

右移9次后操作数还原CFdest第3章Pentium的指令系统202023/10/22循环移位指令(Rotate)与移位指令(Shift)不同点:循环移位指令移位后,操作数中原来各数位的信息不会丢失,这是移动了位置,必要时可以恢复。循环移位指令可以对操作数进行测试。例:测试(AL)5=?0 MOVCL,3

ROLAL,CL JNCZERO …ZERO: … …10?01000AL212023/10/22

利用带进位循环移位指令将两个寄存器或存储器单元组合起来一起移位。例:将DX、AX组合起来构成32位寄存器向左移一位。如下图所示:程序:SHLAX,1 RCLDX,132位寄存器向左移一位DXAXCF0222023/10/22思考:

把AL最低位送BL最低位,保持AL不变

AH.AL分别存放着非压缩BCD码的两

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论