Results 1 to 6 of 6

Thread: register indirect mode в Ассемблере

  1. #1
    Forum Master
    Join Date
    Aug 2004
    Posts
    413

    Default register indirect mode в Ассемблере

    разрешено ли такое объявление?:

    mov CX, [EAX]
    mov [EAX], CX

    или

    mov W1, [EAX]
    mov [EAX],W1
    считая, что W1 не doubleword (word or byte)

    По-русски, в чем принципиальное различие между direct и indirect access mode ?
    Не могу найти примеры неправильного описания и причин непозволительных описаний

  2. #2
    Forum Hero Yura717's Avatar
    Join Date
    Dec 2004
    Location
    科羅拉多EE. UU.
    Posts
    5,847

    Default Re: register indirect mode в Ассемблере

    Quote Originally Posted by posterise
    разрешено ли такое объявление?:

    mov CX, [EAX]
    mov [EAX], CX

    или

    mov W1, [EAX]
    mov [EAX],W1
    считая, что W1 не doubleword (word or byte)

    По-русски, в чем принципиальное различие между direct и indirect access mode ?
    Не могу найти примеры неправильного описания и причин непозволительных описаний

    2.1.4.2 Indirect addressing modes

    Recall that the 80386 offers the programmer a choice of one of five indirect
    addressing modes when writing an instruction: they are "immediate indirect",
    "register indirect", "base register + offset indirect", "index register *
    width + offset indirect", and "base register + index register * width + offset
    indirect". Table 3 illustrates an example instruction from each of these
    categories in both formats.

    +-------------+-------------------
    | Mode | Intel | |
    +-------------+-------------------
    | Immediate | MOV EAX, [0100]
    | Register | MOV EAX, [ESI]
    | Reg + Off | MOV EAX, [EBP-8] |
    | R*W + Off | MOV EAX, [EBX*4 + 0100] |
    | B + R*W + O | MOV EAX, [EDX + EBX*4 + 8] |
    +-------------+----------------------------+--
    Table 3. The five 80386 indirect addressing modes and their syntax.


    http://webster.cs.ucr.edu/AoA/DOS/ch04/CH04-2.html
    Last edited by Yura717; 06-08-2006 at 01:57 PM.

  3. #3
    Forum Master
    Join Date
    Aug 2004
    Posts
    413

    Default Re: register indirect mode в Ассемблере

    Я была на этой странице в этом пункте:
    http://webster.cs.ucr.edu/AoA/DOS/ch...tml#HEADING3-5

    Вроде как написано что такая форма позволена - legal forms
    mov al, [eax]

    Логически вроде должно проходить и с объектами в памяти, переменными как бы, типа BYTE( 8 ), и как я понимаю, типа WORD(16) тоже (и с регистрами ax,bx и т.д.). Но правильно ли это ? Хотелось найти в Инете контр-пример, который бы показал случаи в которых так и так нельзя. Но вот как раз их-то и не могу найти.

  4. #4
    Forum Hero Yura717's Avatar
    Join Date
    Dec 2004
    Location
    科羅拉多EE. UU.
    Posts
    5,847

    Default Re: register indirect mode в Ассемблере

    Quote Originally Posted by posterise
    Я была на этой странице в этом пункте:
    http://webster.cs.ucr.edu/AoA/DOS/ch...tml#HEADING3-5

    Вроде как написано что такая форма позволена - legal forms
    mov al, [eax]

    Логически вроде должно проходить и с объектами в памяти, переменными как бы, типа BYTE( 8 ), и как я понимаю, типа WORD(16) тоже (и с регистрами ax,bx и т.д.). Но правильно ли это ? Хотелось найти в Инете контр-пример, который бы показал случаи в которых так и так нельзя. Но вот как раз их-то и не могу найти.
    загрузите exe -шник в debugger и посмотрите.... думаю Вы знаете в чем разница между машинном кодом и ассемлером Когда то изучал ассемлер..
    написал программу на машинном коде которая выводила на зкран "Hello,world!" размер программы был 23 байта (СОМ формат под DOS)
    а если откомпилировать в среде ассемлера размер будет больше

  5. #5
    Forum Master
    Join Date
    Aug 2004
    Posts
    413

    Default Re: register indirect mode в Ассемблере

    Quote Originally Posted by Yura717
    загрузите ехе -шник в дебуггер и посмотрите.... думаю Вы знаете в чем разница между машинном кодом и ассемлером Когда то изучал ассемлер..
    написал программу на машинном коде которая выводила на зкран "Хелло,щорлд!" размер программы был 23 байта (СОМ формат под ДОС)
    а если откомпилировать в среде ассемлера размер будет больше
    ок, спасибо, anyway,
    да, практический эксперимент, конечно, - всегда точное решение

  6. #6
    Forum Master
    Join Date
    Aug 2004
    Posts
    413

    Default Re: register indirect mode в Ассемблере

    Ну в общем я уже проверила на практике что, как и почему получается, все ясно и понятно, можно тему закрыть

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Russian America Top. Рейтинг ресурсов Русской Америки. Terms of Service | Privacy Policy Рейтинг@Mail.ru