汇编网首页登录博客注册
byzero的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
好友圈
文章收藏
友情链接

[2010-07-16 19:20] 汇编语言——第八天

在操作系统的环境中,合法地通过操作系统取得的空间都是安全的,因为操作系统不会让一个程

序所用的空间和其他程序以及系统自己的空间相冲突。早操作系统允许的情况下,程序可以取得任意

容量的空间。
    陈旭取得所需空间的方法有两种,一是在加载程序的时候为程序分配,再就是程序在执行的过程

中向系统申请。在我们的课程中,不讨论第二种方法。
    我们若要一个程序在被加载的时候取得所需的空间,则必须要在原程序中作出说明。我们通过在

原程序中定义段来进行定内存空间的获取。

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,就不能放在一个段中,所以,应该考虑用多个段来存放数据、代码和栈。我们用

和定义代码段一样的方法来定义多个段,然后再这些段里面定义需要的数据,或通过定义数据来取得

栈空间。具体方法见文中例题。
评论次数(1)  |  浏览次数(1453)  |  类型(汇编笔记) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码