При использовании MASM 6.15 в DOSBox, когда я пытаюсь сделать:
mov al, [cx]
или
mov al, [cx + bx]
или
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 не является базовым или индексным регистром.
Какова вся рабочая сущность оператора []?