26.10.2021, 12:20
общий
это ответ
Доброе время суток!
В приложении, код Tasm:
[code lang=asm]model tiny,pascal
locals @@
.code
org 100h
begin: call inputNum,offset dbInput
or ax,ax
jz @@01
call outputNum,ax,2,offset dboutput
call outputNum,ax,8,offset dboutput
call outputNum,ax,10,offset dboutput
call outputNum,ax,16,offset dboutput
jmp begin
@@01: ret
outputNum proc,a:word,b:word,c:word
uses ax,bx,cx,dx
mov ah,9
mov dx,c
int 21h
mov ax,b
aam
or ax,'00'
push ax
xchg ah,al
int 29h
pop ax
int 29h
mov al,')'
int 29h
mov ax,a
mov bx,b
xor cx,cx
@@02: xor dx,dx
div bx
push dx
inc cx
or ax,ax
jnz @@02
@@03: pop ax
cmp al,10
jb @@04
add al,7
@@04: add al,'0'
int 29h
loop @@03
ret
outputNum endp
dbInput db 10,13,'number>$'
dbOutput db 10,13,'system($'
inputNum proc,a:word
uses bx,cx,dx,si
mov ah,9
mov dx,a
int 21h
xor si,si
xor di,di
mov bx,10
@@01: xor ax,ax
int 16h
cmp al,13
jz @@03
cmp al,'-'
jnz @@02
or si,si
jnz @@01
or di,di
jnz @@01
int 29h
mov di,-1
jmp @@01
@@02: cmp al,'0'
jb @@01
cmp al,'9'
ja @@01
push ax
int 29h
pop ax
and ax,0Fh
xchg ax,si
xor dx,dx
mul bx
add si,ax
jmp @@01
@@03: mov ax,si
or di,di
jz @@04
neg ax
@@04: ret
inputNum endp
end begin[/code]
Контролируется ввод, попробуйте ввести, что-то вроде 12-23 или --1234.
Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.