汇编语言数值显示 的子程序dtoc.asm

这篇博客探讨了汇编语言中用于数值显示的子程序dtoc.asm,作者分享了学习过程,并诚邀专家进行指导。

继续学习,昨天实验10.3数值显示的子程序dtoc.asm,请各位大神指正!

assume cs:code,ds:data

data segment
	db 10 dup (0)
data ends

code segment

start:
	mov ax,12666
	mov bx,data
	mov ds,bx
	mov si,0
	call dtoc
	
	mov dh,8
	mov dl,3
	mov cl,2
	call show_str
	
	mov ax,4200h
	int 21h
	
	dtoc:
		push bx
		push cx
		push dx
		push si
		push di
		mov di,0
		s:
			mov dl,al					;低位暂存入dl
			mov al,ah					;高位赋值给低位
			mov ah,0
			mov bl,0ah
			div bl						;高位除以10,余数放入ah
			mov dh,al					;高位的商,先放入dl寄存
			mov al,dl					;原来的低位重新赋值到al,加上高位除法后的商ah,进行除法
			div bl						;余数加低位除以10,余数放入ah,商在al
			mov dl,ah					;余数放入DL
			mov ah,dh					;高位商和低位商整合为总的商,放入ax下次使用
			add dx,30h					;余数加30,转换位asii码
			push dx						;asii码入栈
			inc di
			mov cx,ax
			jcxz ok						;被除数为0时,结束循环
			jmp s						
			ok:
				mov cx,di
				s0:
					pop dx				;入栈出栈,调整字符顺序
					mov byte ptr ds:[si],dl
					inc si
					loop s0
				mov byte ptr ds:[si],0
			
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值