Я так понимаю что Код (Text): mov ax, [bx+2] - это регистровая косвенная адресация и здесь в ax посылается содержимое находящиеся по адресу bx+2 mov ax, [bx] + 2 - это тоже регистровая косвенная адресация и здесь в ax посылается содержимое по адресу, который находиться в bx, и к этому содержимому прибавляеться двойка правильно понимаю? Второй вопрос: В чем отличие команд mov ax, [bx][si] и mov ax, [si][bx]? тут я не знаю, скажите в чем?
mov ax, [bx][si] == mov ax, [bx+si] - в ax посылается адрес содержимого памяти, расположенное по адресу [bx+si] mov ax, [si][bx] == mov ax, [si+bx] - в ax посылается адрес содержимого памяти, расположенное по адресу [si+bx] наверное так.
mov ax,[bx+2] == mov ax,[bx]+2 mov ax,[si][bx] == mov ax,[bx][si] Просто разные варианты записи команды
fredi Любое выражение можно заключить в квадратные скобки, от этого смысл не изменится, но снятие квадратных скобок может изменить смысл. MOV CX,[2] MOV CX,[A] MOV CX,[A+2[BX]] Запись рядом двух выражений в квадратных скобках означает сумму этих выражений. [X][Y]=[X]+[Y]=[X+Y] При использовании этих соглашений вместе со свойством коммутативности сложения можно получить новые варианты записи адресов. Эквивалентные формы записи одного и того же адреса: A+1, [A+1], [A]+[1], [A][1], A[1], 1[A], [A]+1, … Aspire Код эквивалентный mov ax, [si][bx] может быть и 8B00h и 8B400h и 8B800000h