По введенному номеру месяца вывести время года - Assembler (223448)
Формулировка задачи:
Помогите найти ошибку.
При вводе цифры от 10 до 11 появляется надпись о том что я ввел номер зимы, а должен показать что я ввел номер осени. Вот сам код:data segment ;описание сегмента данных
mes db 'Enter the number of the month: $' ;сообщение - Введите номер месяца
zima_message db 10, 13, 'Zima$' ;сообщение - зима
vesna_message db 'Vesna$' ;сообщение - весна
leto_message db 'Leto$' ;сообщение - лето
osen_message db 'Osen$' ;сообщение - осень
data ends ;конец сегмента данных
code segment ;начало сегмента кода
start: ;метка start - начало нашей программы
assume cs:code, ds: data ;директива компилятора
mov ax, data ;настройка сегмента данных
mov ds, ax ;
;--------------Очищаем экран--------------
mov ah, 0fh ;получить параметры видеорежима
int 10h ;
mov ah, 00 ;установить параметры видеорежима
int 10h ;
;--------------Выводим сообщение на экран--------------
mov ah, 9 ;функция №9 - вывод строки на экран
lea dx, mes ;берём адрес строки
int 21h ;вызов прерывания для вывода строки
;--------------Вводим число с клавиатуры--------------
mov ah, 1 ;ввод с клавиатуры и чтение с клавиатуры
int 21h ;ввод с клавиатуры и чтение с клавиатуры
sub al, 30h ;переводим символ в число
mov bl, al ;запоминаем первое число в bl
int 21h
;--------------Проверяем введенное число--------------
cmp bl,2
jbe zima
cmp bl,5
jbe vesna
cmp bl,8
jbe leto
cmp bl,11
jbe osen
;--------------Выводим сообщение на экран--------------
zima: lea dx, zima_message
jmp vivod
vesna: lea dx, vesna_message
jmp vivod
leto: lea dx, leto_message
jmp vivod
osen: lea dx, osen_message
jmp vivod
vivod: mov ah,9
int 21h
mov ax, 4c00h ;функция завершения программы
int 21h ;завершаем программу
code ends ;конец сегмента кода
end start ;конец программы с точкой входа startРешение задачи: «По введенному номеру месяца вывести время года»
textual
Листинг программы
jmp m1 ;безусловный переход на метку m1 mov dl, '$' ;данная команда не будет выполнена m1: mov dh, 100 ;