主题:急求一道汇编程序题源程序!!!!进制转换问题
xlxlxlxl8
[专家分:0] 发布于 2007-06-07 00:20:00
从键盘输入一个补码(1-4位十六进制数),从显示器上以十进制的形式显示其真值
例如:输入:FFFF;输出:=-1 输入:80;输出:=128
输入:E; 输出:=14 输入:FF;输出:=255
求汇编源代码
考试题!!!!!
求高手解答!!!!
回复列表 (共1个回复)
沙发
塞北江南 [专家分:1350] 发布于 2007-06-07 16:23:00
.model small
.386
.stack
.data
outstr db 5 dup(0),'$'
.code
.startup
mov bx,0
mov cx,4
input:
mov ah,1
int 21h
.if al>=41h && al<=46h
sub al,7
.elseif al>=61H && al<=66h
sub al,27h
.elseif !(al>=30H && al<=39h)
jmp endinput
.endif
shl bx,4
and ax,0fh
add bx,ax
loop input
endinput:
MOV AH,2
MOV DL,10
INT 21H
or bx,bx
.if sign?
mov dl,'-'
mov ah,2
int 21h
neg bx
.endif
mov ax,bx
mov cx,10
mov bx,5
.repeat
mov dx,0
div cx
and dx,0fh
add dl,30h
dec bx
mov outstr[bx],dl
.until bx==0
mov dx,offset outstr
mov ah,9
int 21h
.exit 0
end
输入:FFFF;输出:=-0001 输入:80;输出:=00128
输入:E; 输出:=00014 输入:FF;输出:=00255
我来回复