В чем отличие команд mov ax, [bx+2] и mov ax, [bx] + 2?

Тема в разделе "WASM.BEGINNERS", создана пользователем fredi, 22 май 2008.

  1. fredi

    fredi New Member

    Публикаций:
    0
    Регистрация:
    22 май 2008
    Сообщения:
    1
    Я так понимаю что
    Код (Text):
    1. mov ax, [bx+2] - это регистровая косвенная адресация и здесь в ax посылается содержимое находящиеся по адресу bx+2
    2. mov ax, [bx] + 2 - это тоже регистровая косвенная адресация и здесь в ax посылается содержимое по адресу, который находиться в bx,
    3.  и к этому содержимому прибавляеться двойка
    правильно понимаю?

    Второй вопрос:
    В чем отличие команд mov ax, [bx][si] и mov ax, [si][bx]?
    тут я не знаю, скажите в чем?
     
  2. irrona

    irrona Member

    Публикаций:
    0
    Регистрация:
    26 май 2004
    Сообщения:
    178
    Адрес:
    Тирасполь
    mov ax, [bx][si] == mov ax, [bx+si] - в ax посылается адрес содержимого памяти, расположенное по адресу [bx+si]

    mov ax, [si][bx] == mov ax, [si+bx] - в ax посылается адрес содержимого памяти, расположенное по адресу [si+bx]

    наверное так.
     
  3. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    fredi
    После компиляции код2==код1
    (masm32)
     
  4. rudik

    rudik Руденко Артём

    Публикаций:
    0
    Регистрация:
    6 дек 2006
    Сообщения:
    302
    Адрес:
    г. Харьков
    mov ax,[bx+2] == mov ax,[bx]+2
    mov ax,[si][bx] == mov ax,[bx][si]

    Просто разные варианты записи команды
     
  5. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    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;)