Запутался в адресациях

Discussion in 'WASM.BEGINNERS' started by Luzer, Nov 17, 2008.

  1. Phantom_84

    Phantom_84 New Member

    Blog Posts:
    0
    Joined:
    Jun 6, 2007
    Messages:
    820
    jmp bx
    jmp 500

    GoldFinch, теперь, надеюсь, знаешь :)

    SII, применительно к команде mov обычно все-таки говорят "непосредственный операнд", а не "непосредственная адресация", но это не принципиально. Я не согласен с другим, а именно с тем, что ты противопоставляешь слова прямая и непосредственная, хотя они вполне могут дополнять друг друга. Прямая адресация - это противоположность косвенной, а непосредственная адресация - противоположность регистровой:

    jmp bx - (прямая) регистровая адресация
    jmp [bx] - косвенная регистровая адресация
    jmp 500 - (прямая) непосредственная адресация
    jmp [500] - косвенная непосредственная адресация
     
  2. SII

    SII Воин против дзена

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    Phantom_84
    Операнд -- это операнд, та величина, над которой выполняется операция. А адресация -- это адресация, способ определения местонахождения операнда. И эти слова не являются синонимами.

    Где это я что-то противопоставляю? Непосредственная -- не противоположность регистровой. Я привожу пример, а не противопоставляю.
     
  3. GoldFinch

    GoldFinch New Member

    Blog Posts:
    0
    Joined:
    Mar 29, 2008
    Messages:
    1,775
    "непосредственный операнд" - все же "непосредственное значение", как разновидность операнда
     
  4. GoldFinch

    GoldFinch New Member

    Blog Posts:
    0
    Joined:
    Mar 29, 2008
    Messages:
    1,775
    Терминология хитрая штука... я уже свыкся с мыслью что бит!=двоичный разряд, но многие термины звучат для меня непривычно %)
     
  5. Luzer

    Luzer New Member

    Blog Posts:
    0
    Joined:
    Jul 17, 2005
    Messages:
    95
    вот хрень :)
    а прямая регистровая тогда, чем отличается от косвенной регистровой?
    можно примеричики вида mov x,y:)
     
  6. Luzer

    Luzer New Member

    Blog Posts:
    0
    Joined:
    Jul 17, 2005
    Messages:
    95
    Уважаемые господа. Милые, умный друзья (крыша съехала моя, от того я так пишу)
    Вот совсем дело встало. Схемотехника покоя не дает. Спросить препода возможности нет пока. Может вы сможете объяснить
    вот оно: где первый операнд регистр, а второй константа
    Микрокоманды, предлагаемые для исполнения команды конъюнкция:
     извлечение из памяти программ кода команды;
     декодирование кода команды;
     формирование адреса РОНа приёмника;
     хранение адреса РОНа приёмника в служебном регистре (при схемотехнической необходимости);
     инкрементирование РСчК;
     извлечение из памяти программ константы;
     выполнение логической операции конъюнкция над содержимым РОНа и константы (Rd  К);
     загрузка промежуточного результата в служебный регистр (при схемотехнической необходимости);
     изменение состояния РФ;
     формирование адреса РОНа приёмника, указанного в служебном регистре;
     загрузка результата выполнения операции конъюнкция в РОН приёмник;
     инкрементирование РСчК;.
     переход к исполнению следующей команды.

    Собсно вопрос, вот я не тупой вроде, знаю, что инкрементировать счетчик это значит перейти к исполнению следующей команды, но каким тут макаром происходит два раза инкрементирование, во время исполнения одной команды!? И что служебный регистр, в который загружается промежуточный результат и остается там навеки(потому как он из регистра этого нигде далее не загружается)

    SII, ваш короткий ответ, по поводу некоторых адресаций дал мне много полезной информации... Еще бы предыдущий мой пост разоблачить :)
     
  7. SII

    SII Воин против дзена

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    Luzer

    "Прямая регистровая" -- это когда операнд лежит в регистре, а в коде команды задан номер этого регистра (ну или если регистр задан неявно, самим кодом операции -- как в "коротких" разновидностях MOV для EAX).

    А "косвенная регистровая" -- это когда в команде указан номер регистра, а операнд находится в памяти по адресу, содержащемуся в этом регистре.
     
  8. Luzer

    Luzer New Member

    Blog Posts:
    0
    Joined:
    Jul 17, 2005
    Messages:
    95
    чем на схеме отличается внутренний регистр процессора от регистра процессора просто?
     
  9. SII

    SII Воин против дзена

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    Luzer
    По идее, ничем.
     
  10. Memphis

    Memphis New Member

    Blog Posts:
    0
    Joined:
    Oct 23, 2008
    Messages:
    104
    Luzer
    инкрементировать счетчик это значит перейти к исполнению следующей команды, но каким тут макаром происходит два раза инкрементирование, во время исполнения одной команды!? - Так все просто, батенька. Команды имеют разную длину. Пример - CLC, CLD, DAA, XCHG AX,SI - эти зверушки ОДНОБАЙТОВЫЕ. Процессор делает выборку, декодирует КОП, видит, что команда однобайтная, исполняет ее, инкременирует программный счетчик. А вот 2-х байтовые зверушки - XOR AX,AX, DIV BX, MOV AX,SI. После декодирования КОПа проц обнаруживает, что команда многобайтная - значит, он обязан сделать столько инкрементов, из скольки байт состоит команда. Это гарантирует, что следующая выборка из памяти - это КОП.