- •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.
17. Организация циклов. Синтаксис. Примеры.
Цикл – выполнение некоторого участка программы заданное число раз.
LOOP выполняет декремент содержимого cx (счетчик цикла), и если сх не равно 0, то осуществляет переход на указанную метку.
LOOPE =
LOOPNE > <
LOOPZ 0
LOOPNZ не 0
Пример: программа выводит на экран последовательность символов
mov cx,223 ‘ счетчик цикла
mov si,0 ‘ индекс элемента в массиве
mov al,32 ‘ код первого символа.
fill: mov symbols[si],al
inc al ‘ код следующего элемента
inc si ‘ сдвинем массив на 1 байт
loop fill
Symbols db 223 dup (‘*’) – заполняемый массив
mov ex,n – число повторений
m: …
…
loop m
(Синтаксис)
18. Строковые команды. Синтаксис.
Все команды для работы со строками считают, что строка источник находится по адресу в паре регистров ds:esi, т.е. в сегменте памяти указанного в ds со смещением в si, а строка приемник cs:di или cs:edi
все строковые команды работают только с одним эл-том строки: байтом, словом или 2-м словом за один раз.
movs пр, ист - копирование строки
movs b – копирует один байт
movs w – копирует 1 слово
movs d – копирует 2ое слово.1
1 из последовательности по адресу ds:si в cs:di или ds:esi в cs:edi
при использовании movs Assembler указывает параметры операндов.
с mp s пр, ист.
cmp sb
cmp sw
cmp sd2
2 команды сравнения.
lods ист.
lods b
lods w
lods d3
3 команды чтения из строки (байта, слова, 2сл). Копируют байт, w, dw, из памяти по адресу ds:si или ds:esi в регистр al, ax или eax
stos пр
stos b
stos w
stos d4
4 запись в строку. Копирует AL, AX или EAX в cs:di, cs:edi
ins ист, dx
ins b
ins w
ins d5
5 чтение из порта I10, считывает из порта I10(номер указан в dx) в память по адресу cs:di (cs:edi)
outs dx, пр
outs b
outs w
outs d6
6 запись строки в порт I10 из памяти по адресу ds:si (ds:esi)
19. Расширение mmx
Начиная с процессоров Intel Pentium все процессоры поддерживают MMX, предназначенные для увеличения эффективности программ, работающих с большими потоками данных. (обработка изображений, звук, видео).
MMX – представляет несколько новых типов данных, регистров и команд, позволяющих осуществить логические и арифметические операции на несколькими числами одновременно.
Регистры MMX.
Расширение MMX включает в себя 8 64-х битных регистров общего назначение.
MM 7,MM 6,MM 5,MM 4,MM 3,MM 2,MM 1,MM 0. 8 регистров точно совпадают с регистрами FPU R(0)-R(7). При записи числа в регистр MMX, оно записывается в биты от 0-63 соответствующего регистра FPU.
Типы данных.
1). Учетверенное слово (8 байт) 64-битные числа.
2). Упакованные двойные слова (2 32-битных двойных слова упаковываются в 64 битный тип данных).
3). Упаковываются слова ( 4 16-битных слова, упакованное в 64-битный тип данных ).
4). Упакованные байты (8 байт, упакованные в 64-битный тип данных).
Команда MMX перемещает упакованные данные в память или в обычные регистры.
Выполняет арифметические и логические операции над каждым элементом в отдельности.
MOV D пр. ист. – пересылка двойных слов.
Команда копирует двойное слово из источника в приемник.
Регистры MMX, обычные регистры или переменные.
Если приемник регистр MMX соответствует двойному слову, то это двойное слово записывается в его младшую половину.
MOV Q пр .ист. – копирует учетверенное слово из источник в приемник.
Оба операторов не могут быть переменными.
Арифметические команды MMX.
PADDB – пр. ист.
PADDW - пр. ист. – СЛОЖЕНИЕ
PADDD - пр. ист.
Данные команды выполняют сложение отдельных элементов данных: данных, слов, двойных слов.
Регистр MMX или переменная (источник). Приемник – регистр MMX.
PSUBB - пр. ист.
PSUBW - пр. ист - ВЫЧИТАНИЕ
PSUBD - пр. ист
PMULHW пр. ист
PMULLW пр. ист - УМНОЖЕНИЕ
Источник регистр ли переменная (MMX). Приемник - регистр