Вывести на экран изображение в виде шахматной доски с чередованием цветов ячеек - Assembler

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

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

Управление клавиатурой и дисплеем в текстовом режиме на языке ассемблера с использованием среды TASM 1-я программа: Вывести на экран изображение в виде шахматной доски с чередованием цветов ячеек.

Решение задачи: «Вывести на экран изображение в виде шахматной доски с чередованием цветов ячеек»

textual
Листинг программы
model   tiny
.code
org 100h
m   equ 0FBh
begin:
    mov ax,3
    int 10h
    mov cx,8
    mov al,' '
@@01:   push    cx
    mov cx,8
@@02:   int 29h
    xor al,m
    loop    @@02
    push    ax
    mov al,10
    int 29h
    mov al,13
    int 29h
    pop ax
    xor al,m
    pop cx
    loop    @@01
    ret
    end begin

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

Вывод на экран изображения в виде шахматной доски с чередованием цветов ячеек — так можно описать задачу, которую решает этот код. Список действий:

  1. Установка регистров для работы с видеопамятью: — AX = 3 — код видеосистемы (3 для MDA/Hercules, 5 для CGA, 6 для EGA, 7 для VGA); — CX = 8 — количество горизонтальных строк видеошахматной доски (в нашем случае — 8); — AL = пробел — символ, который будет выводиться на первой и восьмой строке.
  2. Цикл, который будет выполняться 8 раз: — PUSH CX — сохранение в стеке значения регистра CX; — Вывод на экран 8 символов с использованием регистра AL; — XOR AL, m — инверсия цвета символа (1 байт); — POP CX — восстановление значения регистра CX из стека; — LOOP до тех пор, пока не будет выполнено условие — пока не будет выполнен IRET (код завершения работы процессора, после которого в стеке не должно оставаться значений).
  3. Запись в видеопамять символа «10» (ASCII-коды символов «1» и «0» — 49 и 48) и символа «13» (ASCII-код символа «1» — 49, «3» — 51) для инвертирования цвета ячеек доски.
  4. Отображение ячеек первой и восьмой горизонтальной строки, а также ячеек третьей и седьмой строки.
  5. Возврат в начало цикла.
  6. Конец работы программы.

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

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