(紧急求助) 怎样从键盘输入十六进制数字转换为十进制

老六 2009-04-28 07:26:28
我是个新手
刚学汇编语言程序设计
听讲没怎么弄懂
现在老师给了道题目
要从键盘输入一个十六进制数转换为十进制数字并从键盘输出
我知道这个对高手们来说很简单
但是我很菜
希望能你们能帮帮我
谢谢
...全文
290 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xihajianghu13 2010-11-22
  • 打赏
  • 举报
回复
不知道上面编的什么,看到的是乱码……
weiyongliang 2010-11-01
  • 打赏
  • 举报
回复
这谁编的程序,乱编
scarecrow289 2010-10-29
  • 打赏
  • 举报
回复
我也是个新手,本来还准备也问问的,看样子不能问啊,不然被被老鸟砸砖了
老六 2009-05-01
  • 打赏
  • 举报
回复
sorry
初次发帖
很多东西
都没注意
以后会改进了
谢谢各位前辈的指点和批评
光宇广贞 2009-04-29
  • 打赏
  • 举报
回复
转为packed number 和unpacked number用 x + 30 方式输出十进制数字,就是这两条,自己简单想一下就明白了。
rqshi0315 2009-04-29
  • 打赏
  • 举报
回复
把书看一遍在来问
goodider 2009-04-28
  • 打赏
  • 举报
回复
GOOGLE是最好的老师。问题还是自己解决。实在没办法在问。虽然这样说有些残酷但是楼主要顶住啊。
dulinhui 2009-04-28
  • 打赏
  • 举报
回复
学汇编是要下点苦功夫的
nanlingcg 2009-04-28
  • 打赏
  • 举报
回复
自己一点不做,全叫别人帮你做啊。。。
wxgiter 2009-04-28
  • 打赏
  • 举报
回复
楼主要求太高了,没见过的指令去查查不久行了?--b
老六 2009-04-28
  • 打赏
  • 举报
回复
再补充一下
我们才学到循环指令与循环结构程序设计
谢谢每一个回帖的人
老六 2009-04-28
  • 打赏
  • 举报
回复
大哥 这个似乎有很多指令我们还没学啊
我怎么跟老师解释啊
麻烦您重新给个
行不??
谢谢了
BAYNPU 2009-04-28
  • 打赏
  • 举报
回复
看看吧:
.model small
.data
mess0 db 'tlease input aflag(1-hexadecimal,2-decimalization):$'
mess1 db 'the hexadecimal number is:$'
mess2 db 'the decimal number is:$'
mess3 db 'this si aerror flag,please input again:$'
number dw ?
newline db 10,13,'$'
err db 'error!the number is not hexadecimal!$'
err1 db 'error!the number is not decimal!$'
mesg macro addrs
lea dx,addrs
mov ah,09h
int 21h
endm
.code
.startup
mesg mess0
iflag:mov ah,01h
int 21h
mov cl,al
mov ax,0c01h
int 21h
mesg newline
cmp cl,'1'
jne q_cmp2
mesg mess1
call htob
mov number,bx
mesg newline
mesg mess2
mov ax,number
call btod
jmp quit
q_cmp2:cmp cl,'2'
jne q_cmp
mesg mess2
call dtob
mov number,bx
mesg newline
mesg mess1
mov bx,number
call btoh;
jmp quit
q_cmp:cmp cl,'q'
je quit
mesg mess3
jmp iflag
quit:.exit 0
htob proc near
mov bx,0
again:mov ah,01h
int 21h
cmp al,'h'
je exit1
cmp al,'0'
jl error1
cmp al,'9'
jg char
sub al,30h
jmp next1
char:or al,20h
cmp al,'a'
jl error1
cmp al,'f'
jg error1
next:sub al,37h
next1:cbw
xchg ax,bx
mov cx,16
mul cx
xchg ax,bx
add bx,ax
jmp again
error1:mesg err
exit1:ret
htob endp
dtob proc near
mov bx,0
again1:mov ah,01h
int 21h
cmp al,'d'
je exit2
cmp al,'0'
jl error2
cmp al,'9'
jg error2
sub al,30h
cbw
xchg ax,bx
mov cx,10
mul cx
xchg ax,bx
add bx,ax
jmp again1
error2:mesg err1
exit2:ret
dtob endp
btod proc near
push si
push cs
push dx
mov cx,0
mov dx,0
mov si,10
next2:div si
add dl,30h
push dx
inc cx
mov dx,0
cmp ax,0
jnz next2
mov ah,2
disp:pop dx
int 21h
loop disp
mov dl,'d'
int 21h
pop dx
pop cx
pop si
ret
btod endp
btoh proc near
mov ch,4
mov cl,4
mov bx,number
roleft:rol bx,cl
mov al,bl
and al,0fh
add al,30h
cmp al,3ah
jl disp1
add al,7h
disp1:mov dl,al
mov ah,02h
int 21h
dec ch
jnz roleft
mov dl,'h'
int 21h
ret
btoh endp
end

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧