Здравствуйте, новый язык ассемблера. Я пытаюсь получить место в памяти для переменных м с помощью DOSBox и MASM compilor Вот кодНайти расположение памяти переменных с использованием языка ассемблера
.model small
.stack 100H
.data
VARA BYTE 10 ;address is DS:xxxx
VARB BYTE 0BH ;address is DS:xxxx+1
VARC WORD ?
VARD SBYTE ?
VARE DWORD ?
ARR BYTE 20 DUP(?)
VARF SWORD 010B
ARRB WORD 10 DUP(?)
VARZ BYTE 0
.CODE
MAIN PROC
mov ax,@data
mov ds,ax
mov ax,offset VARA
mov ah,09
int 21h
mov ax,offset VARB
mov ah,09
int 21h
mov ax,offset VARC
mov ah,09
int 21h
mov ax,offset VARD
mov ah,09
int 21h
mov ax,offset VARE
mov ah,09
int 21h
mov ax,offset ARR
mov ah,09
int 21h
mov ax,offset VARF
mov ah,09
int 21h
mov ax,offset ARRB
mov ah,09
int 21h
mov ax,offset VARZ
mov ah,09
int 21h
mov ah,4ch
int 21h
main endp
end main
Как я могу найти адрес памяти для всех этих переменных? U можно увидеть ошибку в изображении
Вы можете попробовать скомпилировать его с '/ L' опцией командной строки для MASM для создания списка файлов, где я думаю, что адреса будут видны тоже (в виде смещений в сегменте данных абсолютный истинный физический адрес неизвестен до тех пор, пока бинарный файл не будет загружен в память и динамически связан с его целевой позицией от загрузчика). – Ped7g
Об ошибке: измените 'VARA BYTE 10' (спецификатор размера) на' VARA DB 10' (директива define byte) и т. Д. ('DW' для' WORD' и 'SWORD',' DD' для 'DWORD') https://msdn.microsoft.com/en-us/library/8f6k0he8.aspx – Ped7g
@ ped7g после исправления этого на db ошибок нет, но на экране нет вывода – abd