以下代码
section .data
Snippet db "KANGAROO"
section .text
global_start
_start:
mov ebx, Snippet
add byte [ebx], 32
Run Code Online (Sandbox Code Playgroud)
将 32 添加到 BX 中的内存地址所指的数字。但是,add 后的字节说明符是什么?我的书说这意味着我们只向 EBX 中的内存地址写入一个字节。但我不太明白这意味着什么(我是汇编程序的初学者)。将一个字节写入内存地址是什么意思?写入多于一个字节是什么意思?
byte [EBX],或者在微软汇编程序的情况下,byte ptr [EBX] 告诉汇编程序 EBX 是指向字节大小变量的指针。只有在使用立即数作为操作数时才需要像这样定义指针的类型。如果使用寄存器作为操作数,则汇编器假定大小与寄存器相同,例如 mov [ebx],al,或 mov [ebx],ax,或 mov[ebx],eax。