Назначить ячейку памяти для регистрации сборки
Например, у меня есть четыре конкретных адреса памяти, каждый из которых содержит 32-разрядное целое число. Как бы вы использовали язык ассемблера, чтобы взять адрес и назначить его? %eax
?
Будет ли это movl 0x12AED567, %eax
?
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 ассемблер с синтаксисом Intel.