move SP setting

This commit is contained in:
Peter Ferrie 2021-11-24 12:32:14 -08:00
parent d50e78162d
commit 88e749ea79

View file

@ -36,13 +36,19 @@ kCdr: .asciz "CDR" # ordering matters
kCons: .asciz "CONS" # ordering matters
kEq: .asciz "EQ" # needs to be last
begin: push %cs # that means ss = ds = es = cs
begin: xor %sp,%sp # use highest address as stack
# set independently of SS!
# 8088 doesn't stop interrupts
# after SS is set, and PC BIOS
# sets SP to a value that will
# damage our code if int fires
# between setting SS and SP
push %cs # that means ss = ds = es = cs
pop %ds # noting ljmp set cs to 0x7c00
push %cs # that's the bios load address
pop %es # therefore NULL points to NUL
push %cs # terminated NIL string above!
pop %ss # errata exists but don't care
xor %sp,%sp # use highest address as stack
mov $2,%bx
main: mov $0x8000,%cx # dl (g_look) is zero or cr
call GetToken