【微机原理与汇编语言】输出n位十进制数

四位十进制
输出4位十进制的数,以1234为例
pop/push
压栈和出栈一次都是压(出)两个字节也就是16位,一个AX寄存器的位置
编写程序的时候,可能这4个寄存器里都存储有数据了,
但是你还需要再用寄存器来存储数据,
这时,4个寄存器就明显的不够用了
可以将原寄存器中的内容压栈,
然后这时寄存器中的数据就存到了内存中的栈段内,寄存器就空出来了,
我们就可以继续使用寄存器来存储新的数据了,
当我们需要使用寄存器中原来的内容时,
我们就可以用POP来从栈段中取出原有的数据了,push pop就相当于是一个数据暂存器👍

DATAS SEGMENT
    ;此处输入数据段代码  
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码段代码
   
   
  
    MOV AX,1234
    MOV BH,1;CNT:入栈次数
    MOV CL,10;除数
    
 AGAIN:
   
   DIV CL;AL->商 AH->余数
   PUSH AX;把余数AH和商AL一并推入栈,最少压两字节,目的压AH保存AH
   
   CMP AL,0
   JE PRINT
   INC BH  ;BH++
   MOV AH,0;保证AX只有商
   JMP AGAIN
PRINT:

   CMP BH,0
   JE OVER
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值