通过偏移量从数据段移动值
move the values from data segment via offset
我有数据段
dataseg segment para 'data'
var1 db 3
var2 db 5
dataseg ends
我正在尝试移动值,即
mov ax, offset var2
mov bx, [ax]
但是没用
在16位实模式下,括号之间不允许使用ax
(作为基址寄存器),但是bx
是:
mov bx, offset var2 ;◄■■ BX INSTEAD OF AX.
mov ax, [bx]
只有bx
和bp
可以用这种方式作为寻址内存时的基址寄存器。 ax
通常用于 store/accumulate 值用于其他目的。
顺便说一下,您的变量大小为 "byte",但您正在将它们的值移动到大小为 "word" 的寄存器中。您可以通过两种方式修复它:
var1 DW 3 ;◄■■ USE A WORD SIZE VARIABLE.
或
mov al, [bx] ;◄■■ USE A BYTE SIZE REGISTER.
我有数据段
dataseg segment para 'data'
var1 db 3
var2 db 5
dataseg ends
我正在尝试移动值,即
mov ax, offset var2
mov bx, [ax]
但是没用
在16位实模式下,括号之间不允许使用ax
(作为基址寄存器),但是bx
是:
mov bx, offset var2 ;◄■■ BX INSTEAD OF AX.
mov ax, [bx]
只有bx
和bp
可以用这种方式作为寻址内存时的基址寄存器。 ax
通常用于 store/accumulate 值用于其他目的。
顺便说一下,您的变量大小为 "byte",但您正在将它们的值移动到大小为 "word" 的寄存器中。您可以通过两种方式修复它:
var1 DW 3 ;◄■■ USE A WORD SIZE VARIABLE.
或
mov al, [bx] ;◄■■ USE A BYTE SIZE REGISTER.