Реализация ветвления
Вот текст программы. Почему то при ввод данных выводит ответ то Ф, то У, хотя добавляю к регистру dl код нулевого символа.
...
mov al,3
cmp x,al
jl lower
heigher:
mov al,a
add al,x
jmp short l1
lower:
mov al,7
add al,x
l1:
mov dl,al
add dl,'0'
mov ah,2
int 21h
...
Так только от 0 до 9 цифры можно вывести (прибавкой символа 0). Смотрите форум, где-то аналогичное обсуждалось..
Цитата: sadovoya
Так только от 0 до 9 цифры можно вывести (прибавкой символа 0). Смотрите форум, где-то аналогичное обсуждалось..
при вводе исходных данных 3 и1 как раз и получается одно число, одна цифра
Код:
;------------------------------------------------------------------
; Задача: если x<3, то y=7+x. В противном случае, y=a+x.
;
; Для ответа состоящего из одной цифры только.
;
; Компилировать: ml /AT dig.asm
;------------------------------------------------------------------
code segment
assume cs:code, ds:code
org 100h
begin:
jmp short cd
a db 1
x db 3
cd:
mov al,3
cmp x,al
jl lower
heigher:
mov al,a
add al,x
jmp short l1
lower:
mov al,7
add al,x
l1:
mov dl,al
add dl,'0'
mov ah,2
int 21h
ret
code ends
end begin
; Задача: если x<3, то y=7+x. В противном случае, y=a+x.
;
; Для ответа состоящего из одной цифры только.
;
; Компилировать: ml /AT dig.asm
;------------------------------------------------------------------
code segment
assume cs:code, ds:code
org 100h
begin:
jmp short cd
a db 1
x db 3
cd:
mov al,3
cmp x,al
jl lower
heigher:
mov al,a
add al,x
jmp short l1
lower:
mov al,7
add al,x
l1:
mov dl,al
add dl,'0'
mov ah,2
int 21h
ret
code ends
end begin