; You may customize this and other start-up templates;
; The location of this template is c:\emu8086\inc\0_com_template.txt
org 100h
call input
add si,1
n1:
mov bx,2
div bx
mov [0530h+si],dx
xor dx,dx
inc si
cmp ax,0
jnz n1
jz n2
n2:
mov [0530h+si],al
dec si
n3:
call vyvod
xor ax,ax
dec si
;loop n3
cmp si,0
jnz n3
ret
proc input
push bx
push cx
push dx
xor bx, bx
xor cx, cx
xor dx, dx
mov ah,01h
int 21h
cmp al,'-'
jne m1 ;Ïðûãíóòü íà ââîä
inc dx
m0:
mov ah,01h
int 21h
cmp al, 39h
ja m2 ;_Çàêîí÷èòü ââîä
cmp al, 0h
m1:
sub al,30h
jb m2 ;_Çàêîí÷èòü ââîä
mov cl,al
shl bx,1
mov ax,bx
shl ax,2
add bx,ax
add bx,cx
jmp m0 ;_Ïîâòîðèòü ââîä
m2:
test dx,dx
jz m3
neg bx
m3:
mov ah, 02h
mov dl, 0dh
int 21h
mov dl, 0ah
int 21h
xor cx,cx
mov ax,bx
pop bx
pop cx
pop dx
ret
endp input
endp proc1
proc vyvod
mov al,[0530h+si]
cmp ax, 0
jne print_ax_r
push ax
mov al, '0'
mov ah, 0eh
int 10h
pop ax
ret
print_ax_r:
pusha
mov dx, 0
cmp ax, 0
je pn_done
mov bx, 10
div bx
call print_ax_r
mov ax, dx
add al, 30h
mov ah, 0eh
int 10h
jmp pn_done
pn_done:
popa
ret
endp
ret