写入存储在寄存器中的地址

时间:2014-07-21 10:33:54

标签: assembly nasm x86-16

这就是我想要做的事情:

我想写一个存储在寄存器中的地址,这样我就可以这样使用它了;

mov bx, STRING
add bx, 0x1

;and here I want to write a value the the address in bx

STRING: db "abcdefghijklmnopqrstuvwxyz"

我可以理解可能有一个简单的指令,但我找不到它。

我使用的是NASM汇编程序的16位处理器。

1 个答案:

答案 0 :(得分:5)

引用位于寄存器bx中包含的地址的内存的正确方法是[bx]。因此,如果您想获取另一个寄存器中包含的值并将其存储在[bx],您将使用:

mov [bx],al
mov [bx],dx
mov [bx],ecx
; ..etc..

您还可以直接存储立即值:

mov byte [bx],0
mov byte [bx],'A'
mov word [bx],0x1234
; ..etc..

请注意大小前缀(byteword等),它用于告诉汇编程序立即操作数的大小。当将immediates直接写入内存时,这是必要的,因为只写mov [bx],0这样的内容会有些模棱两可。