在操作系统的环境中,合法地通过操作系统取得的空间都是安全的,因为操作系统不会让一个程
序所用的空间和其他程序以及系统自己的空间相冲突。早操作系统允许的情况下,程序可以取得任意
容量的空间。
陈旭取得所需空间的方法有两种,一是在加载程序的时候为程序分配,再就是程序在执行的过程
中向系统申请。在我们的课程中,不讨论第二种方法。
我们若要一个程序在被加载的时候取得所需的空间,则必须要在原程序中作出说明。我们通过在
原程序中定义段来进行定内存空间的获取。
1.在代码段中使用数据
“dw”的含义是定义字型数据。dw即“define word”具体使用方法见文中例题。
我们若要CPU从何处开始执行程序,只要在源程序中“end 标号”知名就可以了。
有了这种方法, 就可以这样来安排程序的框架:
assume cs:code
code segment
....
....
数据
....
....
start:
....
....
代码
....
....
code ends
end start
2.在代码段中使用栈
具体见例题,关于程序6.3的dw为什么定义16个字型数据,而不是定义8个,开始我也疑惑,后来
在论坛中看到有坛友的回答如下:
8个是够了,但cpu会用栈保存一些数据,用来记录现时的情况,如果你用T命令单步执行,会有
其他的数据入栈,如果只定义8个,那些数据会把原来的数据覆盖掉。现在你理解到这里就可以了,
至于为什么会这样,以后的章节能学到
3.将数据、代码、栈放入不同的段
一个段的容量不能大于64KB,这是我们再学习中所用的8086模式的限制,如果数据、栈和代码需
要的空间超过64KB,就不能放在一个段中,所以,应该考虑用多个段来存放数据、代码和栈。我们用
和定义代码段一样的方法来定义多个段,然后再这些段里面定义需要的数据,或通过定义数据来取得
栈空间。具体方法见文中例题。
- [游客] 石职wsd专升本da卡 11/18 15:28
- [游客] 石职wsd专升本da卡 11/18 15:28
- [游客] 似乎这个站点没有什么新鲜的活力了 07/23 18:22
- [游客] 博主有没有学习群 07/23 19:14
- [游客] 可以的 07/23 19:13
- [游客] aaaaaaaaaaaa 09/19 13:49
- [jinshuwen] 很有收获! 01/19 16:25
- [hujie0421] 谢谢分享 02/01 05:14
- [jiejie] 来学习一下 10/01 11:31
- [yexueyao] 谢谢,我是学习计算机专业的,汇编语言一学期几乎没听懂过,看你的日记,很有帮助,我会加油学的,期末要拿 11/12 10:14
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:39
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:39
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:38
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:38
- [bingfeixue] masm32 汇编器具体怎么用啊 04/28 09:24