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

Тема в разделе "WASM.BEGINNERS", создана пользователем Luzer, 17 ноя 2008.

  1. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    jmp bx
    jmp 500

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

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

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

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Phantom_84
    Операнд -- это операнд, та величина, над которой выполняется операция. А адресация -- это адресация, способ определения местонахождения операнда. И эти слова не являются синонимами.

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

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    "непосредственный операнд" - все же "непосредственное значение", как разновидность операнда
     
  4. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Терминология хитрая штука... я уже свыкся с мыслью что бит!=двоичный разряд, но многие термины звучат для меня непривычно %)
     
  5. Luzer

    Luzer New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2005
    Сообщения:
    95
    вот хрень :)
    а прямая регистровая тогда, чем отличается от косвенной регистровой?
    можно примеричики вида mov x,y:)
     
  6. Luzer

    Luzer New Member

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

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

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

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Luzer

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

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

    Luzer New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2005
    Сообщения:
    95
    чем на схеме отличается внутренний регистр процессора от регистра процессора просто?
     
  9. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Luzer
    По идее, ничем.
     
  10. Memphis

    Memphis New Member

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