论坛风格切换切换到宽版
  • 50阅读
  • 7回复

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

上一主题 下一主题
离线speedboy
 

发帖
591
金钱
836
威望
1
贡献值
0
只看楼主 倒序阅读 使用道具 0 发表于: 昨天 20:19
汇编语言TEST指令:对两个操作数进行逻辑(按位)与操作 EXFxiw  
^[Er%yr0  
"AK3t' jF*  
TEST 指令在两个操作数的对应位之间进行 AND 操作,并根据运算结果设置符号标志位、零标志位和奇偶标志位。 @ :4Kk 4g1  
3ElpS^ 2W  
9c7 }-Go  
TEST 指令与 AND 指令唯一不同的地方是,TEST 指令不修改目标操作数。TEST 指令允许的操作数组合与 AND 指令相同。在发现操作数中单个位是否置位时,TEST 指令非常有用。 YPy))>Q>cK  
?W|IC8~d')  
eztk$o  
示例:多位测试 @ty|HXW  
fBOPd =  
.nH /=  
TEST 指令同时能够检查几个位。假设想要知道 AL 寄存器的位 0 和位 3 是否置 1,可以使用如下指令: >oNk(. %  
test al, 00001001b ;测试位 0 和位 3 XfrnM^oty  
85{vz|(':  
bX(*f>G'  
(本例中的 0000 1001 称为位掩码。)从下面的数据集例子中,可以推断只有当所有测试位都清 0 时,零标志位才置 1: ~+C#c,Nw  
0  0  1  0  0  1  0  1    <- 输入值 e d*AU,^@v  
0  0  0  0  1  0  0  1    <- 测试值 U[D<%7f  
0  0  0  0  0  0  0  1    <- 结果:ZF=0 ;2|H6IN"  
(*x "6)`  
<"+C<[n.  
0  0  1  0  0  1  0  0    <- 输入值 8)!;[G|  
0  0  0  0  1  0  0  1    <- 测试值 ZO 1J";>u  
0  0  0  0  0  0  0  0    <- 结果:ZF=1 {LD8ie|x1`  
bN&da [K  
r?I(me,  
标志位 ,s76]$%4  
TEST 指令总是清除溢出和进位标志位,其修改符号标志位、零标志位和奇偶标志位的方法与 AND 指令相同。 pzr-}>xrZ  
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线speedboy

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

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

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

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

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

发帖
27
金钱
12985
威望
0
贡献值
0
只看该作者 6 发表于: 4小时前
有点深奥,纯粹支持一下!
离线osforum1

发帖
68
金钱
85
威望
0
贡献值
0
只看该作者 7 发表于: 2小时前
好久没有接触了,看起来唠嗑又大又痛。
快速回复
限100 字节
 
上一个 下一个