多个.s汇编文件怎么弄?想从1.s跳到2.s中
答案:1 悬赏:20 手机版
解决时间 2021-11-29 17:04
- 提问者网友:骨子里的高雅
- 2021-11-28 20:53
多个.s汇编文件怎么弄?想从1.s跳到2.s中
最佳答案
- 五星知识达人网友:拾荒鲤
- 2021-11-28 21:01
汇编器是gnu as么?在2.s里把想跳到的标号用.global来声明成导出符号。1.s直接跳就行了。追问做成img映像,
dd bs=32 if=setup if=bootsect skip=1
bootsect跳到setup中
但是不能用
而且setup.s导出的标号bootsect.s不能用的追答dd只能接受一个if参数还有你说一下是什么情况,bootsec和setup编译之后是同一个文件都写到引导区里还是bootsec写入引导区,还是他俩彼此独立,setup是bootsec加载进内存里的第一种编译完用ld链接,再用objdump把elf文件里的text和data段考出来在dd写入第二种的话不能用标号,要自己计算地址然后用绝对跳转你不会dd两次。。。dd是能指定偏移的还有bootloader其实可以不写,填一个multiboot头可以直接用grub2来加载你的程序,而且上来就是保护模式下,而且传参,内存检测啥的grub2都能替你干了你在写os?
dd bs=32 if=setup if=bootsect skip=1
bootsect跳到setup中
但是不能用
而且setup.s导出的标号bootsect.s不能用的追答dd只能接受一个if参数还有你说一下是什么情况,bootsec和setup编译之后是同一个文件都写到引导区里还是bootsec写入引导区,还是他俩彼此独立,setup是bootsec加载进内存里的第一种编译完用ld链接,再用objdump把elf文件里的text和data段考出来在dd写入第二种的话不能用标号,要自己计算地址然后用绝对跳转你不会dd两次。。。dd是能指定偏移的还有bootloader其实可以不写,填一个multiboot头可以直接用grub2来加载你的程序,而且上来就是保护模式下,而且传参,内存检测啥的grub2都能替你干了你在写os?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯