汇编语言第六章包含多个段的程序

本文探讨了程序在运行时如何获取内存空间,包括加载时分配和执行过程中动态申请。通过示例代码展示了数据、代码和栈在单一数据段以及不同段中的组织方式,阐述了栈操作的基本原理。实验五中,数据段存放数据,代码段包含指令,而栈用于存储变量。通过对栈的push和pop操作,实现了数据的入栈和出栈,展示了内存管理的基础概念。
摘要由CSDN通过智能技术生成

程序取得所需的内存空间的两种方法

  • 加载程序的时候为程序分配
  • 程序执行的过程中向系统申请

在代码中使用数据

在代码中使用栈

问题

在一个数据段中存放数据、代码、栈,首先体会一下不使用多个段时的情况
将数据、代码、栈放入不同的段中

实验五

assume cs:code,ds:data,ss:stack
data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends

stack segment
dw 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
srack ends

code segment
start:mov ax,stack
mov ss,ax
mov sp,20h

mov ax,data
mov ds,ax

mov bx,0

mov cx,8
s:push [bx]
add bx,2
loop s

mov bx,0

mov cx,8
s0:pop [bx]
add bx,2
loop s0

mov ax,4c00h
int 21h

code ends
end start
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值