- •1. Архитектура мп Intel 8086/8088. Алгоритм работы. Структурная схема. Операционное устройство, шинный интерфейс мп.
- •2. Организация памяти ibm. Единицы измерения памяти, сегментация памяти, вычисление физического адреса. Назначение и принцип работы стека.
- •3. Система ввода - вывода, адресное пространство ввода - вывода (порты), схема распределения адресного пространства портов ввода вывода. Команды ввода - вывода.
- •5. Программная модель мп. Состав, назначение. Группирование программно-доступных регистров. Назначение регистра флагов, его состав. Формирование физического адреса.
- •6. Режим адресации. Загрузка адреса в регистр. Директива offset. Обращение к массиву байт и массиву слов. Индексация в 2-х мерном массиве.
- •9. Команды ассемблера. Назначение и примеры команды передачи данных, арифметических, логических команд и сдвигов. Команды передачи управления.
- •10. Команды ассемблера. Цепочные команды и префиксы, команды ввода вывода команды управления мп.
- •11. Команды прерываний. Процедуры обработки прерываний. Особенности программирования
- •12. Прерывания dos и в108. Использование прерывания для ввода - вывода. Управления памятью. Запуск и завершение программ.
9. Команды ассемблера. Назначение и примеры команды передачи данных, арифметических, логических команд и сдвигов. Команды передачи управления.
Команды передачи данных, mov ор1, ор2 команды передачи данных, может пересылать байты или слово.
Нельзя пересылать mov dx,al т.к. dx- слово, ах - бит. Работа со стеком команда: push op – сохраняет значение в стеке, рор ор извлекает из стека. Команды перестановки данных xchg,ор. Команды загрузки исполнительного адреса lea r16, mem16 команда вычисляет исполнительный адрес операнда и записывает его в регистр РОН. lеа аналог mov отличие состоит в том что lea записывает сам адрес указанный в команде, а mov значение, содержащейся в ячейки с этим адресом.
Команды перекодировки ХLAT действие заключается в том, что содержание байта памяти, адрес которой равен текущему значению регистра в bх и аl записывается в регистр АL
Арифметические операции Аdd ор1,ор2 сложение; аdc ор1,ор2 сложение с переносом, inc ор увеличение на единицу, sub ор1,ор2 - вычисление, sab ор1,ор2 вычисление с займом; dec ор - уменьшение на ед.; neg ор инвертация; cmp ор1 .ор2 (аналог вычитания только результат не сохраняется); mul ор умножение целых без знака; imul ор умножение целых со знаком; div ор деление без знака; idiv ор деление со знаком.
Логические операции And - конъюнкция, логическое умножение, используется для наложения маски; or -дизъюнкция, логическое сложение; xor - исключающее или, используется для инвертирования битовыхсостояний (сложение по модулю); not - отрицание, инвертирует все биты (mov аl. 1100b; not al; al=0011b);
test - проверка, аналог and за исключением того. что результат не запоминается.
Команды сдвигов имеют два операнда 1-ый рассматривается как набор битов, которые должны сдвигаться, второй определяет, на сколько надо сдвинуть первый операнд. Результат записывается вместо первого операнда.
SHL логический сдвиг с конца, добавляется 0 бит, сдвинутый бит записывается в CF. Сдвиг вправо SHR аналогично SHL. только сначала.
Арифметический сдвиг влево SAL ор1,ор2 , сдвиг вправо SAR ор1,ор2 (аналог логического сдвига) уходящий бит записывается в СF затем левый бит, восстанавливает свое значение.
Циклический сдвиг ROL ор1, ор2 влево, вправо ROR все биты двигается влево (вправо) причем самый первый (последний бит возвращается в операнд с правого (левого) конца и записывается в флаг СF.
Команды передачи управления. Переходы бывают условные и безусловные.
Передача может быть: внутри сегмента CS:IP изменение ячеек IP. Межсегментный переход, меняются
значения CS, IP. JMP disp переход по адресу (без условный переход). Переход по условию j (а – выше числа без знака. b - ниже числа без знака, g - больше со знаком, i - меньше со знаком, z - равно нулю, е - равно , n - отрицает). Работа с процедурами: <имя процедуры>proc <параметры> <тело процедуры> <имя процедуры> Endp. Вызов процедуры call < имя процедуры> возвращение из процедуры ret.
Циклы Loop <метка> если надо повторит несколько раз. В качестве счетчика используется регистр сх, т.е.команда выполняется пока счетчик не равен определенному значению. LOOPE/LOOOPZ данные команды выполняются пока равно 0 или пока не равно 0, с известным числом повторений, из которой возможен досрочный выход, когда заставляет повторять цикл сх раз.
