Go Main
用汇编写程序时,调试 远行一切正常
当使用C时,发现load 后能进入_cint0,但点go main 程序就会跑飞(不能执行 call main那行 )
请问这会是由什么原因引起的?
期待回复。。。。。。
等待高手解答,将帖子顶一下!
把你的程序贴出来看看。
cmd 文件
MEMORY
{
PAGE 0:
PM: origin=8020h, length=0130h
PAGE 1:
B0: origin=0200h, length=0100h
B1: origin=0300h, length=0100h
B2: origin=0060h, length=0020h
}
SECTIONS
{
.text {} > PM PAGE 0
.cinit {} > B0 PAGE 1
}
而主程序只是
main()
{
;
}
这是.map的内容
.text 0 00008020 0000007f
00008020 00000027 rts2xx.lib : boot.obj (.text)
00008047 0000004f : exit.obj (.text)
00008096 00000009 main.obj (.text)
.cinit 1 00000200 00000007
00000200 00000006 rts2xx.lib : exit.obj (.cinit)
00000206 00000001 --HOLE-- [fill = 0000]
.data 1 00000000 00000000 UNINITIALIZED
00000000 00000000 rts2xx.lib : boot.obj (.data)
00000000 00000000 main.obj (.data)
00000000 00000000 rts2xx.lib : exit.obj (.data)
.bss 1 00000207 00000022 UNINITIALIZED
00000207 00000022 rts2xx.lib : exit.obj (.bss)
00000229 00000000 : boot.obj (.bss)
00000229 00000000 main.obj (.bss)
.stack 1 00000229 0000003c UNINITIALIZED
00000229 00000000 rts2xx.lib : boot.obj (.stack)
我找到问题的原因的
是段分配错误:
.cinit 应该分配在PAGE 0
编写程序 相关文章: