При использовании MASM 6.15 под DOSBox всякий раз, когда я пытаюсь сделать:
mov al, [cx]
or
mov al, [cx + bx]
or
mov al, [cx + 4]
Я получаю сообщение об ошибке: «Разрешены только базовые или индексные регистры».
Но опять же, допустим, у меня есть массив var1. Если я сделаю:
.model small
.stack 4096
.data
var1 BYTE 1, 2, 3, 4, 5, 6, 7, 8, 9
.code
main proc
mov ax, @data
mov ds, ax
mov cx, 5
mov al, [var1 + cx]
mov ah, 4Ch
int 21h
main endp
end main
Он отлично работает. Почему он не дает ту же ошибку, что и выше? CX не является базовым или индексным регистром.
В чем вся рабочая суть оператора []?
jwasm -mz file.asm
, который сгенерируетfile.obj
, который затем можно слинковать с помощью сегментированного компоновщика DOS. 22.10.2018