. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->包含多个段的程序
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  如果程序超过了64K怎么办?  [待解决] 回复[ 3次 ]   点击[ 343次 ]  
assemblyeaten
[帖 主]   [ 发表时间:2013-05-17 15:21 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-05-11 10:43
8086CPU因为硬件设计上缘故,和寻址方式的特点,定义一个段最大只能是64KB,如果一个程序里定义了堆栈段、数据段和代码段,但是如果因为程序比较大,每个段的64KB都不够用怎么办??这种情况下程序该如何开发???

我自己想象的情况是,可以把这个源程序分成几个小的源程序模块来编写,然后在进行编译和链接的时候再联系到一起。或者在程序中使用跳转指令,一个段之所以只能有64KB的大小,是因为在段地址确定的情况下,偏移地址的寄存器只有16位,只能从0000-FFFF,所以,只要改变段地址,那就又可以有一个64KB的空间来用了,从而实现跨越一个段超越64KB空间的应用目的。

如果有高手知道的话,麻烦讲解一下啦,谢啦。。最好能有个程序实例。。。。。。
assemblyeaten
[第1楼]   [ 回复时间:2013-05-18 11:34 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-05-11 10:43
追问:一个源程序中可不可以定义多个数据段,多个堆栈段,多个代码段????做好命名工作,以及代码执行的标号就可以了。。。可不可以??????????
assemblyeaten
[第2楼]   [ 回复时间:2013-05-18 11:34 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-05-11 10:43
算了,自己尝试一下吧。。。。
xcf0631
[第3楼]   [ 回复时间:2013-07-05 08:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-06-11 13:26
后面子程序你就懂了。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved