能力值:
( LV4,RANK:50 )
|
-
-
2 楼
段地址一般首先存在于段寄存器中,8086共有四个段寄存器,在编程开始阶段,数据段寄存器,代码段寄存器必须首先进行人为初始化,否则程序无法运行,堆栈寄存器可以人为或者是程序开始时系统指定,附加段寄存器其实就是个变量,贮存其它段寄存器的内容,这样看来,所有的段寄存器的值应该是很确定的
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
这需要看看编译器是如何编译的知识吧,还有编译原理的东西吧。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
按c++工程的理解,data的值是随机的,虽然值是不确定的,但是只要已经声明了这个变量,编译器应该就可以顺利进行编译,至于是否会在运行中出错,那就不是编译器的职责了。。。
|
能力值:
( LV9,RANK:180 )
|
-
-
5 楼
会被纳入重定位表里.
DOS会根据重定位表去修正
你可以看DOS EXE文件头相关资资讯
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
学习了,4个段寄存器,必须要确定代码段和数据段地址
cs为代码段,DS为数据段,SS为堆栈段,ES为附加段
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
菜鸟理解的是 四个段寄存器在指令执行前,系统都赋予初始值了,只是这个值是随机的,取决于CPU当前执行到的状态。
初学汇编,若这种思路有错,恳请高手斧正
|
能力值:
( LV9,RANK:140 )
|
-
-
8 楼
会根据PE头里定义的映像基质计算出一个地址。在加载时再根据重定位计算出加载后的地址
|
|
|