- 1、本文档共56页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
位运算指令 有两类: 逻辑运算指令 移位与循环指令 位运算指令 表三 位运算指令列表 位运算指令 表三 位运算指令列表 ( 续 ) 逻辑运算指令 共有5条: AND 按位逻辑与 OR 按位逻辑或 XOR 按位逻辑异或 TEST 按位逻辑与, 但不保存结果 NOT 按位取反 逻辑运算指令 AND, OR和 XOR指令 ? 基本格式和功能 指令格式: AND (OR / XOR / TEST) d, s 执行的操作: AND (d) ←(d) OR (s) XOR 逻辑运算指令 AND, OR和 XOR指令 ? 基本格式和功能 常见逻辑运算的规则如下列表格所示: 与(AND): 全 1 才 1,有 0 就 0 或(OR): 有 1 就 1,全 0 才 0 异或(XOR):相同为 0,相异为 1 逻辑运算指令 AND, OR和 XOR指令 ? 说明 寻址方式: AND (OR, XOR, TEST ) reg/mem, reg/mem AND (OR, XOR, TEST ) reg/mem, data 说明: 源S可以是通用寄存器、存储器或立即数; 但d只能是通用寄存器或存储器,不能为立即数; 而且d和s不能同时为存储器操作数。 逻辑运算指令 AND, OR和 XOR指令 ? 说明 测试指令TEST不将结果送回d,它只影响F寄存器; 这4条指令均影响标志位: SF、ZF、PF根据运算结果设置相应位; CF、OF总是置零; AF不确定。 逻辑运算指令 NOT指令 ? 基本格式和功能 指令格式: NOT d 寻址方式: NOT reg/mem 逻辑运算指令 NOT指令 ? 功能说明 功能说明: 单操作数指令,对d进行按位取反(0变1,1变0)操作; d可以是通用寄存器或存储器操作数; NOT指令对标志寄存器各位均无影响; 逻辑运算指令 ? 说明 小结: 逻辑运算指令都是按位进行逻辑运算的,可以对字节或字进行逻辑运算; 逻辑运算指令可用于组合、分离、屏蔽、测试或设置某些位。 逻辑运算指令 ? 例子 例1:请分别写出实现下列要求的指令: ① 使AL中高4位清零,低4位不变; ② 使AL中低4位清零,高4位不变; ③ 使AL中最高位置1,其他位不变; ④ AL中低4位求反,其余各位不变。 逻辑运算指令 ? 例子 例2:请编制一程序段,将F寄存器中溢出位OF变反。 逻辑运算指令 ? 例子 例3:将AL清零,至少有以下几种方法,它们有何不同? ① MOV AL,00H ② AND AL,00H ③ XOR AL,AL 移位 循环指令 共有以下8条: SAL (shift arithmetic left) 算术左移 SAR (shift arithmetic right) 算术右移 SHL (shift logical left) 逻辑左移 SHR (shift logical right) 逻辑右移 ROL (Rotate left) 循环左移 ROR (Rotate right) 循环右移 RCL (Rotate left through carry) 带进位循环左移 RCR (Rotate right through carry)带进位循环右移 移位 循环指令 移位类指令的格式(详见表三①②) 〈移位指令〉 d, 〈Count〉 移位类指令的寻址方式 〈移位指令〉 reg/mem, 1/CL 移位 循环指令 移位指令执行的操作 (参见表三①) SHL , SAL和 SHR (d)左(右)移Count位,移出的位进入CF, 移位造成的空位补0 SAR (d) 最高位不变,(d)右移Count位,移出的位进入CF, 移位造成的空位用最高位值填补。 左右移位使乘,除2运算变得简
文档评论(0)