- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算术运算类指令 算术运算类指令包括加、减、乘、除4种指令。这类指令可以对字节、字或双字数据进行运算,参加运算的数可以是无符号数或带符号数。由于80x86提供十进制数运算校正指令,因此参加运算的数也可以是BCD码表示的十进制数。这类指令中既有双操作数指令,也有单操作数指令。如前所述,双操作数指令的两个操作数不能同时为存储器操作数,且只有源操作数可为立即数。单操作数指令不允许使用立即数寻址方式。 (1)加法运算指令 ADD(ADD) 加法 ADC(ADD with Carry) 带进位加法 INC(INCrement) 加1 XADD(eXchange and ADD) 交换并相加 (2)减法运算指令 SUB(SUBtract) 减法。 SBB(SuBtract with Borrow) 带借位减法。 DEC(DECrement) 减1。 NEG(NEGate) 求补。 CMP(CoMPare) 比较。 CMPXCHG(CoMPare and eXCHanGe) 比较并交换。 CMPXCHG8B(CoMPare and eXCHanGe 8Byte)比较并交换8字节。 逻辑类指令 这类指令包括逻辑运算指令、位测试指令、位扫描指令和移位指令。 (1)逻辑运算指令 逻辑运算指令共有5条,其指令格式及功能分别如下: AND逻辑与指令 指令格式:AND DEST,SRC 指令功能:DEST?(SRC)∧(DEST) OR逻辑或指令 指令格式:OR DEST,SRC 指令功能:DEST?(SRC)∨(DEST) XOR逻辑异或指令 指令格式:XOR DEST,SRC 指令功能:DEST?(SRC)?(DEST) NOT逻辑非指令 指令格式:NOT DEST 指令功能:DEST? (DEST) TEST测试指令 指令格式:TEST DEST,SRC 指令功能:(SRC)∧(DEST) 上述指令对操作数都是按位进行逻辑运算的,操作数可以是字节、字或双字。NOT指令对标志位无影响,其余4条指令影响的标志位是SF、ZF、PF,置CF、OF为0,AF不确定。TEST指令与AND指令的不同之处是,运算结果不送回目的地址中。因此TEST指令执行后,两个操作数都不变,只影响标志位。 (2)位测试指令 80386及其后继机型增加了本组指令。 BT(Bit Test) 位测试。 BTS(Bit Test and Set) 位测试并置1。 BTR(Bit Test and Reset) 位测试并置0。 BTC(Bit Test and Complement) 位测试并变反。 ① BT位测试指令 指令格式:BT DEST,SRC 指令功能:把目的操作数中由源操作数所指定位的值送往标志位CF。 ② BTS位测试并置1指令 指令格式:BTS DEST,SRC 指令功能:把目的操作数中由源操作数所指定位的值送往标志位CF,并将目的操作数中的该位置1。 (3)位扫描指令 80386及其后继机型增加了本组指令。 BSF(Bit Scan Forward) 正向位扫描。 BSR(Bit Scan Reverse) 反向位扫描。 ① BSF正向位扫描指令 指令格式:BSF REG,SRC 指令功能:指令从位0开始自右向左扫描源操作数,目的是检索第一个为1的位。如遇到第一个为1的位则将ZF位置0,并把该位的位置装入目的寄存器中;如源操作数为0,则将ZF位置1,目的寄存器无定义。 (4)移位指令 移位指令可按操作数的个数分为单操作数移位指令(8条)和双操作数移位指令(2条)。80386及其后继机型增加的双精度移位指令就是双操作数移位指令。 SHL(SHift logical Left) 逻辑左移。 SAL(Shift Arithmetic Left) 算术左移。 SHR(SHift
文档评论(0)