汇编——print一个十进制数

博客目录

开发环境:Emu8086 v3.05  小端模式

功能及参数表见代码注释

	mov ax,156
	call showa
	ret
showa:	;显示一个十进制数-------------------------------------proc of show_one	数在ax中16位
	 		;div 除法: 被除数: 如果除数是8位则被除数为16位, 默认放在AX中, 如果除数是16位, 则被除数为32位, 默认高位放在DX, 低位放在AX
	 		;	    结果: 如果除数是8位, 那么执行div后, 余数存放在ah, 商存放在AL中; 如果除数是16位, 那么AX保存商, DX保存余数 
	pushf
	push bx
	push cx
	push dx
	;mov ax,ax
	mov bx,0
shoa_lp:
	mov cx,10
	div cl
	mov cl,ah
	mov ch,0
	push cx
	inc bx	;计数
	mov ah,0
	cmp ax,0
	ja shoa_lp
	
	mov ah,02h
	mov cx,bx
shoa_lp1:
	pop bx
	mov dl,bl
	add dl,'0'
	int 21h
	loop shoa_lp1
	pop dx
	pop cx
	pop bx
	popf
	ret
	;-------------------------------------------------------------------------------

猜你喜欢

转载自blog.csdn.net/greybtfly/article/details/80532933