汇编输出十进制数

最近,老师让写一个汇编程序,结果除了helloworld 其他都不会输出,输出个数字 还变成乱码,查阅资料后,发现输出到是ASCII码对应到字符,无奈只能一个一个输出。
贴代码之前先补充一下:

BIOS 中断 INT 10H 显示字符 AH = 0EH 显示 AL 里面的数据简单来说就是
MOV AH,0EH
INT 10H
屏幕就会输出 AL 里面ASCII 码 对应到字符 

其他的注释都有了,也没什么好说到了,感谢 baidu 

COUTD:				;将双字AX化为10 进制并显示
	PUSH BX			;BX,CX,DX 入栈,保存现场
	PUSH CX
	PUSH DX
	MOV BX,10		;转换成10进制,所以BX <= 10
	XOR CX,CX		;清空 CX
C0:	XOR DX,DX		;清空 DX
	DIV BX			;AX 除以 BX,DX <= 余数, AX <= 商
	OR DX,0E30H		;DX|0E30H 结果 DH = 0EH DL =30H+余数  
	PUSH DX			;商的ASCII码入栈	
	INC CX			;CX 自加 用于 出栈时计数
	CMP AX,0		;比较AX 与 0 
	JNZ C0			;若AX(商) 不为 0 则 高位还有数 跳转到C0 继续进行计算 
C1:	POP AX			;出栈到AX 此时 AH = 0EH AL = 十进制数到ASCII码
	INT 10H			;AH = 0EH 将AL 输出到屏幕
	LOOP C1			;CX 不为0 则跳转到C1继续出栈 输出
	POP DX			;BX,CX,DX 出栈,恢复现场
	POP CX
	POP BX
	RET





  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值