Linux内核完全剖析---第3章---as86汇编器---baochs启动虚拟软盘

一、手敲boot.s源码

.globl begtext,begdata,begbss,endtext,enddata,endbss
.text
begtext:
.data
begdata:
.bss
begbss:
.text
BOOTSEG = 0x07c0

entry start
start:
        jmpi go,BOOTSEG
go:     mov ax,cs
        mov ds,ax
        mov es,ax
        mov [msg1+17],ah
        mov cx,#20
        mov dx,#0x1004
        mov bx,#0x000c
        mov bp,#msg1
        mov ax,#0x1301
        int 0x10
loop0: jmp loop0
msg1:   .ascii "Loading system ..."
        .byte 13,10
.org 510
        .word 0xAA55
.text
endtext:
.data
enddata:
.bss
endbss:

二、使用bin86中的as86和ld86进行编译链接

$: sudo apt install bin86
$: as86 -0 -a -o boot.o boot.s
$: ld86 -0 -s -o boot boot.o

三、使用bochs中的bximage生成1.44M软盘

四、将生成的boot写入到虚拟软盘

$: dd bs=32 if=boot of=boot.img skip=1

五、使用bochs运行boot


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容