四位十进制
输出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