Assembly 测试$1,%al在组装中做什么?

Assembly 测试$1,%al在组装中做什么?,assembly,x86,bitwise-and,Assembly,X86,Bitwise And,所以在%eax=x中有一个值 我有以下几句话: tests $1,%al je .L2 所以我知道它在做1&%al,如果相等,它会跳。我的问题是,给定%eax是x,那么%al是什么(我知道%al是最低有效字节。我想知道用x表示它是什么)。它等于1意味着什么?AL是EAX的最低有效字节 AL是EAX的最低有效字节 AL是EAX的最低有效字节 AL是EAX的最低有效字节 就x而言,%al实际上只是最低有效字节。您所做的只是查看“x的一部分”,或是对x的总值贡献高达255的部分。听起来可能很模糊 这

所以在%eax=x中有一个值

我有以下几句话:

tests $1,%al
je .L2

所以我知道它在做1&%al,如果相等,它会跳。我的问题是,给定%eax是x,那么%al是什么(我知道%al是最低有效字节。我想知道用x表示它是什么)。它等于1意味着什么?

AL是EAX的最低有效字节

AL是EAX的最低有效字节

AL是EAX的最低有效字节

AL是EAX的最低有效字节

就x而言,%al实际上只是最低有效字节。您所做的只是查看“x的一部分”,或是对x的总值贡献高达255的部分。听起来可能很模糊


这可能意味着x是奇数,因为它有一个最低有效值1,在这种情况下,你不必把x作为一个整体来看待。我无法得出任何其他强有力的结论

就x而言,%al实际上只是最低有效字节。您所做的只是查看“x的一部分”,或是对x的总值贡献高达255的部分。听起来可能很模糊


这可能意味着x是奇数,因为它有一个最低有效值1,在这种情况下,你不必把x作为一个整体来看待。我无法得出任何其他强有力的结论

就x而言,%al实际上只是最低有效字节。您所做的只是查看“x的一部分”,或是对x的总值贡献高达255的部分。听起来可能很模糊


这可能意味着x是奇数,因为它有一个最低有效值1,在这种情况下,你不必把x作为一个整体来看待。我无法得出任何其他强有力的结论

就x而言,%al实际上只是最低有效字节。您所做的只是查看“x的一部分”,或是对x的总值贡献高达255的部分。听起来可能很模糊

这可能意味着x是奇数,因为它有一个最低有效值1,在这种情况下,你不必把x作为一个整体来看待。我无法得出任何其他强有力的结论

EAX寄存器(累加器寄存器)在逻辑上可分为:

  • AX 2最低有效字节(16位)
  • AX的高字节
  • AX的AL低位字节(整体最低有效字节)
它的含义取决于使用累加器寄存器的内容

它通常用于IO访问、算术和中断

如果这是由某些C代码生成的,是否可以假设X的类型是一个字节,并且不需要在管道中发送更大的字进行比较?

EAX寄存器(累加器寄存器)在逻辑上可以分为:

  • AX 2最低有效字节(16位)
  • AX的高字节
  • AX的AL低位字节(整体最低有效字节)
它的含义取决于使用累加器寄存器的内容

它通常用于IO访问、算术和中断

如果这是由某些C代码生成的,是否可以假设X的类型是一个字节,并且不需要在管道中发送更大的字进行比较?

EAX寄存器(累加器寄存器)在逻辑上可以分为:

  • AX 2最低有效字节(16位)
  • AX的高字节
  • AX的AL低位字节(整体最低有效字节)
它的含义取决于使用累加器寄存器的内容

它通常用于IO访问、算术和中断

如果这是由某些C代码生成的,是否可以假设X的类型是一个字节,并且不需要在管道中发送更大的字进行比较?

EAX寄存器(累加器寄存器)在逻辑上可以分为:

  • AX 2最低有效字节(16位)
  • AX的高字节
  • AX的AL低位字节(整体最低有效字节)
它的含义取决于使用累加器寄存器的内容

它通常用于IO访问、算术和中断


如果这是从一些C代码生成的,那么是否可以假设X的类型是一个字节,并且不需要在管道中发送更大的字来进行比较?

为什么使用
C
gcc
标记?这是否与编译器生成的程序集有关?也许这会有助于查看相关的C源代码行。我正在从程序集生成C代码。我知道测试与if语句有关。如果
al
(因此
ax
eax
)是偶数,它将跳转。Danke!!这是因为奇数的al&1=1?为什么要使用
c
gcc
标记?这是否与编译器生成的程序集有关?也许这会有助于查看相关的C源代码行。我正在从程序集生成C代码。我知道测试与if语句有关。如果
al
(因此
ax
eax
)是偶数,它将跳转。Danke!!这是因为奇数的al&1=1?为什么要使用
c
gcc
标记?这是否与编译器生成的程序集有关?也许这会有助于查看相关的C源代码行。我正在从程序集生成C代码。我知道测试与if语句有关。如果
al
(因此
ax
eax
)是偶数,它将跳转。Danke!!这是因为奇数的al&1=1?为什么要使用
c
gcc
标记?这是否与编译器生成的程序集有关?也许这会有助于查看相关的C源代码行。我正在从程序集生成C代码。我知道测试与if语句有关。如果
al
(因此
ax
eax
)是偶数,它将跳转。Danke!!这是因为奇数的al&1=1,所以这类似于
(x&0x0FF)