
- •2) Работа с файлами в с
- •3) Регистры процессора Intel x86
- •1) Основные команды процессора Intel x86 Расширение операндов
- •Работа с битами
- •Работа с флагами процессора
- •3) Простые типы данных в Паскеле
- •1) Составные типы данных в паскале
- •2) Циклические конструкции в с
- •3) Арифметические операции ассемблера
- •1)Условные переходы
- •2) Условные операторы в с
- •1) Массивы и строки в с
- •3) Работа с памятью в с
- •2) Составные типы данных с. Структуры
- •3) Условные Операторы в паскале
- •1) Математический сопроцессор
- •2) Циклические конструкции Паскаля
- •1) Процедуры и Функции в паскале
- •2) Простые типы данных в с
- •3) Массивы и строки в ассемблере
- •2) Общая структура программы с
- •3) Видеобуфер
- •1) Циклические конструкции в с
- •2) Работа с видеопамятью
- •3) Процедуры и функции в паскале
- •1) Простые типы данных в с
- •2) Строки в ассемблере
- •3) Условные Операторы в паскале
- •1) Работа с файлами в с
- •2) Условные переходы
- •3) Массивы и строки в паскале
- •2) Флаги
- •3) Организация сложных структур данных в паскале. Списки.
- •1) Работа с памятью в с
- •3) Составные типы данных в паскале
- •1) Массивы и строки в с
- •2) Регистры процессора Intel x86
- •1) Простые типы данных в с
- •2) Математический сопроцессор
- •3) Файлы в паскале
- •1) Условные операторы в с
- •2) Регистры процессора Intel x86
- •1) Типы данных в с
- •3) Условные Операторы в паскале
- •1) Общая структура программы с
- •2) Основные команды процессора Intel x86 Расширение операндов
- •Работа с битами
- •Работа с флагами процессора
- •3) Файлы в паскале
2) Составные типы данных с. Структуры
typedefиспользуется длясокращения сложных или просто длинных определений типов, или же длясокрытия реально используемых типов. Синтаксисtypedefочень прост: мы пишем обычное объявление стековой переменной и добавляем перед этим определением ключевое словоtypedef. При этом никакая переменная не создается, а имя «переменной» становится синонимом указанного типа. Например:typedefconstchar*string;/* string - указатель на константный символ */ typedefvoid(*fptr)(int);/* fptr - указатель на функцию, возвращающую void и принимающую int */
Часто можно видеть, как с помощью typedefможно избавиться от необходимости писатьstructпри определении переменной типа структуры:structs_tag{ /* какие-то члены */ }; typedefstructs_tagmystruct; /* ... */ mystruct s;
Можно создать синоним одновременно с определением структуры: typedefstructs_tag{ /* какие-то члены */ }mystruct;
Структурыпредставляют собой агрегаты разнородных данных (полейраз-
ноготипа); в отличие от массивов, где все элементы имеютодинитотжетип.
struct{
int x,y; /* два целых поля */
char s[10]; /* и одно - для строки */
} s1;
3) Условные Операторы в паскале
If условие then действие1 [else действие2];
Case выражение of
Список констант 1: begin
{действия}
end;
Список констант N: begin
{действия}
end;
Else
begin
{действия}
end;
End;
Выполнения оператора case начинается с вычисления выражения. Действия между begin и end выполняются в том случае, если значение выражения после case совпадает с константой из соответствующего списка. Если это не так, то выполняются действия, идущие после else.
Билет 8
1) Математический сопроцессор
Сопроцессорнужен, чтобы вести расчеты с дробными числами. Дробные числа могут храниться в трёх точностях – 32 бита (dd), 64 бита (dq) и 80 бит (dt).
Для обработки дробных чисел в сопроцессоре имеется 8 регистров – ST(0) –ST(7), организованных по принципу стека. Для занесения чисел в стек сопроцессора используются командыfld(для дробных) иfild(для целых), а для извлечения –fstpиfistp.
Для выполнения арифметических операций используются следующие команды:
fadd. УбираетST(0) иST(1) со стека и кладет на их место их сумму.
fsub, fmul, fdiv, fyl2x (y * log2x). Аналогично.
fsqrt. ST(0) = ST(0)1/2
fsin, fcos, f2xm1 (2x – 1), fabs(модуль), frndint (округление)
Для сравнения используется команда
fcomi st, st(2) ; на месте 2 может быть число от 0 до 7
Результат сравнения кладется во флаги процессора и может быть использован стандартными командами j*.