Помогите пожалуйста в таком вопросе:
Я написал програму которая выводит на экран число которое хранитса в Number'e (число может как одно- так и многозначным).Вот код:
Код: Выделить всё
;Вывод на экран числа которое задаетса в переменной Number
.186
.model tiny
.stack 100h
.data
Number = 39
Result db 3 dup(?),'$'
.code
_start:
mov ax,@data
mov ds,ax
mov es,ax
mov di,[offset Result+2]
mov dx,offset Result
mov ax,Number
;--------------------------------------------------------
labe1:
std
mov ch,10
div ch
add ah,'0' ; Этот блок перевода одного числа в его ASCII код
xchg al,ah
stosb
;--------------------------------------------------------
cmp ah,0 ; Этот блок проверяет равно ли частное 0 если да то выводит строку на
je _Exit ; экран и завершает работу програмы
;--------------------------------------------------------
xchg al,ah
cbw ;Этот блок обменивает обратно значениями регистры al и ah и
jmp labe1 ; повторяет блок перевода одного числа в его ASCII код
;---------------------------------------------------------
_Exit:
xor ax,ax
mov ah,09h
int 21h
mov ax,4c00h ; Этот блок для вывода на экран строки и завершения програмы
int 21h
end _start
Програма работает нормально, все отлично.
Но постает несколько вопросов:
№1.
Как заранее предусмотреть размер Result'a, просто я на основе этой програмы хочу написать прогу которая читает с экрана, а потом выводит на экран число и в таком случае я незнаю какого размера будет введное чило?
№2
Командой mov di,[offset Result+2] я перемистилса в конец Result'a ( несчитая символа $).Можно ли это зделать как-то более удобным способом, учитывая что я небуду знать размер Result'a?