这是我想做的:

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

mov bx, STRING
add bx, 0x1

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

STRING: db "abcdefghijklmnopqrstuvwxyz"


我可以理解,对此可能有一个简单的说明,但找不到。

我正在使用NASM汇编器使用16位处理器。

最佳答案

引用位于寄存器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等),用于告诉汇编程序立即操作数应为多少大小。当直接将立即数写入内存时,这是必需的,因为仅编写mov [bx],0之类的内容将是模棱两可的。

关于assembly - 写入存储在寄存器中的地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24863010/

10-11 15:40