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

5

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

  1. Какие разновидности команды XLAT Вы знаете, и чем они отличаются? DS:BX + AL. Выполнить замену байта в регистре AL байтом по этому адресу. XLATB – короткая форма команды XLAT. При её использовании процессор предполагает, что в регистре DS:BX находится адрес таблицы.

  2. Как организовать ожидание ввода символа в Ассемблере? mov AH, 01h, INT 21h

  3. Какие системы счисления Вы знаете? Позиционные (основания 2, 8, 16,…)

  4. В чем отличие символьного и шестнадцатеричного представления в ОП? Отличие в представлении – либо символом («A»), либо двумя шестнадцатеричными числами (41h)

  5. Можно ли в процедуру Ассемблера передать параметры при ее вызове и как? Явно нельзя. Можно через регистры или глобальные переменные.

  6. Что такое стек и для чего он нужен? Структура данных, работающая по принципу LIFO (Last in First out). Сохранять значения регистров, переменных и т.п. для организации работы процедур, прерываний и т.д.

  7. В каких командах Ассемблера неявно используется стек? При вызове процедур, при выполнении команды CALL процессор сохраняет в стеке адрес следующей за ней команды. После вызова процедуры создаются локальные переменные, которые помещаются в стек. Ещё RET, IRET.

  8. Поясните работу команды CMP? CMP вычисляет разницу между двумя целыми операндами и изменяет OF, SF, ZF, AF, PF, CF в зависимости от результа.

  9. Поясните работу команды условного перехода - JE/JNE? JE/JNE выполняют условный переход в зависимости от состояния флага нуля ZF = 1/0.

  10. Какие регистры неявно используются в команде LOOP? Использует CX/ECX.

  11. Поясните работу команды LOOP? LOOP выполняет условный переход в зависимости от значения в регистре ECX/CX. Уменьшает содержимое ECX/CX на единицу, за каждый такт цикла.

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

  13. Как по листингу определить размер программы в оперативной памяти (ОП)? В разделе листинга Groups & Segments сложить размеры всех сегментов программы.

  14. Как по листингу определить длину фрагмента программы, указанного преподавателем? После номера строки в листинге идёт размер выполняемой команды. Чтобы определить размер, надо вычесть из этого значения для конца интервала вычесть значение для начала интервала (например, 02CE – 02B9)

  15. Чем отличаются *.COM и *.EXE исполнимые файлы, построенные Ассемблером? COM файлы односегментные, а EXE многосегментные. Максимальный размер COM файла ограничен 64кб, а EXE неограничен.

  16. Как можно в программе ассемблера организовать ветвление? Командами условного перехода (J*, где * может означать различные условия, например: JE – jump if equal, JNG – jump if not greater и т.п.).

  17. Поясните команды условного и безусловного перехода. Команды условного перехода передают управление в зависимости от установленных флагов процессора, а безусловного передают управление в любом случае.

  18. Какие команды сравнения Вы знаете? CMP, CMPSB, CMPSV, CMPSD, CMPS

  19. Какие системы счисления Вы знаете?

  20. Поясните работу команды CMP?

  21. Поясните работу команды LOOP?

  22. Как организовать вложенный цикл в Ассемблере?

  23. Доп. Чем отличаются *.COM и *.EXE исполнимые файлы, построенные Ассемблером?

  24. Как организовать вывода символа на экран в Ассемблере? mov DL, 1;тут любой номер символа ; mov AH, 01h ; INT 21h

  25. Какие команды условного перехода Вы знаете?