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

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

上一主题 下一主题
离线speedboy
 

发帖
591
金钱
836
威望
1
贡献值
0
只看楼主 倒序阅读 使用道具 0 发表于: 昨天 20:19
汇编语言TEST指令:对两个操作数进行逻辑(按位)与操作 i{`FmrPO~  
JM x>][xD  
Mxyb5h  
TEST 指令在两个操作数的对应位之间进行 AND 操作,并根据运算结果设置符号标志位、零标志位和奇偶标志位。 C71qPb|$R  
18+)`M-5o  
OY;*zk  
TEST 指令与 AND 指令唯一不同的地方是,TEST 指令不修改目标操作数。TEST 指令允许的操作数组合与 AND 指令相同。在发现操作数中单个位是否置位时,TEST 指令非常有用。 9 ~]~#Uj  
gMWjk7  
/OLFcxEWh  
示例:多位测试 +a^nlW9g  
ST:A<Da"  
Ju96#v+:  
TEST 指令同时能够检查几个位。假设想要知道 AL 寄存器的位 0 和位 3 是否置 1,可以使用如下指令: 2+QYhdw  
test al, 00001001b ;测试位 0 和位 3 9Iwe2lu  
1IC~e^"  
bdC8zDD  
(本例中的 0000 1001 称为位掩码。)从下面的数据集例子中,可以推断只有当所有测试位都清 0 时,零标志位才置 1: M>~Drul  
0  0  1  0  0  1  0  1    <- 输入值 1.D,W1s  
0  0  0  0  1  0  0  1    <- 测试值 b:l P%|7  
0  0  0  0  0  0  0  1    <- 结果:ZF=0 pWK(z[D  
o0ifp=V y  
lQ" p !  
0  0  1  0  0  1  0  0    <- 输入值 D~hg$XzK  
0  0  0  0  1  0  0  1    <- 测试值 G,o6292hj  
0  0  0  0  0  0  0  0    <- 结果:ZF=1 K{|p~B  
*>|gxM8  
+ +M$#Er&  
标志位  gQ'zW  
TEST 指令总是清除溢出和进位标志位,其修改符号标志位、零标志位和奇偶标志位的方法与 AND 指令相同。 ^p[rc@+  
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线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 发表于: 11小时前
确实看不懂。
在线龍在天涯

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

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