Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 有人能给我解释一下下面的装配线吗&引用;和dword ptr[esi],0xFF“;_Assembly_Dword - Fatal编程技术网

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
是位算术运算,那么它就是“存储”。