你好,我是汇编语言的新手。我试图使用DOSBOX和MASM compilor获取变量m的内存位置这是代码
.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
如何找到所有这些变量的内存地址?你可以看到图像中的错误
答案 0 :(得分:1)
使用OFFSET
修饰符,例如:
mov ax, OFFSET VARA
将VARA
的地址加载到ax
寄存器中。您也可以使用LEA
指令来实现相同的目标:
lea ax, VARA