汇编代码:在代码段中使用栈完成数据的倒序

博客介绍了在代码段使用栈完成数据倒序的汇编代码示例,详细说明了使用masm命令编译、link命令连接、debug命令调试的过程,指出前20H个地址存放数据,代码从20H开始,最终数据实现倒序存储,还建议分别编写代码段、数据段和栈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在代码段中使用栈完成数据的倒序

1、代码如下

assume cs:codesg

codesg segment
	
	dw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H
	dw 0,0,0,0,0,0,0,0 ;用dw定义8个字型数据,在程序加载后,将取得8个字的
						;内存空间,存放这8个数据。我们在后面的程序中将这段
						;空间当作栈来使用
	
	start:  mov ax,cs
			mov ss,ax
			mov sp,32   ;设置栈顶ss:sp指向cs:32
			mov bx,0
			mov cx,8
		s:	push cs:[bx]
			add bx,2
			loop s           ;以上将代码段0~16单元中的8个字型数据依次入栈
			
			mov bx,0
			mov cx,8
		s0:	pop cs:[bx]
			add bx,2
			loop s0     ;以上依次出栈8个字型数据到代码段0~16单元中
			
			
			mov ax,4c00H
			int 21H
		
codesg ends

end start   ;指明程序的入口在start处

2、masm命令进行编译

在这里插入图片描述

3、link命令进行连接

在这里插入图片描述

4、debug命令进行调试

在这里插入图片描述
在这里插入图片描述
可以看到前20H(换成十进制是32字节)个地址用来存放数据,真正的代码是从20H开始的。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
可以看到压入栈中的数据,下面进入到出栈操作

在这里插入图片描述
在这里插入图片描述
可以看到数据进行了倒序存储了
在这里插入图片描述
结束程序
本例只是演示,最好的编程是分别编写代码段,数据段,栈!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值