Вывод числа разного цвета в зависимости от условия (tasm) - Assembler

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

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

Здравствуйте, необходимо реализовать следующее: число выводится на экран. Если чётное, то выводится красным (к примеру), если нечётное - синим. Никак не пойму, как реализовать именно это условие с цветами.

Решение задачи: «Вывод числа разного цвета в зависимости от условия (tasm)»

textual
Листинг программы
  1. ;fasm code....
  2. org  100h
  3. jmp  start
  4.  
  5. mes0    db    13,10,' Type digit: $'
  6.  
  7. start:  mov   ah,9          ; мессага
  8.         mov   dx,mes0       ;
  9.         int   21h           ;
  10.         mov   ah,8          ; ввод без эхо
  11.         int   21h           ;
  12.         cmp   al,13         ; Enter - выход!
  13.         je    exit          ;
  14.         test  al,1          ; проверка на чётность
  15.         jnz   @@1           ;
  16.         mov   bl,0Ah        ; цвет чётных - зелёный
  17.         jmp   prn           ;
  18. @@1:    mov   bl,0Ch        ; цвет нечётных - красный
  19. prn:    call  prnSymbol     ; выводим символ на экран
  20.         jmp   start         ; на повтор..
  21.  
  22. exit:   int   20h           ; выход!
  23. ;-----------------------------------------------------
  24. prnSymbol:                  ;
  25.         mov   ah,9          ; fn(9) видео/сервиса
  26.         xor   bh,bh         ; страница
  27.         mov   cx,1          ; повторов
  28.         int   10h           ;
  29.         ret                 ;

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

  1. org 100h — начало программы, устанавливает точку входа в программу;
  2. jmp start — переход на точку начала работы программы;
  3. mes0 db 13,10,' Type digit: $' — описание сообщения, выводимого на экран;
  4. start: mov ah,9 — установка регистра ah в значение 9, которое определяет функцию вывода на экран;
  5. mov dx,mes0 — в переменную dx записывается адрес строки сообщения, который будет выводиться на экран;
  6. int 21h — вызов функции 21h, которая выводит на экран сообщение;
  7. mov ah,8 — установка регистра ah в значение 8, которое определяет функцию ввода без эхо;
  8. int 21h — вызов функции 21h, которая осуществляет ввод без эхо;
  9. cmp al,13 — сравнение введенного символа с символом Enter (13);
  10. je exit — если символ равен Enter, то происходит переход на метку exit;
  11. test al,1 — проверка на чётность введенного символа;
  12. jnz @@1 — если символ нечётный, то происходит переход на метку @1;
  13. mov bl,0Ah — установка регистра bl в значение 0Ah, которое определяет красный цвет;
  14. jmp prn — переход на метку prn;
  15. call prnSymbol — вызов функции prnSymbol, которая выводит символ на экран;
  16. jmp start — переход на точку начала работы программы;
  17. exit: int 20h — выход из программы;
  18. prnSymbol: — начало описания функции prnSymbol;
  19. mov ah,9 — установка регистра ah в значение 9, которое определяет функцию вывода на экран;
  20. xor bh,bh — установка регистра bh в значение 0, которое определяет номер страницы;
  21. mov cx,1 — установка регистра cx в значение 1, которое определяет количество повторов;
  22. int 10h — вызов функции 10h, которая выводит символ на экран;
  23. ret — возврат из функции.

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


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

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

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

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

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

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