Задачи по программированию по курсу ЯПиМТ. Родионова Т.Е. - 18 стр.

UptoLike

Составители: 

18
/* прокрутки экрана при выводе в позицию (80,25) */
void writechar(char ch)
{
struct text_info ti; /* шаблон text_info описан в conio.h*/
gettextinfo(&ti); /* захватить текущие установки текста */
_AH = 9; /* прерывание 0х10, подфункция 9*/
_AL = ch; /* выводимый символ */
_BH = 0; /* видео-страница */
_BL = ti.attribute;/* видео-атрибут */
_CX = 1; /* коэффициент повторения */
geninterrupt(0x10);/* вывод символа */
}
2) int int86(int intno,union REGS *inregs,
union REGS *outregs);
Функция int86 вызывает программное прерывание процессора 8086, номер прерывания указан в
аргументе intno. Перед выполнением программного прерывания функция копирует содержимое регистров из
inregs всамирегистры. После возврата из прерывания функция копирует текущие значения регистровв
outregs. Если установлен флаг переноса, то это значит, что произошла ошибка. Отметим, что inregs может
указывать на ту же структуру, что и outregs. Функция int86 возвращает значение регистра AX после за-
вершения программного прерывания. Если флаг переноса установлен (outregs -> x.cflag != 0), то есть про-
изошла ошибка, то данная функция присваивает глобальной переменной _doserrno код ошибки.
Пример 2: Вывод слова Привет”.
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#define VIDEO 0x10
void movetoxy(int x, int y)
{
union REGS regs;
regs.h.ah = 2; /* устанавливает позицию курсора */
regs.h.dh = y;
regs.h.dl = x;
regs.h.bh = 0; /* видео страница 0*/
int86(VIDEO, &regs, &regs);
}
int main(void)