标题:[求助]子程序从键盘输入的4位十进制数,并转换成对应的二进制数存放在DX寄存 ...
只看楼主
xiaoxiao1551
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-2-4
 问题点数:0 回复次数:1 
[求助]子程序从键盘输入的4位十进制数,并转换成对应的二进制数存放在DX寄存器中,给
请高手帮忙,谢谢
我编的这个程序汇编和链接都正常通过了,可是在执行时,我按题目的要求输入了四位十进制数,
例如:1234回车,可回车后就出现如下的对话框
16位MS-DOS子系统
C:\WINDOWS\SESTEM32\CMD.EXE-------SHIYAN4
NTVDM CPU 遇到无效的指令。
CS:1213 IP:04ED OP:FF FF FF FF FF 选择“关闭”终止应用程序。
关闭 忽略
请高手帮指点一下错在哪里了,编成一个可以符合题目要求的程序。谢谢。

题目要求:编写一个子程序,使它能接收从键盘输入的4位十进制数,并转换成对应的二进制数存放
在DX寄存器中,并给出主程序的调用方式
DHCCC SEGMENT
ASSUME CS:DHCCC
REPEAT: CALL DECIBIN
CALL CRLF
JMP REPEAT
DECIBIN PROC NEAR
MOV DX,0
NEWCHAR: MOV AH,1
INT 21H
SUB AL,30H
JL EXIT
CMP AL,9
JG EXIT
CBW
XCHG AX,DX
MOV CX,10D
MUL CX
XCHG AX,DX
ADD DX,AX
JMP NEWCHAR
EXIT: RET
DECIBIN ENDP
CRLF PROC NEAR
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
RET
CRLF ENDP
DHCCC ENDS
END
搜索更多相关主题的帖子: 二进制数 子程序 寄存器 十进制 键盘 
2007-02-04 18:29
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
得分:0 
REPEAT: CALL DECIBIN
CALL CRLF
JMP REPEAT
是无限循环啊,DECIBIN和CRLF中的RET是结束子过程,而不能结束整个程序

2007-02-07 15:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-119632-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.713127 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved