新手请教,如何给eax指向的值赋值。
新手请教:如果想给eax中赋值为0,写:move eax,0 就可以了。
但我是想给eax指向的值中赋值0,比如eax中的值为0x3F29E83D,我想给eax指向的0x3F29E83D赋值为0,怎么写这个汇编代码呢?
xor ebx,ebx
mov dword ptr ds:,ebx scncrenyong 发表于 2022-7-18 16:15
xor ebx,ebx
mov dword ptr ds:,ebx
可以解释一下吗?谢谢兄弟。 muzhiguniang 发表于 2022-7-18 18:00
可以解释一下吗?谢谢兄弟。
百度搜汇编 中括号 eax是数值,是地址
假设ebx=1E8E000C,
内存地址1E8E000C储存的内容是0000
mov eax,ebx
得到eax是1E8E000C
mov eax,
得到的eax是0000
lea:般都是从内存取出地址传递给寄存器
mov:将个值(这个值可能在内存,也可能在寄存器)传递给另外个容器(可以是寄存器,可以是内存)
1.比如 mov eax,,会把ebx+ecx*4h-20h计算的结果当成一个内存地址,然后去内存把该地址的内容取出送往eax。
2.如果我们只是想得到算术运算结果怎么办呢?这时候就可以用到LEA指令了。
因为LEA后面接内存地址符[]会把地址,而不是地址里的内容送入寄存器。比如,
我们想计算ebx+ecx*4h-20h的结果,就可以这样写:
lea eax,。
当然如果不用lea指令也可以达到目的,不过那样写起来就麻烦多了:
imul ecx, 4
add ebx, ecx
sub ebx, 20h
mov eax, ebx
页:
[1]