- 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)