如何保证汇编程序中的同段数据或指令在载入内存后还能在相同段

段地址必须是1000h的整数倍才能保证一个段的长度64k,如果不能给出确切的段地址,段长度也许只有16字节,那就不能保证同段数据或指令在同一段中,程序就不能正常运行。程序... 段地址必须是1000h的整数倍才能保证一个段的长度64k,如果不能给出确切的段地址,段长度也许只有16字节,那就不能保证同段数据或指令在同一段中,程序就不能正常运行。程序的内存地址是系统分配的,自己不能控制,所以如何保证
好像自己能分配的安全的内存空间只有256个字节。就算能自己分配内存,比如我的程序有两个段第一个数据段,内存地址从10000h到1FFEFh,第二个指令段,可用地址只有1FFF0h到1FFFFh16个字节,可我的指令要占大于16字节的空间怎么办。
展开
 我来答
做而论道
高能答主

2015-10-09 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
程序的内存地址是系统分配的,自己不能控制,

--可以控制。
追问
好像自己能分配的安全的内存空间只有256个字节。就算能自己分配内存,比如我的程序有两个段第一个数据段,内存地址从10000h到1FFEFh,第二个指令段,可用地址只有1FFF0h到1FFFFh16个字节,可我的指令要占大于16字节的空间怎么办。
追答
什么是分配?
谁分配的?

计算机刚启动时,汇编语言程序就开始工作了。
此时,DOS、WINDOWS,什么系统,都还没有出来呢。
汇编语言,那有你说的,这些限制?
-----------------------

我有两个段第一个数据段,内存地址从10000h到1FFEFh,
第二个指令段,可用地址只有1FFF0h到1FFFFh16个字节,
可我的指令要占大于16字节的空间怎么办。
--你有意这么安排,当然,你就只有 16 字节了。

--要是把 10000h 前面,利用起来,不就可以了?

数据、代码,都可以单独占一个 64K 的存储范围。

如果需要,也可以由你自己,改变 DS 以及 CS 的值,
转到另外一个 64K 中去。
一个大程序,代码,超过 64K,也是可能的,何止 16 字节?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式