- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
逻辑运算指令是另一重组要的指令
逻辑运算指令是另一组重要的指令,它包括:逻辑与(AND)、逻辑或(OR)、逻辑非(NOT)和异或指令(XOR),逻辑运算指令也是经常使用的指令。
1、逻辑与操作指令AND(LogicalAND Instruction)
指令的格式:AND Reg/Mem, Reg/Mem/Imm受影响的标志位:CF(0)、OF(0)、PF、SF和ZF(AF无定义)指令的功能是把源操作数中的每位二进制与目的操作数中的相应二进制进行逻辑“与操作”,操作结果存入目标操作数中。
例5.6 已知(BH)=67H,要求把其的第0、1和5位置为0。
解:可以构造一个立即数,其第0、1和5位的值为0,其它位的值为1,该立即数即为:0DCH,然后用指令ANDBH, 0DCH来实现此功能。
其计算过程如右图所示。 2、逻辑或操作指令OR(LogicalOR Instruction)
指令的格式:OR Reg/Mem, Reg/Mem/Imm受影响的标志位:CF(0)、OF(0)、PF、SF和ZF(AF无定义)指令的功能是把源操作数中的每位二进制与目的操作数中的相应二进制进行逻辑或操作,操作结果存入目标操作数中。
例5.7 已知(BL)=46H,要求把其的第1、3、4和6位置为1。
解:构造一个立即数,使其第1、3、4和6位的值为1,其它位的值为0,该立即数即为:5AH,然后用指令ORBL, 5AH来实现此功能。
其计算过程如右图所示。 3、逻辑非操作指令NOT(LogicalNOT Instruction
指令的格式:NOT Reg/Mem其功能是把操作数中的每位变反,即:1←0,0←1。指令的执行不影响任何标志位。
例5.8 已知(AL)=46H,执行指令“NOT AL”后,AL的值是什么?
解:执行该指令后,(AL)=0B9H。其计算过程如下所示。 4、逻辑异或操作指令XOR(ExclusiveOR Instruction)
指令的格式:XOR Reg/Mem, Reg/Mem/Imm受影响的标志位:CF(0)、OF(0)、PF、SF和ZF(AF无定义)指令的功能是把源操作数中的每位二进制与目的操作数中的相应二进制进行逻辑异或操作,操作结果存入目标操作数中。
例5.9 已知(AH)=46H,要求把其的第0、2、5和7位的二进制值变反。
解:构造一个立即数,使其第0、2、5和7位的值为1,其它位的值为0,该立即数即为:0A5H,然后再用指令XOR AH, 0A5H来实现此功能。
其计算过程如右图所示。 5、逻辑操作指令的小结
下面是学习和掌握逻辑类指令的控件,可模拟执行AND、OR、NOT和XOR等指令。
31 … 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
… … VM RF NT IOPL OF DF IF TF SF ZF AF PF CF 图2.2 16位/32位标志寄存器的示意图
上面9个标志位可分为二组:运算结果标志位(有背景色的标志位)和状态控制标志位。前者受算术运算和逻辑运算结果的影响,后者受一些控制指令执行的影响。
更详细的内容请点击:标志位的说明。
有些指令的执行会改变标志位(如:算术运算指令等),不同的指令会影响不同的标志位,有些指令的执行不改变任何标志位(如:MOV指令等),有些指令的执行会受标志位的影响(如:条件转移指令等),也有指令的执行不受其影响。
程序员要想熟练运用这些标志位,就必须掌握每个标志位的含义、每条指令的执行条件和执行结果对标志位的作用。
注意:虽然知道每个标志位在标志寄存器内的具体位置是有好处的,但通常情况下,没有这个必要。在使用第5.2.9节中的“条件转移指令”时,系统会自动引用相应标志位的值来决定是否需要“转移”的,所以,不必过分强调标志位在标志寄存器内的具体位置
5.1、书写正确的MOV指令,需要符合哪些规定?在32位CPU中,增加了什么指令来克服不同数据类型之间的数据传送? 5.2、简述指令MOV BX, 1234H、MOV BX, [1234]和MOV BX, offset [1234H]的功能和它们之间区别。 5.3、简述指令MOV BX, Data和MOV BX, offset Data之间的区别。 5.4、选择指令实现下列要求,OPN1 ← OPN2的含义:把操作数OPN2的值传送给OPN1。 1)、EBX ← EDX3)、SI ← BX5)、AL ← BH7)、AX ← 13AH9)、SI ← 1000H 2)、BX ← CL4)、DS ← AX6)、AL ← 12H8)、CX ← 0CDH
文档评论(0)