汇编语言程序设计 - 将BX中的无符号数以十进制的形式输出

80x86汇编习题

题目描述:将BX中的无符号数以十进制的形式输出

思路:

1,往bx写入一个数

2,将BX内容放到AX中,与DX一起做除数运算

3,清空DX,因为每次除完余数都会在DX。因为除数不能是立即数,借个寄存器SI来用,把除数10放到SI中

4,余数进栈,计数器加一,看看商是否为0,为0则表示除到了最后一位,可以结束,否则循环

5,出栈到DX,方便打印(打印的是DL的内容),加上'0'对应的aciil码,打印输出,按CX的次数循环

DATAS SEGMENT
	VAR DW 6C3BH
DATAS ENDS

STACKS SEGMENT
    DW 100H DUP(?)
	TOP LABEL WORD  
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV AX,STACKS
    MOV SS,AX
    LEA SP,TOP		;初始化
    
    MOV BX,VAR		;往bx写入一个数
    XOR CX,CX		;清空计数器
    MOV AX,BX		;将BX内容放到AX中,与DX一起做除数运算
    
L1:
	XOR DX,DX		;清空DX,因为每次除完余数都会在DX
	MOV SI,10		;因为除数不能是立即数,借个寄存器SI来用,把除数10放到SI中
	DIV SI
	PUSH DX			;余数进栈
	INC CX			;计数器加一
	CMP AX,0		;看看商是否为0,为0则表示除到了最后一位,可以结束
	JNE L1			;否则循环
	
L2:
	POP DX			;出栈到DX,方便打印(打印的是DL的内容)
	ADD DL,'0'		;加上'0'对应的aciil码
	MOV AH,2		
	INT 21H			;打印输出
	LOOP L2			;按CX的次数循环
    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START
;输入内容:6C3BH
;输出内容:27707

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值