kern
diff src/segm-asm.S @ 8:78d5c304ddd0
minor changes
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Wed, 16 Feb 2011 07:50:25 +0200 |
parents | 611b2d66420b |
children | 4eaecb14fe31 |
line diff
1.1 --- a/src/segm-asm.S Wed Feb 16 07:26:03 2011 +0200 1.2 +++ b/src/segm-asm.S Wed Feb 16 07:50:25 2011 +0200 1.3 @@ -1,27 +1,25 @@ 1.4 .data 1.5 + .align 4 1.6 +/* memory reserved for setup_selectors */ 1.7 off:.long 0 1.8 seg:.short 0 1.9 - 1.10 - .align 1.11 - .short 0 1.12 -gdt_lim: 1.13 - .short 0 1.14 -gdt_addr: 1.15 - .long 0 1.16 +/* memory reserved for set_gdt */ 1.17 +lim:.short 0 1.18 +addr:.long 0 1.19 1.20 .text 1.21 /* setup_selectors(uint16_t code, uint16_t data) 1.22 * loads the requested selectors to all the selector registers */ 1.23 .globl setup_selectors 1.24 setup_selectors: 1.25 - /* setup data selectors */ 1.26 + /* set data selectors directly */ 1.27 movl 8(%esp), %eax 1.28 movw %ax, %ss 1.29 movw %ax, %es 1.30 movw %ax, %ds 1.31 movw %ax, %gs 1.32 movw %ax, %fs 1.33 - /* setup code selector */ 1.34 + /* set cs using a long jump */ 1.35 movl 4(%esp), %eax 1.36 movw %ax, (seg) 1.37 movl $ldcs, (off) 1.38 @@ -34,8 +32,8 @@ 1.39 .globl set_gdt 1.40 set_gdt: 1.41 movl 4(%esp), %eax 1.42 - movl %eax, (gdt_addr) 1.43 + movl %eax, (addr) 1.44 movw 8(%esp), %ax 1.45 - movw %ax, (gdt_lim) 1.46 - lgdt (gdt_lim) 1.47 + movw %ax, (lim) 1.48 + lgdt (lim) 1.49 ret