自学王爽老师《汇编语言》笔记——第6章 包含多个段的程序
第6章 包含多个段的程序
程序取得所需空间的方法有两种:
- 加载程序的时候为程序分配
- 程序在执行过程中向系统申请
6.1 在代码段中使用数据
- “dw”的含义是定义字型数据,即“define word”。
- dw定义的数据处于代码段的最开始。
- 在代码段中使用数据时需要在源程序中指明程序的入口所在。
- end除了通知编译器程序结束外,还可以通知编译器程序入口在什么地方。
- 我们若要CPU从何处开始执行程序,只要在源程序中用“end 标号”指明就可以了。
程序框架:
assume cs:code code segment : : 数据 : : start: : : 代码 : : code ends end start
6.2 在代码段中使用栈
dw的作用可以用来定义数据,也可以用它来开辟内存空间。
6.3 将数据、代码、栈放入不同的段
- 我们用和定义代码段一样的方法来定义多个段,然后在这些段里面定义需要的数据,或通过定义数据来获得栈空间。
- 在程序中,段名就相当于一个标号,它代表了段地址。
- “代码段”、“数据段”、“栈段”完全是我们的安排
assume cs:code, ds:data, ss,stack data segment dw ..,..,..,.., ... data ends stack segment dw 0,0,0,0,0,0,0, ... stack ends code segment start: : : : code ends end start
实验5 编写、调试具有多个段的程序
- 一个段最少占用16的倍数个字节。
- 用db定义字节型数据。
- 不指明程序的入口,程序将从我们代码的第一行开始读取。