Поменять цвет экрана на зеленый - Assembler

Узнай цену своей работы

Формулировка задачи:

Добрый день. Необходимо написать подпрограмму, меняющую цвет экрана с черного на зеленый, путем изменения битов в байтах атрибутов видеопамяти. При работе процедура использует команды работы с битами непосредственно в памяти. Выходит argument needs type overide. Как исправить?
.386
cseg segment para use16 'CODE'
      assume cs:cseg,ds:cseg,ss:cseg
      org 100h
start:
cld
mov ax,0B800h
mov es,ax
mov si,00h
mov cx,40
btr es:[si],12
bts es:[si],13
btr es:[si],14
add si,2
rep stosd
int 20h
cseg ends
end start

Решение задачи: «Поменять цвет экрана на зеленый»

textual
Листинг программы
mov AX, 1010h
mov BX, 0
mov DH, 0
mov CH, 63
mov CL, 0
int 10h

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

  1. mov AX, 1010h - Переменная AX получает значение 1010h (в десятичной системе это 4096).
  2. mov BX, 0 - Переменная BX получает значение 0.
  3. mov DH, 0 - Переменная DH получает значение 0.
  4. mov CH, 63 - Переменная CH получает значение 63.
  5. mov CL, 0 - Переменная CL получает значение 0.
  6. int 10h - Выполняется интеркаляция с кодом 10h, который обычно используется для вывода информации на экран. В результате выполнения данного кода, цвет экрана должен измениться на зеленый.

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

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