永发信息网

硬盘上有个程序,运行时要装进内存,但程序代码被装入内存的什么位置,是由什么决定的?

答案:4  悬赏:20  手机版
解决时间 2021-03-17 12:29
还有,8086汇编的数据/代码段有啥用,能建立多少个,能否通俗的概述一下。学了半天汇编,到头来来怎么一回事都不懂。。。。。。
51单片机到明白,程序放在rom里,cpu从rom里读取,执行,也没啥段的概念。80x86内存到底分配使用,是在迷糊。。。。

基本咋回事不条理,具体也不大会问,就请高手看着给我概述一下吧。满意的话再加100分。

谢拉!!!!

=======既然内存分配是操作系统完成的,那么汇编时还要分什么数据段,代码段什么的干嘛,还要cs,ds干嘛??==========
最佳答案
问题没那么复杂,楼主是希望得到原理层次上的回答吧。

1、硬盘程序装入内存,其位置由操作系统决定,也就是写操作系统程序的人,来决定。

2、8086数据段存数据,代码段存代码,以示类型的分别。
比如,同样00010001,计算机怎么知道是数据11H,还是汇编指令的机器码呢?

3、“51单片机到明白,程序放在rom里,cpu从rom里读取,执行”。这只是程序代码的情况,其实里面也分数据段、代码段。

4、“有了操作系统,还要汇编中的数据段、代码段,CS、DS干什么?”
因为汇编是转成机器码以后直接执行的,这些是让你直接指挥机器干活的工具啊。

5、你用C/C++等语言的话,则是由编译器来把它们转换成汇编程序。
全部回答
=======既然内存分配是操作系统完成的,那么汇编时还要分什么数据段,代码段什么的干嘛,还要cs,ds干嘛??========== 内存中可存放数值的储存位置为地址。8086地址总线有20位,所以CPU拥有达1M的寻址空间,这也是DOS的有效控制范围,早期CPU的寄存器都是16位的,仅限于处理16位数据,即只有0到64K,如果内存不大于64K, 问题就简单了。但是计算机的发展很快就突破了64K内存。为了访问大于64K的内存,出现了段的概念,即将内存分为大小为64K的段。所以,必须用分段寻址才能控制整个内存地址。完整的20位地址可分成两部份:1.段基址(Segment):16位二进制数后面加上四个二进制0,即一个16进制0,变成20位二进制数,可设定1M中任何一个64K段,通常记做16位二进制数;2.偏移量(Offset):直接使用16位二进制数,指向段基址中的任何一个地址。如:2222(段基址):3333(偏移量),其实际的20位地址值为:25553。 在16位编程中,段是必不可少的。幸运的是,这个问题已经在32位Windows(95及以上)中得到解决。32位编程可以不用考虑段的概念了,可以直接寻址4GB。
b内存
程序代码被装入内存的什么位置,是由操作系统决定,没有操作系统的电脑是不能运行软件的。操作系统拥有管理内存的能力。 一个程序在系统内存中是这样表示的: /------------------\ 内存低地址 | | | 文本 | | | |------------------| | (已初始化) | | 数据 | | (未初始化) | |------------------| | | | 栈 | | | \------------------/ 内存高地址 文本区域是由程序确定的, 包括代码(指令)和只读数据. 该区域相当于可执行文件的文本段. 这个区域通常被标记为只读, 任何对其写入的操作都会导致段错误。 数据区域包含了已初始化和未初始化的数据. 静态变量储存在这个区域中. 数据区域对应可执行文件中的data-bss段. 它的大小可以用系统调用来改变.如果bss数据的扩展或用户栈把可用内存消耗光了, 进程就会被阻塞住, 等待有了一块更大的内存空间之后再运行. 新内存加入到数据和栈段的中间. 栈是一个在计算机科学中经常使用的抽象数据类型. 栈中的物体具有一个特性:最后一个放入栈中的物体总是被最先拿出来, 这个特性通常称为后进先出(LIFO)队列.调用一个C函数就在这里发生一大堆的操作,如传递参数。。。。 这些和单片机有区别,很难简单说清楚,可以写一本书的了。 你学了<<操作系统原理>>,同时学习一下windows的编程就懂了。 注意了,程序在很多现代操作系统里都只能操作逻辑地址,不能操作物理地址,如A程序的0xFF地址和B程序的0xFF地址是不同的,大家都影射到不同的物理地址。这是为了防止程序错误地影响其他程序。 也就是将数据错误地写入其他程序的重要区域,从而使其他程序结束在现在的多数操作系统是不会发生。 要资料就给我发邮件,我给你发一份。Fixend@163.com
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国移动咸安环城四通营业厅地址有知道的么?
台资味(大学城店)的台南土豆烧肉便当好不好
在淘宝买的火车票过时能取出火车票吗
三星s6信息中的字体变大如何变小
lol塔姆的输出装是该出AP还是AD
中国就没有橄榄油吗?为什么都是国外的
天龙八部2极光流萤 寻夫
解放西街地址在什么地方,想过去办事
在黑龙江佳木斯开一间酒吧需要多少钱!
正宗云南三七产自文山哪个县
求一部变身初音未来到我要成为双马尾的文
有九个外形完全相同的小球其中有一个是空心的
第7街烘焙工坊地址在什么地方,想过去办事
荆门到荆州每天有几班车票价是多少钱
考研工科排名
推荐资讯
委托贷款的会计处理
旅游和男导游发生关系,回来了我们对方谁也没
说罢的近义词是什么
业彬内科诊所地址有知道的么?有点事想过去
健康保险哪个公司最好
常温常压下,14g由N2和CO组成的混合气体含有
百家好BASIC HOUSE(乐和城购物广场店)地址有
猫咪呕吐两次,昨天吃过猪肝,全吐出来了。今
喋血孤岛春妮扮演者是谁
长滩加油站这个地址在什么地方,我要处理点事
女友说好想一直跟你在一起,可是很多事情不允
西游之路仅仅是一条取经之路吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?