Вопрос на засыпку IN/OUT

Тема в разделе "WASM.BEGINNERS", создана пользователем _NB_, 10 июл 2008.

  1. _NB_

    _NB_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2008
    Сообщения:
    1
    Знаем и в частности в книге П.Абеля читаем:

    ============================================
    Номер порта можно указывать статически или динамически:
    1. Статическое указание порта возможно при непосредственном использовании значения от 0 до 255:

    Ввод: IN AL, порт# ;Ввод одного байта
    Вывод: OUT порт#,АХ ;Вывод одного слова

    2. Динамическое указание порта устанавливается в регистре DX от 0 до 65535. Этот метод удобен для последовательной обработки нескольких портов. Значение в регистре DX в этом случае увеличивается
    в цикле на 1. Пример ввода байта из порта 60Н:

    MOV DX,60H ;Порт 60Н (клавиатура)
    IN AL,DX ;Ввод байта
    =============================================

    Собственно вопрос - А почему именно так? Т.е. почему от 0..255 можно непосредственно в команде, а больше нельзя?
     
  2. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    Это наследство от 8-битных процессоров i8080 - i8088
     
  3. Vilco

    Vilco Vitaly

    Публикаций:
    0
    Регистрация:
    5 мар 2007
    Сообщения:
    190
    Адрес:
    Nsk, Russia
    1 байт отведен на непосредственные данные или 1 байт - постбайт, в котором указывается, что используется именно dx, а в dx влезает 2 байта уже