Вывод числа разного цвета в зависимости от условия (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 — возврат из функции.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д