
- •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) Файлы в паскале
1) Простые типы данных в с
Char – один байт, содержащий один символ из локального символьного набора
Int–целое число, обычно имеющее типовой размер для целых чисел в данной системе
Float – вещественное число одинарной точности с плавающей точкой
Double – вещественное число двойной точности с плавающей точкой
2) Математический сопроцессор
Сопроцессорнужен, чтобы вести расчеты с дробными числами. Дробные числа могут храниться в трёх точностях – 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*.
3) Файлы в паскале
Для работы с файлами в Паскале используются файловые переменные. Файловые переменные бывают трех типов:
var f1: file; { нетипизированные }
var f2: file of integer; { содержащие набор данных заданного типа, в данном случае integer }
var f3: text; { содержащие набор строк }
Нетипизированные файловые переменные могут содержать данные смешанных типов и в данном занятии не рассматриваются.
Работа с файлом любого типа разбивается на следующие этапы:
Связывание файловой переменной с конкретным файлом на диске. Выполняется процедурой Assign. Например,Assign(f3, ‘a:\data.txt’).
Открытие файла. Для открытия файла в режиме чтения используется процедура Reset(f), записи –Rewrite(f), добавления информации в конец –Append(f), последнее только для текстовых файлов.
Чтение и запись в файл. Осуществляется командами Read(f,var1,var2, …) иWrite(f,var1,var2, …) для типизированных файлов иReadLn(f,str1,str2, …) /WriteLn(f,str1,str2, …) для текстовых.
Завершение работы с файлом. Close(f).
При чтении данных из файла неизвестного размера полезно пользоваться функцией Eof(f), которая возвращаетTrueв случае, если достигнут конец файла. Типовой констркуцией для чтения файла является
while not eof(f) do begin
read(f, x);
…
end;
Билет 18
1) Условные операторы в с
if(условие)
Действие-1;
[else
Действие-2]
Оператор switchпредназначен для организации выбора из множества различных вариантов. Формат оператора следующий: switch ( выражение ) { [объявление] : [ case константное-выражение1]: [ список-операторов1] [ case константное-выражение2]: [ список-операторов2] : : [ default: [ список операторов ]] }