汇编语言怎样实现从键盘输入一个十六进制数打印出其对应的十进制?
请给我源码!谢咯...
汇编语言怎样实现从键盘输入一个十六进制数打印出其对应的十进制?
请给我源码!谢咯...
assume cs:code
code segment
main proc near
Begin:
call Input
mov dl, 0ah
mov ah, 02h
int 21h
mov dl, 0dh
int 21h
call ToDec
mov dl, 0ah
int 21h
mov dl, 0dh
int 21h
jmp Begin
Exit:
mov ah, 4ch
int 21h
ret
main endp
Input proc near
mov dh, 00h;
mov bx, 0000h
Loop1:
cmp dh, 03h
jg Ret1;
mov ah, 07h
int 21h
cmp al, 1bh
je Exit
mov dl, al
mov ah, 02h
int 21h
sub al, 30h
cmp al, 0ah
jl Num
add al, 30h;
sub al, 61h
add al, 0ah;
cmp al, 10h
jl Let
jmp Ret1
Num:
cmp al, 00h
jl Ret1
jmp Bin
Let:
cmp al, 0ah
jl Ret1
jmp Bin
Bin:
mov cl, 04h
shl bx, cl
mov ah, 00h
add bx, ax
add dh, 01h
jmp Loop1;
Ret1:
ret
Input endp
ToDec proc near
mov cx, 10000d
mov ax, bx
mov dx, 0000h
div cx
call Output
mov cx, 1000d
mov ax, bx
mov dx, 0000h
div cx
call Output
mov cx, 100d
mov ax, bx
mov dx, 0000h
div cx
call Output
mov cx, 10d
mov ax, bx
mov dx, 0000h
div cx
call Output
mov ax, bx
call Output
Ret2:
ret
ToDec endp
Output proc near
mov bx, dx
add al, 30h
mov dl, al
mov ah, 02h
int 21h
Ret3:
ret
Output endp
code ends
end
运行效果