指令系统位运算或逻辑运算修改.pptxVIP

  • 55
  • 0
  • 约8.69千字
  • 约 60页
  • 2018-06-21 发布于上海
  • 举报
指令系统位运算或逻辑运算修改

位运算指令 类型 指 令 指令功能 表三 位运算指令列表 逻辑 运算 AND d, s OR d, s XOR d, s NOT d TEST d, s 算术左移 CF  0 算术右移 CF  逻辑左移 CF  0 逻辑右移  CF 0 SAL d, count SAR d, count SHL d, count SHR d, count 移位 d  d  s d  d  s d  d  s d  d d  s,不送结果 位运算指令 指令 类型 指 令 指令功能 表三 位运算指令列表 ( 续 ) ROL d, count ROR d, count RCR d, count RCL d, count 循环左移 CF  循环右移 CF  带进位循环左移 CF   CF 循环 带进位循环右移 逻辑运算指令 共有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位求反,其余各位不变。 解:① AND AL,0FH ② AND AL,0F0H ③ OR AL,80H ④ XOR AL,0FH 逻辑运算指令 • 例子 例2:请编制一程序段,将F寄存器中溢出位OF变反。 解:程序如下: PUSHF POP AX XOR AX,0800H PUSH AX POPF 逻辑运算指令 • 例子 例3:将AL清零,至少有以下几种方法,它们有何不同? ① MOV AL,00H ② AND AL,00H ③ XOR AL,AL 移位 循环指令 共有以下8条: SAL (shift arithmetic left) 算术左移 SAR (shift arithmetic r

文档评论(0)

1亿VIP精品文档

相关文档