Вывод числа разного цвета в зависимости от условия (tasm) - Assembler
Формулировка задачи:
Здравствуйте, необходимо реализовать следующее: число выводится на экран. Если чётное, то выводится красным (к примеру), если нечётное - синим. Никак не пойму, как реализовать именно это условие с цветами.
Решение задачи: «Вывод числа разного цвета в зависимости от условия (tasm)»
textual
Листинг программы
- ;fasm code....
- org 100h
- jmp start
- mes0 db 13,10,' Type digit: $'
- start: mov ah,9 ; мессага
- mov dx,mes0 ;
- int 21h ;
- mov ah,8 ; ввод без эхо
- int 21h ;
- cmp al,13 ; Enter - выход!
- je exit ;
- test al,1 ; проверка на чётность
- jnz @@1 ;
- mov bl,0Ah ; цвет чётных - зелёный
- jmp prn ;
- @@1: mov bl,0Ch ; цвет нечётных - красный
- prn: call prnSymbol ; выводим символ на экран
- jmp start ; на повтор..
- exit: int 20h ; выход!
- ;-----------------------------------------------------
- prnSymbol: ;
- mov ah,9 ; fn(9) видео/сервиса
- xor bh,bh ; страница
- mov cx,1 ; повторов
- int 10h ;
- ret ;
Объяснение кода листинга программы
- org 100h — начало программы, устанавливает точку входа в программу;
- jmp start — переход на точку начала работы программы;
- mes0 db 13,10,' Type digit: $' — описание сообщения, выводимого на экран;
- start: mov ah,9 — установка регистра ah в значение 9, которое определяет функцию вывода на экран;
- mov dx,mes0 — в переменную dx записывается адрес строки сообщения, который будет выводиться на экран;
- int 21h — вызов функции 21h, которая выводит на экран сообщение;
- mov ah,8 — установка регистра ah в значение 8, которое определяет функцию ввода без эхо;
- int 21h — вызов функции 21h, которая осуществляет ввод без эхо;
- cmp al,13 — сравнение введенного символа с символом
Enter
(13); - je exit — если символ равен
Enter
, то происходит переход на меткуexit
; - test al,1 — проверка на чётность введенного символа;
- jnz @@1 — если символ нечётный, то происходит переход на метку
@1
; - mov bl,0Ah — установка регистра bl в значение 0Ah, которое определяет красный цвет;
- jmp prn — переход на метку
prn
; - call prnSymbol — вызов функции
prnSymbol
, которая выводит символ на экран; - jmp start — переход на точку начала работы программы;
- exit: int 20h — выход из программы;
- prnSymbol: — начало описания функции
prnSymbol
; - mov ah,9 — установка регистра ah в значение 9, которое определяет функцию вывода на экран;
- xor bh,bh — установка регистра bh в значение 0, которое определяет номер страницы;
- mov cx,1 — установка регистра cx в значение 1, которое определяет количество повторов;
- int 10h — вызов функции 10h, которая выводит символ на экран;
- ret — возврат из функции.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д