所以 %eax = x 中有一个值。
我有以下几行:
tests $1,%al
je .L2
所以我知道它正在做 1&%al 然后如果相等则跳转。我的问题是什么是 %al 给定 %eax 是 x (我知道 %al 是最低有效字节。我想知道它在 x 方面是什么)。它等于1是什么意思?
所以 %eax = x 中有一个值。
我有以下几行:
tests $1,%al
je .L2
所以我知道它正在做 1&%al 然后如果相等则跳转。我的问题是什么是 %al 给定 %eax 是 x (我知道 %al 是最低有效字节。我想知道它在 x 方面是什么)。它等于1是什么意思?
就 x 而言,%al 实际上只是最低有效字节。您正在做的只是查看“x 的一部分”,或者对 x 的总值贡献高达 255 的值的部分。可能听起来很模糊。
这可能意味着 x 是奇数,因为它的最低有效值为 1,在这种情况下,您不必将 x 视为一个整体。我无法安全地得出任何其他强有力的结论。
EAX寄存器(累加器寄存器)在逻辑上可以分为:
这意味着什么取决于使用您的累加器寄存器的内容。
它通常用于 IO 访问、算术和中断。
如果这是从某些 C 代码生成的,是否可以假设 X 的类型是一个字节,并且您不需要在管道中发送更大的字进行比较?
AL 是 EAX 的最低有效字节。