Assembly 有人能给我解释一下下面的装配线吗&引用;和dword ptr[esi],0xFF“;
在汇编级语言任务中,我有以下代码行:Assembly 有人能给我解释一下下面的装配线吗&引用;和dword ptr[esi],0xFF“;,assembly,dword,Assembly,Dword,在汇编级语言任务中,我有以下代码行: and dword ptr[esi], 0xFF 根据我的理解,dword是32位,FF意味着我们将8位或1字节存储到ptr[esi]中,但什么是ptr,使用方括号引用我们的esi寄存器的目的是什么 另外,使用和如何改变行的含义 谢谢。你的问题与我的问题相似。可能会有帮助。类型不是由字符串的长度决定的,它是一个dword,因为您说它是做*esi&=0xff,也就是说它清除了前24位。如果你甚至不知道方括号的意思,你应该做些研究。谢谢你的链接,露西,我很难找
and dword ptr[esi], 0xFF
根据我的理解,dword是32位,FF意味着我们将8位或1字节存储到ptr[esi]
中,但什么是ptr
,使用方括号引用我们的esi
寄存器的目的是什么
另外,使用和如何改变行的含义
谢谢。你的问题与我的问题相似。可能会有帮助。类型不是由字符串的长度决定的,它是一个dword,因为您说它是做*esi&=0xff
,也就是说它清除了前24位。如果你甚至不知道方括号的意思,你应该做些研究。谢谢你的链接,露西,我很难找到任何与ands有关的东西。同时也感谢Jester的回复,不管它多么傲慢。@Jester*((dword*)esi)&=0xFF
casperf1:如果没有括号,和
指令将影响寄存器esi
中的值,如和esi,0xff
esi&=0xff代码>。而和
是行的关键部分,它是实际的指令,因此它完全改变/定义了行的含义。如果有mov
,和
是位算术运算,那么它就是“存储”。