Вывод символа заданным цветом - Assembler

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

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

Необходимо вывести символ заданного цвета в заданном месте экрана в двух регистрах.Помогите,пожалуйста, с реализацией

Решение задачи: «Вывод символа заданным цветом»

textual
Листинг программы
  1. .model small
  2. .stack 100h
  3. .data
  4. chr db 'F' ; символ
  5. x db 10    ; X (Столбец)
  6. y db 20    ; Y (Строка)
  7. color db 4 ; Номер цвета
  8.  
  9. .code
  10. begin:
  11.     mov ax, @data
  12.     mov ds, ax
  13.     mov es, ax
  14.    
  15.     mov ah, 0   ; установка видеорежима  
  16.     mov al, 13h ; Видеорежим = 13h (графика, 320х200)
  17.     int 10h        
  18.        
  19.     mov dl, x  
  20.     mov dh, y    
  21.     mov ah, 02h ; Изменение позиции курсора: DH:DL (Столбец:Строка)
  22.     int 10h  
  23.    
  24.     mov ah, 09h  ; вывод символа
  25.     mov al, chr  ; AL = символ
  26.     mov cx, 1    ; СХ = кол-во повторений
  27.     mov bl, color  ; BL = цвет
  28.     int 10h        ; вызываем прерывание  
  29.     add al, 32  
  30.      
  31.     mov dh, y
  32.     inc dl    
  33.     mov ah, 02h
  34.     int 10h
  35.    
  36.     mov ah, 09h  ; вывод символа
  37.     mov al, chr  ; AL = символ
  38.     add al, 32   ; преобразуем в нижний регистр ASCII коду добавляем 32)
  39.     int 10h        ; вызываем прерывание  
  40.  
  41.     mov ah, 1
  42.     int 21h
  43.    
  44.     mov ax, 4c00h
  45.     int 21h    
  46.  
  47. end begin

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

  1. Создание переменных:
    • chr с значением F (символ, который будет выведен)
    • x с значением 10 (координата X для вывода символа)
    • y с значением 20 (координата Y для вывода символа)
    • color с значением 4 (номер цвета символа)
  2. Установка видеорежима:
    • Загрузка сегмента данных в регистр ax
    • Перемещение значения из ax в ds и es
    • Установка видеорежима 13h (графический режим, 320x200) с помощью регистров ah и al
    • Вызов прерывания int 10h для установки видеорежима
  3. Установка позиции курсора:
    • Загрузка значений x и y в регистры dl и dh соответственно
    • Изменение позиции курсора с помощью прерывания int 10h
  4. Вывод символа заданным цветом:
    • Установка значения ah в 09h для вывода символа
    • Помещение символа из chr в регистр al
    • Установка количества повторений для вывода в cx
    • Загрузка цвета из color в регистр bl
    • Вызов прерывания int 10h для вывода символа в заданном цвете
    • Увеличение значения x для изменения позиции символа по горизонтали
    • Повторный вывод символа, но уже в нижнем регистре (с измененным значением al)
  5. Возврат контроля операционной системе:
    • Загрузка значения 4c00h в регистр ax
    • Вызов прерывания 21h для возврата контроля операционной системе.

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


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

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

5   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы