这段汇编怎么ld过不了?
本帖最后由 yylogo 于 2010-08-01 14:58 编辑
这段汇编怎么ld过不了?
- BOOTSEG = 0x07C0
- SYSSEG = 0x0000
- SYSLEN = 17
- .code16
- .text
- .global _start
- _start:
- movw $BOOTSEG, %ax
- movw %ax, %cs
- movw %ax, %ds
- movw %ax, %ss
- movw $0x400, %sp
- load_system:
- movw $0x0000, %dx
- movw $0x0002, %cx
- movw $SYSSEG, %ax
- movw %es, %ax
- xor %bx, %bx
- movw $0x200+SYSLEN, %ax
- int $0x13
- jnc ok_lode
- die: jmp die
- ok_lode:
- lidt idt_48
- lgdt gdt_48
- iret
- .data
- idt_48: .word 0, 0, 0
- gdt: .word 0, 0, 0, 0
- .word 0x07FF
- .word 0x0000
- .word 0x9A00
- .word 0x00C0
- .word 0x07FF
- .word 0x0000
- .word 0x9200
- .word 0x00C0
- gdt_48: .word 0x7ff, 0x07c0+gdt, 0
- .org 510
- .word 0xAA55
复制代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
链接时,加个参数-Ttext=0x00
回复 5# yylogo
http://hi.baidu.com/darklighting ... 054dd1fc1f1065.html
有篇文章Making plain binary files using a C compiler不错
这里有中文版http://www.mlxos.org/docs.html
本帖最后由 yylogo 于 2010-08-02 09:48 编辑
回复 4# openspace
没用额..
代码如下:
复制代码提示如下:
用ld解析的符号需要用.global声明
你把29行的.data去掉或者用.global把那些label声明一下试试
回复 2# openspace
把出错信息贴一下