Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы по ЛР5_8 Рейтинг 2 СП - ответы.doc
Скачиваний:
1
Добавлен:
16.09.2019
Размер:
77.82 Кб
Скачать

Лр 8 (с повторами для каждого варианта)

  1. Какую функцию выполняет команда LEA? Load effective address, вычисляет 16- или 32-разрядный текущий адрес операнда в памяти и загружает его в регистр общего назначения. Вычисляет адрес во время выполнения программы.

  2. Какую функцию выполняет команда LES? Загружает содержимое памяти одновременно в сегментный регистр ES и указанный в первом операнде регистр общего назначения.

  3. Какую функцию выполняет команда LDS? Загружает содержимое памяти одновременно в сегментный регистр DS и указанный в первом операнде регистр общего назначения.

  4. Что такое ближний (NEAR) и дальний (FAR) адрес? Короткий адрес – адрес смещения, относительно начала сегмента, без указания самого сегмента.

  5. Как задается ближний (NEAR) и дальний (FAR) адрес? Длинный адрес – адрес, состоящий из пары сегмент:смещение.

  6. Поясните назначение регистров IP и EIP? В чем их отличие? IP – instruction pointer, содержит адрес команды. Отличаются разрядностью (16, 32).

  7. Поясните назначение регистров AX и EAX? В чем их отличие? AX – аккумулятор для операндов и результатов. Отличаются разрядностью (16, 32).

  8. Поясните назначение регистров BX и EBX? В чем их отличие? BX – указатель на данные в DS. Отличаются разрядностью (16, 32).

  9. Поясните назначение регистров CX и ECX? В чем их отличие?, CX – счётчик для операций со строками и циклов. Отличаются разрядностью (16, 32).

  10. Поясните назначение регистров DX и EDX? В чем их отличие? DX – указатель для ввода и вывода. Отличаются разрядностью (16, 32).

  11. Какие способы вы можете назвать для очистки экрана (минимум 2)? MOV AH, 03; int 10h; Изменить режим отображения или MOV AH, 07h; MOV AL, 00h ; 00h очистит весь экран.

  12. Как организовать в программе Ассемблера вложенный цикл (с помощью 2-х команд LOOP)? Перед началом вложенного цикла надо сохранить значение CX в стеке, а по его окончании – вынуть из стека.

  13. Как при выводе дампа памяти проверить выход за границу сегмента? Если смещение = FFFF, то: при цикличном дампе обнуляем смещение; при нецикличном прибавляем к сегментному регистру 1000.

  14. Поясните назначение регистров IP и EIP? В чем их отличие?

  15. Поясните назначение регистров AX и EAX? В чем их отличие?

  16. Поясните назначение регистров BX и EBX? В чем их отличие?

  17. Поясните назначение регистров CX и ECX? В чем их отличие?

  18. Поясните назначение регистров DX и EDX? В чем их отличие?

  19. Какую функцию выполняет команда LEA?

  20. Какую функцию выполняет команда LES?

  21. Какую функцию выполняет команда LDS?

  22. Доп. В чем отличие между 16-ти и 32-ти разрядными приложениями? Одни используют только 16-ти разрядные регистры, а другие могут и использовать и те и другие. Это влияет на доступную программе память (адресное пространство ограничено размером двух регистров).

  23. Доп. Какие компиляторы нужно использовать для 16-ти и 32-ти разрядных приложений? Компилятор должен быть соответствующей «разрядности».

  24. Доп. Что необходимо сделать для подключения собственного обработчика прерывания? Сохранить старое состояние вектора прерываний, изменить вектор прерываний (напрямую или с помощью прерываний ОС), поставив в вектор адрес собственного обработчика.

  25. Доп. Какими способами можно проверить наличие в памяти собственного обработчика прерывания?

MOV AH, 0EEh ; MOV AL, 1 ; INT 2FH ; CMP AL, 0FFh ; EEh – собственно придуманный код обработчика (уникальный). Таким образом, проверили есть ли обработчик в памяти.

;часть резидента

PASSW DW 62627

INT_09: …

;часть инициализации

MOV AH, 35h

MOV AL, 09h ;номер обработчика

INT 21h

SUB BX, 2

MOV AX, WORD PTR ES:BX

CMP AX, PASSW

JNE NOLOAD ; метка обработки отсутсвия в памяти