https://pastein.ru/t/xr
скопируйте уникальную ссылку для отправки
include 'emu8086.inc'
org 100h
back:
print 'Выберите систему счисления от 2 до 16:'
call input
cmp al,17
JAE car
cmp al,1
jle car
mov [privet],ax
xor ax,ax
xor bx,bx
xor cx,cx
xor dx,dx
jmp car2
car:
print 'Введено не правильное число'
jmp end
jmp car2
car2:
print 'Введтите переводимое число(от 1 до 32767):'
call input
add si,1
n1:
mov bx,[privet]
div bx
mov [0530h+si],dx
xor dx,dx
inc si
cmp ax,0
jnz n1
dec si
print 'Результат:'
jz n2
n2:
cmp si,0
jz end
mov al,[0530h+si]
dec si
n3:
cmp al,10
jz a
cmp al,11
jz b
cmp al,12
jz c
cmp al,13
jz d
cmp al,14
jz e
cmp al,15
jz f
cmp al,16
jz 10
jmp k1;-----------------------------
k1:
call vyvod
xor al,al
jmp n2
a:
print 'A'
xor ax,ax
jmp n2
b:
print 'B'
xor ax,ax
jmp n2
c:
print 'C'
xor ax,ax
jmp n2
d:
print 'D'
xor ax,ax
jmp n2
e:
print 'E'
xor ax,ax
jmp n2
f:
print 'F'
xor ax,ax
jmp n2
10:
print 10
xor ax,ax
jmp n2
end:
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 ;I?uaioou ia aaia
inc dx
m0:
mov ah,01h
int 21h
cmp al, 39h
ja m2 ;_Caeii?eou aaia
cmp al, 0h
m1:
sub al,30h
jb m2 ;_Caeii?eou aaia
mov cl,al
shl bx,1
mov ax,bx
shl ax,2
add bx,ax
add bx,cx
jmp m0 ;_Iiaoi?eou aaia
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
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
endp proc1
privet dw ?
ret