- •1. Представление данных в компьютере: двоичная, шестнадцатиричная системы исчисления, числа со знаком.
- •2.Организация памяти. Модели памяти.
- •3. Регистровая структура процессоров Intel ix86: регистры общего назначения, сегментные регистры, регистр флагов.
- •4. Директивы определения данных
- •5. Способы адресации: регистровая, непосредственная, прямая, косвенная.
- •6. Текстовый и графический режимы видеопамяти. Адресное пространство. Вывод символов и пикселей на экран. Примеры.
- •7. Структура стека. Команды для работы со стеком. Синтаксис. Примеры.
- •8. Прерывания.
- •9. Функции dos: ввод с клавиатуры, печати строки, завершение инициализации.
- •10. Команды двоичной арифметики
- •11. Команды десятичной арифметики языка assembler. Синтаксис. Примеры.
- •12. Логические команды языка ассемблер. Синтаксис. Примеры.
- •13. Команды пересылки данных. Синтаксис. Примеры. Оператор ptr.
- •14. Сдвиговые операторы. Синтаксис.
- •15. Безусловный переход
- •16. Команды сравнения и передачи управления.
- •17. Организация циклов. Синтаксис. Примеры.
- •18. Строковые команды. Синтаксис.
- •19. Расширение mmx
- •20. Структура резидентных программ. Загрузка и выгрузка резидентной программы.
- •21. Драйверы устройств dos. Формат и загрузка драйвера устройства.
- •Символьные устройства осущ-ют послед. Ввод/вывод. Такими устройствами являются console, последовательный порт, часы и принтер.
- •22. Программирование на уровне портов ввода/вывода. Системный таймер.
- •23.Команды ввода-вывода
- •24. Переферийные устройства. Структура fdd, hdd, cd-rom.
12. Логические команды языка ассемблер. Синтаксис. Примеры.
Первоочередное назначение логических операций в микропроцессоре 8088 - работа с битами. Ни одна из арифметических команд не может непосредственно выделить или изменить единственный бит, а логические команды позволяют программе обрабатывать отдельные биты.
Четырьмя основными логическими командами являются AND (и), OR (или), XOR (исключающее или), NOT (не). Эти четыре команды работают непосредственно с нулями и единицами двоичного кода. Простейшая функция выполняется командой NOT. Эта команда основывается на определении единицы и нуля, как истины (TRUE) и лжи (FALSE) соответственно. Предложение NOT TRUE (не истина) - это FALSE (ложь), а предложение NOT FALSE (не ложь) - это TRUE (истина). Команда NOT инвертирует все биты числа данных. Иначе говоря, команда NOT эквивалентна вычитанию данных из величины, состоящей из всех единиц. действует на единственный бит.
Значение Not
0 1
1 0
Остальные три логические функции имеют два операнда.Так будут выглядеть результаты действий, произведенных каждой функцией над парой бит.
X |
Y |
X AND Y |
X OR Y |
X XOR Y |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
96h and 0Fh
1001 0110 and 0000 1111 = 0000 0110 = 6h
1001 0110 or 0000 1111 = 1001 1111 = 9Fh
1001 0110 xor 0000 1111 = 1001 1001 = 99h
13. Команды пересылки данных. Синтаксис. Примеры. Оператор ptr.
Mov – замещает приемник на источник. Значение источника сохраняется. В зависимости от описания операторов пересылается слово или байт. Команда не воздействует на флаги процессора.
Приемник – регистр, переменная.
Источник – регистр, переменная, число.
movs – пересылка данных из строки в строку
movsb байта
movsw слова
mowsd двойного слова
mov пр., ист. – синтаксис
mov ax,bx
mov ax,5
mov ax,z
Примеры:
MOV АХ,500 ; АX:=500
MOV BL,DH ; BL:=DH
PTR – задания типа переменной или метки. Если операнды описаны по разному или режим адресации не позволяет однозначно определит размер операнда.
Тип PTR выражение – синтаксис
Выражение – любой операнд
Тип – byte, word, dword, qword (для операндов), near, far или proc (для меток или имен процедур).
mov byte ptr es:[di],3
mov копирует источник в приемник.
оператор указания типа PTR (от pointer, указатель), который записывается следующим образом:
<тип> PTR <выражение>
где <тип> - это BYTE, WORD или DWORD (есть и другие варианты, но мы их пока не рассматриваем), а выражение может быть константным или адресным.
Если указано константное выражение, то оператор "говорит", что значение этого выражения (число) должно рассматриваться ассемблером как величина указанного типа (размера); например, BYTE PTR 0 - это ноль как байт, a WORD PTR 0 - это ноль как слово (запись BYTE PTR 300 ошибочна, т. к. число 300 не может быть байтом). Отметим, что в этом случае оператор PTR относится к константным выражениям.
Если же в PTR указано адресное выражение, то оператор "говорит", что адрес, являющийся значением выражения, должен восприниматься ассемблером как адрес ячейки указанного типа (размера); например: WORD PTR A - адрес А обозначает слово (байты с адресами А и А+1). В данном случае оператор PTR относится к адресным выражениям.