Графический видеорежим ассмеблерных вставок - Turbo Pascal
Формулировка задачи:
Здравствуйте. Помогите, пожалуйста, вообще не понимаю ничего в этом. Хоть что-то. Спасибо!:
С использованием встроенного ассемблерного языка Borland Pascal в графическом видеорежиме , при обращении напрямую к видеопамяти, вывести изображение - первую букву фамилии, имени и отчества. (С.Э.Р)
Решение задачи: «Графический видеорежим ассмеблерных вставок»
textual
Листинг программы
var s:string; procedure WriteS(s:String);assembler; { (C Mixx) } asm push ds {сохраняем сегмент данных} mov ah,40h {номер функции прерывания} mov bx,1{стандартный вывод это 1} lds dx,[s] {адрес строки в ds:dx} mov si,dx {адрес строки в ds:si для lodsb} lodsb {длину строки в al (первый байт в строке это ее длина!)} inc dx{чтобы не напечатать первый байт} xor cx,cx; mov cl,al{чтобы в сх была длина строки} int 21h {DOS} pop ds {восстанавливаем ds} end; begin s:='СЭР'; // установка режима vga 640x480 asm MOV AX, 0012h ; INT 10h end; // вывод строки writeS(s); readln; // установка текстового режима asm MOV AX, 0003h ; INT 10h end; end.
Объяснение кода листинга программы
- В первой части кода объявлены переменные и определен протокол взаимодействия с ассемблерной частью кода.
- Во второй части кода устанавливается режим видео 640x480 (MOV AX, 0012h; INT 10h).
- Третья часть кода выводит строку (s:='СЭР'; writeS(s); readln()).
- Четвертая часть кода устанавливает текстовый режим (MOV AX, 0003h; INT 10h).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д