gnu as 代码段间跳转,如何获取相对地址?

xbwee 2013-04-10 10:36:22
写bootloader 时,
ld -Ttext=0x8000 指定VMA,被BIOS 加载到0x7c00 执行后,copy self 到0x8000,然后跳转继续往下执行。如下:

	ljmp $INITSEG, $go

go:
mov %cs, %ax
mov %ax, %ds


我使用
ljmp $0x800, $go

bochs 调试上面这句结果是 ljmp 0x800:0x8019 也就是说$go 是绝对地址。
各种办法都试过,没办法搞定。
求指导。。。
...全文
160 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰凝 2013-04-12
  • 打赏
  • 举报
回复
引用 2 楼 xbwee 的回复:
咦,好不容易有个回复为何被管理员删掉?!
估计是灌水被删了
xbwee 2013-04-11
  • 打赏
  • 举报
回复
咦,好不容易有个回复为何被管理员删掉?!

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧