Назначить ячейку памяти для регистрации сборки

Например, у меня есть четыре конкретных адреса памяти, каждый из которых содержит 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.

Другие вопросы по тегам