文章天堂的颜色:关于汇编方面的问题!高手来!

来源:百度文库 编辑:高校问答 时间:2024/04/28 00:58:11
test byte ptr ss:[esp+4],1

是什么意思? 有没有什么跟他意思一样的句子? 我是菜菜..希望大侠门介绍的清出一些 谢谢了!
感谢大家的解释 但是有没有什么句子可以代替这一句呢?

test byte ptr ss:[esp+4],1这句就是对目的操作数进行测试,进行的运算方式是与逻辑运算,这里测试的是目的操作数的第一位是否为1
byte ptr就是将目的操作数定义为字节大小
ss:表示将esp+4规定到堆栈段ss,具体计算就是ss*10h+esp+4然后取结果的内容与1按位与计算,整个指令不会影响到源操作数和目的操作数,只会影响到标志位,然后根据标志位的情况来进行跳转。
如果你只是希望依靠标志位作后面跳转的判断的话,而不关心目的操作数的改变,你可以使用
and byte ptr ss:[esp+4],1效果是一样的,原因就是这个也是按位与运算的。
希望我的回答对你有帮助

test byte ptr ss:[esp+4],1
我是初学者,也不太懂汇编!
先解释一下里面的各个词语!
test是一条指令!它将后面的两个数进行相与,看结果是否为零!但它不影响源操作数和目底操作数!只影响标志位!通常后面紧跟着条件转移指令!

byte ptr 说明它后面跟着的数为一个字节!也就是一个八位的二进制数!
ss说明这个数是在堆栈段中!
esp是一个变量的初始地址!esp就是地址!
现在就可以说是将1与这个数相与!检查结果是否为零!然后进行下面的操作!

将ss段与esp变量相对加4地址做取字节处理后,取出数值与1进行减法,同时改变符号寄存器cf

好像没有别的语句能实现这个功能的

这是进行位检测吧