assembly - `test` 指令是如何工作的?

标签 assembly x86 bit-manipulation bitwise-operators instructions

如果我们有:

test dword ptr [eax], 2000h
je label1:

除了 0 之外还有其他值吗?在 dword ptr [eax]那会让跳跃发生吗?

最佳答案

使用说明 测试 指令,唯一的区别是结果不会存储回目标操作数。
所以答案是肯定的。所有没有在内存地址 [eax] 上设置第 13 位的二进制数,或所有存在的数字,如 b'xxxxxxxx xxxxxxxx xx0xxxxx xxxxxxxx',其中 x 是 0 或 1,正好有 2^31 个数字。

关于assembly - `test` 指令是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4458368/

相关文章:

linux - 分段故障 cmovl

assembly - 为什么我们使用字节寻址而不是字寻址?

通过引用传递参数时在汇编器 x86 中实现的 C 函数

c++ - 操作结果未分配给变量?

html - 将十六进制 HTML 颜色转换为 Amiga colorregister hex(并返回)

assembly - x86 汇编中寄存器上使用的入栈/出栈指令的功能是什么?

linux - 在 Linux 中编译/运行汇编程序?

go - 为什么在 golang 中左移 64 位不会溢出?

javascript - 如何在 javascript 中对超过 32 位的变量进行按位 AND 操作?

c - 如何以编程方式模拟较低的处理器频率?