论坛风格切换切换到宽版
  • 42阅读
  • 6回复

[其他]汇编语言TEST指令简介 [复制链接]

上一主题 下一主题
在线speedboy
 

发帖
591
金钱
836
威望
1
贡献值
0
只看楼主 倒序阅读 使用道具 0 发表于: 昨天 20:19
汇编语言TEST指令:对两个操作数进行逻辑(按位)与操作 Jf0i$  
0*9xau{(  
?Bl/bY$*h  
TEST 指令在两个操作数的对应位之间进行 AND 操作,并根据运算结果设置符号标志位、零标志位和奇偶标志位。 NZ0?0*  
ywkRH  
,!LY:pMK  
TEST 指令与 AND 指令唯一不同的地方是,TEST 指令不修改目标操作数。TEST 指令允许的操作数组合与 AND 指令相同。在发现操作数中单个位是否置位时,TEST 指令非常有用。 $.:x3TsA  
#U7pT! F x  
* hS6F  
示例:多位测试 }N).$  
AaoS & q  
|Ldvfd  
TEST 指令同时能够检查几个位。假设想要知道 AL 寄存器的位 0 和位 3 是否置 1,可以使用如下指令: M# -E  
test al, 00001001b ;测试位 0 和位 3 q_ryW$/_  
$uJc/  
C"mWO Y2]  
(本例中的 0000 1001 称为位掩码。)从下面的数据集例子中,可以推断只有当所有测试位都清 0 时,零标志位才置 1: ]h&1|j1  
0  0  1  0  0  1  0  1    <- 输入值 s$(%?,yf2  
0  0  0  0  1  0  0  1    <- 测试值 $-~"G,;F  
0  0  0  0  0  0  0  1    <- 结果:ZF=0 I}5e{jBB  
A L^tUcl  
tJn"$A ^N  
0  0  1  0  0  1  0  0    <- 输入值 f [.'V1  
0  0  0  0  1  0  0  1    <- 测试值 Ctn?O~u  
0  0  0  0  0  0  0  0    <- 结果:ZF=1 /3tEr c'  
5o>*a>27,A  
>;bym)  
标志位 dLF* 'JjY  
TEST 指令总是清除溢出和进位标志位,其修改符号标志位、零标志位和奇偶标志位的方法与 AND 指令相同。 $$W2{vr7+  
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
在线speedboy

发帖
591
金钱
836
威望
1
贡献值
0
只看该作者 1 发表于: 昨天 20:20
占楼备用
离线weikun444

发帖
47
金钱
127
威望
0
贡献值
0
只看该作者 2 发表于: 昨天 21:31
大佬还在学习备忘,辛苦了。
离线51ed

发帖
122
金钱
699
威望
0
贡献值
0
只看该作者 3 发表于: 昨天 22:38
有点深奥,纯粹支持一下!
在线duo5

发帖
432
金钱
2045
威望
0
贡献值
0
只看该作者 4 发表于: 9小时前
确实看不懂。
离线龍在天涯

发帖
237
金钱
873
威望
0
贡献值
0
只看该作者 5 发表于: 9小时前
虽然看不懂,但还是要来顶一下大佬
在线addre

发帖
27
金钱
12985
威望
0
贡献值
0
只看该作者 6 发表于: 33分钟前
有点深奥,纯粹支持一下!
快速回复
限100 字节
 
上一个 下一个