функция 02 из прерывания 21h выводит только один символ. Если тебе надо выводить длинное число, то тебе надо написать функцию перевода из числа в строку.
Вот например такая функция: Принимает число на AX. Результирующую строку возвращает в массив temp DB 11 DUP(?) который сегменте данных
IntToStr proc
push cx
push dx
push di
push ax
mov cx,10
lea SI,temp
FILL_BUF_:
mov byte ptr [si],' '
inc si
LOOP FILL_BUF_
mov [si+1],'$'
mov di,10
or ax,ax
jns CLR_DVD_
neg ax
CLR_DVD_:
xor dx,dx
div di
add dx,'0'
dec si
mov byte ptr [si],dl
inc cx
or ax,ax
jnz CLR_DVD_
pop ax
or ax,ax
jns NOMORE_
dec si
mov byte ptr [si],'-'
inc cx
NOMORE_:
pop di
pop dx
pop cx
ret
IntToStr endp
А потом выводи получившуюся строку 9_ой функцией int 21h