通过偏移量从数据段移动值

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]

只有bxbp可以用这种方式作为寻址内存时的基址寄存器。 ax 通常用于 store/accumulate 值用于其他目的。

顺便说一下,您的变量大小为 "byte",但您正在将它们的值移动到大小为 "word" 的寄存器中。您可以通过两种方式修复它:

var1 DW 3     ;◄■■ USE A WORD SIZE VARIABLE.

mov al, [bx]  ;◄■■ USE A BYTE SIZE REGISTER.