让我们举例说,我有四个特定的内存地址,每个地址都包含一个32位整数。您如何使用汇编语言获取地址并为其分配注册%eax
?
是movl 0x12AED567, %eax
吗?
答案 0 :(得分:1)
是的,就这么简单。如果您已经拥有地址,只需将它们分配给eax,我会稍微纠正您的代码:
mov 12AED567h, eax
但是,如果你想动态获取地址,你必须使用 lea 指令,下一个小程序会显示如何:
.stack 100h
.data
my_number dd A01Ch
.code
;INITIALIZE DATA SEGMENT.
mov ax,@data
mov ds,ax
;GET THE MEMORY ADDRESS OF MY_NUMBER, NOT THE NUMBER ITSELF.
lea eax, my_number
;FINISH THE PROGRAM PROPERLY.
mov ax,4c00h
int 21h
这是你在找什么?
顺便说一句,这是8086汇编程序,采用英特尔的语法。