簡單的內核(準確的說不能稱爲內核)

boot.s文件


.globl begtext, begdata, begbss, endtext, enddata, endbss
.text
begtext:
.data
begdata:
.bss
begbss:
.text

 

BOOTSEG  = 0x07c0   ! original address of boot-sector

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:
 

編譯as86 -0 -a -o boot.o boot.s

連接ld86 -0 -s -o boot boot.o

寫入軟盤映像文件dd bs=32 if=boot of=bootimage-0.11-fd skip=1

 

反彙編[root@myhost linux-0.11-devel-060625]# objdump -D -b binary -m i8086 boot

boot:     file format binary

Disassembly of section .data:

00000000 <.data>:
   0:   01 03                   add    %ax,(%bp,%di)
   2:   10 04                   adc    %al,(%si)
   4:   20 00                   and    %al,(%bx,%si)
   6:   00 00                   add    %al,(%bx,%si)
   8:   00 02                   add    %al,(%bp,%si)
        ...
  16:   00 00                   add    %al,(%bx,%si)
  18:   00 82 00 00             add    %al,0(%bp,%si)
  1c:   00 00                   add    %al,(%bx,%si)
  1e:   00 00                   add    %al,(%bx,%si)
  20:   ea 05 00 c0 07          ljmp   $0x7c0,$0x5
  25:   8c c8                   mov    %cs,%ax
  27:   8e d8                   mov    %ax,%ds
  29:   8e c0                   mov    %ax,%es
  2b:   88 26 33 00             mov    %ah,51
  2f:   b9 14 00                mov    $0x14,%cx
  32:   ba 04 10                mov    $0x1004,%dx
  35:   bb 0c 00                mov    $0xc,%bx
  38:   bd 22 00                mov    $0x22,%bp
  3b:   b8 01 13                mov    $0x1301,%ax
  3e:   cd 10                   int    $0x10
  40:   eb fe                   jmp    0x40
  42:   4c                      dec    %sp
  43:   6f                      outsw  %ds:(%si),(%dx)
  44:   61                      popa  
  45:   64 69 6e 67 20 73       imul   $0x7320,%fs:103(%bp),%bp
  4b:   79 73                   jns    0xc0
  4d:   74 65                   je     0xb4
  4f:   6d                      insw   (%dx),%es:(%di)
  50:   20 2e 2e 2e             and    %ch,11822
  54:   0d 0a 00                or     $0xa,%ax
        ...
 21b:   00 00                   add    %al,(%bx,%si)
 21d:   00 55 aa                add    %dl,-86(%di)
[root@myhost linux-0.11-devel-060625]#

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章