进制转换问题 请有经验的汇编高手 进来指点一二

beichengxue 2011-04-09 04:34:22
内容:用子程序设计的方法,从键盘输入2位16进制数,并在屏幕上以10进制数显示.然后我的编程如下
data segment
dat dw ?
rec dw 2 dup(?)
data ends
code segment
assume cs:code,ds:data
start:
push ds
mov ax,data
mov ds,ax
mov bx,0
newchar:mov ah,1
int 21h
sub al,30h
jl ini
cmp al,10
jl add_to
sub al,27h
cmp al,0ah
cmp al,0ah
jl ini
cmp al,10h
jge ini
add_to:
mov cl,4
shl bx,cl
mov ah,0
add bx,ax
mov dat,bx
jmp newchar
ini:
mov ax,dat
mov bx,10
mov si,4
change:
mov dx,0
div bx
mov [rec+si],dl
dec si
cmp ax,0
ja change
next:
inc si
mov dl,[rec+si]
add dl,30h
mov ah,02h
int 21h
cmp si,4
jb next
mov dl,20h
mov ah,02h
int 21h
exit:
mov ah,4ch
int 21h
code ends
end start
调试时不懂怎么从键盘输入,所以也不知道程序是否可行,各位大侠帮帮忙,指点一二,万分感谢!

...全文
108 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
beichengxue 2011-04-10
  • 打赏
  • 举报
回复
谢啦。。。
masmaster 2011-04-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 beichengxue 的回复:]
有两个warning 说第38和44行operand types must match,之后操作按大虾的说法做觉得有点怪,能否在详细一点。。。。辛苦您了!
[/Quote]
mov byte ptr [rec+si],dl
beichengxue 2011-04-09
  • 打赏
  • 举报
回复
有两个warning 说第38和44行operand types must match,之后操作按大虾的说法做觉得有点怪,能否在详细一点。。。。辛苦您了!
masmaster 2011-04-09
  • 打赏
  • 举报
回复
编译通过了吗? 如果出错贴出错信息。
PS:debug的时候, 遇到mov ah,1的时候, 按T,遇到int 21H的时候, 按P,此时输入字符。

21,459

社区成员

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

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