- •Лр 5 (с повторами для каждого варианта)
- •Лр 6 (с повторами для каждого варианта)
- •Чем отличаются *.Com и *.Exe исполнимые файлы, построенные Ассемблером? com файлы односегментные, а exe многосегментные. Максимальный размер com файла ограничен 64кб, а exe неограничен.
- •Лр 7 (с повторами для каждого варианта)
- •Лр 8 (с повторами для каждого варианта)
- •На вопросы, помеченные сочетанием “Доп.” (дополнительные), можно не отвечать!!!!
Лр 8 (с повторами для каждого варианта)
Какую функцию выполняет команда LEA? Load effective address, вычисляет 16- или 32-разрядный текущий адрес операнда в памяти и загружает его в регистр общего назначения. Вычисляет адрес во время выполнения программы.
Какую функцию выполняет команда LES? Загружает содержимое памяти одновременно в сегментный регистр ES и указанный в первом операнде регистр общего назначения.
Какую функцию выполняет команда LDS? Загружает содержимое памяти одновременно в сегментный регистр DS и указанный в первом операнде регистр общего назначения.
Что такое ближний (NEAR) и дальний (FAR) адрес? Короткий адрес – адрес смещения, относительно начала сегмента, без указания самого сегмента.
Как задается ближний (NEAR) и дальний (FAR) адрес? Длинный адрес – адрес, состоящий из пары сегмент:смещение.
Поясните назначение регистров IP и EIP? В чем их отличие? IP – instruction pointer, содержит адрес команды. Отличаются разрядностью (16, 32).
Поясните назначение регистров AX и EAX? В чем их отличие? AX – аккумулятор для операндов и результатов. Отличаются разрядностью (16, 32).
Поясните назначение регистров BX и EBX? В чем их отличие? BX – указатель на данные в DS. Отличаются разрядностью (16, 32).
Поясните назначение регистров CX и ECX? В чем их отличие?, CX – счётчик для операций со строками и циклов. Отличаются разрядностью (16, 32).
Поясните назначение регистров DX и EDX? В чем их отличие? DX – указатель для ввода и вывода. Отличаются разрядностью (16, 32).
Какие способы вы можете назвать для очистки экрана (минимум 2)? MOV AH, 03; int 10h; Изменить режим отображения или MOV AH, 07h; MOV AL, 00h ; 00h очистит весь экран.
Как организовать в программе Ассемблера вложенный цикл (с помощью 2-х команд LOOP)? Перед началом вложенного цикла надо сохранить значение CX в стеке, а по его окончании – вынуть из стека.
Как при выводе дампа памяти проверить выход за границу сегмента? Если смещение = FFFF, то: при цикличном дампе обнуляем смещение; при нецикличном прибавляем к сегментному регистру 1000.
Поясните назначение регистров IP и EIP? В чем их отличие?
Поясните назначение регистров AX и EAX? В чем их отличие?
Поясните назначение регистров BX и EBX? В чем их отличие?
Поясните назначение регистров CX и ECX? В чем их отличие?
Поясните назначение регистров DX и EDX? В чем их отличие?
Какую функцию выполняет команда LEA?
Какую функцию выполняет команда LES?
Какую функцию выполняет команда LDS?
Доп. В чем отличие между 16-ти и 32-ти разрядными приложениями? Одни используют только 16-ти разрядные регистры, а другие могут и использовать и те и другие. Это влияет на доступную программе память (адресное пространство ограничено размером двух регистров).
Доп. Какие компиляторы нужно использовать для 16-ти и 32-ти разрядных приложений? Компилятор должен быть соответствующей «разрядности».
Доп. Что необходимо сделать для подключения собственного обработчика прерывания? Сохранить старое состояние вектора прерываний, изменить вектор прерываний (напрямую или с помощью прерываний ОС), поставив в вектор адрес собственного обработчика.
Доп. Какими способами можно проверить наличие в памяти собственного обработчика прерывания?
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 ; метка обработки отсутсвия в памяти