Графический видеорежим ассмеблерных вставок - 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.

Объяснение кода листинга программы

  1. В первой части кода объявлены переменные и определен протокол взаимодействия с ассемблерной частью кода.
  2. Во второй части кода устанавливается режим видео 640x480 (MOV AX, 0012h; INT 10h).
  3. Третья часть кода выводит строку (s:='СЭР'; writeS(s); readln()).
  4. Четвертая часть кода устанавливает текстовый режим (MOV AX, 0003h; INT 10h).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы