- •1.Архитектуры вычислительных систем.
- •2.Архитектура многопроцессорных систем.
- •3.Классификация вычислительных систем.
- •4.Классификация процессоров.
- •5.Регистровая модель процессора x86.
- •6.Режимы работы процессора 80386.
- •1.Реальный режим
- •2. Защищенный режим
- •7.Процессор х86: непосредственная и регистровая адресация.
- •8.Процессор х86: прямая адресация и прямая со сдвигом.
- •9.Процессор х86: косвенная адресация и косвенная со сдвигом.
- •10.Процессор х86: индексная адресация и индексная с масштабированием.
- •11.Размещение в памяти многомерных статических массивов и доступ к их элементам.
- •15.Процессор х86: инструкции копирования данных.
- •16.Процессор х86: инструкции ввода-вывода.
- •17.Представление целых чисел: прямой код, дополнительный код, bsd.
- •18.Процессор х86: инструкции сложения, сложения с переносом.
- •19.Процессор х86: сложение чисел в формате bcd.
- •20.Процессор х86: инструкции вычитания, вычитания с заемом.
- •21.Процессор х86: инструкции умножения.
- •22.Процессор х86: инструкция деления.
- •23.Процессор х86: операции расширения знакового бита.
- •24.Процессор х86: поразрядные логические инструкции, использование масок.
- •25.Процессор х86: инструкции сдвига. Умножение и деление на константы.
- •26.Процессор х86: инструкции цикла. Отличие от циклах в языках высокого уровня.
- •27.Процессор х86: Ожидание готовности пу с тайм-аутом на основе цикла.
- •28.Процессор х86: безусловный переход и виды меток.
- •29.Процессор х86: вызов процедуры и прерывания (рамка стека функции в с).
- •30.Процессор х86: инструкции условного перехода.
- •31.Процессор х86: строковый примитив копирования данных.
- •32.Процессор х86: строковые примитивы сравнения данных, сканирования данных и заполнения данных.
- •33.Сегменты реального и защищенного режима. Глобальная и локальная таблицы дескрипторов.
- •34.Механизм преобразования линейного адреса в физический в процессоре x86.
- •46.Математический сопроцессор: инструкции вычисления функций.
- •47. Математический сопроцессор: инструкции сравнения и условный переход по результатам сравнения
- •48.Математический сопроцессор: регистры управления и состояния.
- •49.Математический сопроцессор: исключения и их маскирование.
- •50. Дисковые накопители. Логическая и физическая геометрия жесткого диска, линейная адресация.
- •51. Разделы жесткого диска. Осуществление загрузки.
- •53. Стек tcp/ip и его соответсвие 7 уровневой модели osi iso.
- •54.Пример передачи и приема пакета в стеке tcp/ip.
- •55. Ip и mac адреса. Служба arp. Классы ip адресов.
- •56.Маршрутизация и таблицы маршрутизатора.
- •57.Доменные имена и служба dns.
- •58.Статические и динамические ip адреса. Служба dhcp.
22.Процессор х86: инструкция деления.
Однооперандное деление симметрично по отношению к однооперандному умножению и имеет мнемокод div для целочисленного беззнакового деления и мнемокод idiv для целочисленного знакового деления. Необходимо следить за тем, чтобы числитель всегда имел вдвое большую разрядность, чем знаменатель.
Например:
unsigned int с,d;
short s,t;
asm{
mov ax, s
cwd
idiv t // ax содержит частное, а dx – остаток целочисленного
// деления s/t
mov eax, c
mov edx, 0
idiv d // eax содержит частное, а edx – остаток целочисленного
// деления c/d
}
Если в результате деления частное выходит за пределы разрядной сетки приемника, процессор генерирует исключение «деление на 0».
23.Процессор х86: операции расширения знакового бита.
Команды преобразования типов данных (расширения знакового бита)
CBW - преобразование байта в слово
Если (AL) < 80H, то (AH) <----- 0
Если (AL) >=80H, то (AH) <----- FFH
CWD - преобразование слова в двойное слово
Если (AX) < 8000H, то (DX) <----- 0
Если (AX) >=8000H, то (DX) <----- FFFFH
CWDE - преобразование слова в двойное слово
Если (AX) < 8000H, то (старшее слово EAX) <----- 0
Если (AX) >=8000H, то (старшее слово EAX) <----- FFFFH
CDQ - преобразование двойного слова в учетверенное слово
Если (EAX) < 8000H, то (EDX) <----- 0
Если (EAX) >=8000H, то (EDX) <----- FFFFH
NEG - отрицание
(Операнд) <----- - (Операнд)
24.Процессор х86: поразрядные логические инструкции, использование масок.
Логические операции осуществляют поразрядное логическое сложение, умножение, сложение по модулю 2, а также поразрядную инверсию для одно-, двух- и четырехбайтовых операндов. И имеют мнемокоды or, and, xor и not соответственно. Операции логическое сложение, умножение, сложение по модулю 2 - двухоперандные, а операция инверсии – однооперандная. Данные операции необходимы в первую очередь не для выполнения операций булевой алгебры, а для работы с регистрами состояния и управления периферийных устройств. В процессе обмена данными с периферией приходится постоянно опрашивать регистры состояния и проверять состояние отдельных битов, указывающих на готовность к приему или подтверждение приема, а также устанавливать или сбрасывать отдельные биты в регистре управления, например для запроса на передачу и сопровождения данных. При этом важно проверить состояние строго определенного бита, независимо от состояния других, а также установить или сбросить строго определенный бит, не изменяя состояние других битов. Для этих целей совместно с логическими операциями используются маски. Маска – это константа, позволяющая работать только с заданными битами. Остальные биты при этом невидимы, т.е. «замаскированы».
Например:
asm{
or al, 00001000b // в регистре al установлен бит № 3
and dl, 11011111b // в регистре dl сброшен бит № 5
and al, 00010000b // проверка состояния бита № 4 в регистре al
// если бит установлен, то результат ненулевой
// если сброшен, то результат - нулевой
// т.е. результатом проверки является состояние
// флага z (нуля)
}