
- •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) Файлы в паскале
3) Условные Операторы в паскале
If условие then действие1 [else действие2];
Case выражение of
Список констант 1: begin
{действия}
end;
Список констант N: begin
{действия}
end;
Else
begin
{действия}
end;
End;
Выполнения оператора case начинается с вычисления выражения. Действия между begin и end выполняются в том случае, если значение выражения после case совпадает с константой из соответствующего списка. Если это не так, то выполняются действия, идущие после else.
Билет 20
1) Общая структура программы с
#include <stdio.h>
int main() {
printf(“Hello, World!\n”);
return 0;
};
Команда #includeподключаетзаголовочный файлstdio.h, содержащий определения функций ввода-выводаprintfиscanf.
Затем определяется функция со специальным именем main, получающая управление при старте программы. Она возвращает значение типа «int» (целое), сигнализирующее операционной системе о степени успешности завершения программы.
Фигурные скобки { } задают блок операций.
Функция printfвыводит на экран текст. Символ «\n» означает переход на следующую строку. Так, командаprintf(“s1\ns2\n”) выведет две строки: «s1» и «s2».
return0 означает, что функцияmainвозвращает 0 и завершается. Возвращаемое значение, отличное от 0, свидейтельствует о возникновении проблемы в программе.
Строки с операторами кончаются символом «;».
<float.h>Содержит заранее определенные константы, описывающие специфику реализации свойств библиотеки для работы счислами с плавающей запятой
<math.h>Для вычисления основных математических функций
<conio.h> консольный ввод, вывод
Переменные задаются после открывающейся фигурной скобки:
int main() {
int a; // одна переменная
int b, c; // две переменные
float d = 7; // переменная и её начальное значение
2) Основные команды процессора Intel x86 Расширение операндов
Иногда нужно бывает произвести операцию над операндами разного размера (а большинство полезных команд принимают операнды одного размера). Для этого меньший операнд нужно расширить. Есть два вида расширения:
Без учета знака. Старшие биты забиваются нулями.
movzx
С учетом знака. Если число положительное, то старшие биты забиваются нулями, иначе единицами.
movsx
cbw – al ax; cwde – ax eax.
cwd – ax dx|ax; cdq – eax edx|eax. Обычно используются перед делением.
Работа с битами
and, or, xor – побитовая операция над двумя операндами. Результат, как обычно, заносится в первый из них.
test– то же самое, что иand, но не изменяет первый операнд (то есть, влияет только на регистр флагов)
shl/shr – побитовый сдвиг влево/вправо без учета знака (старшие биты забиваются 0). Сдвигать можно на константу, либо наcl
sal/sar – побитовый сдвиг влево/вправо с учетом знака (старшие биты забиваются 0 или 1 в зависимости от знака)