12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- .define hol0, argv, envp, begbss
- .define .ignmask,.reghp,.trapproc,.fra
- .define .retadr,.retadr1,.areg,.bcreg,.tmp1
- .define block1, block2, block3
- .define .stop
- .base 0x1000
- .text
- lxi h,0x1000 ! stack will grow from 0x1000 downwards
- sphl
- lxi h,begbss ! clear bss
- lxi d,endbss-begbss
- mvi c,0
- 2: mov m,c
- inx h
- dcx d
- mov a,e
- ora d
- jnz 2b
- lxi h,envp ! call main
- push h
- lxi h,argv
- push h
- lxi h,0
- push h
- call _m_a_i_n
- .stop: jmp 0xfb52
-
- .bss
- begbss:
- .trapproc: .space 2
- .ignmask: .space 2
- .data
- hol0: .space 8
- .reghp: .word endbss
- argv: .word 0
- envp: .word 0
- .retadr: .space 2 ! used to save return address
- .retadr1: .space 2 ! reserve
- .bcreg: .space 2 ! used to save localbase
- .areg: .space 1
- .tmp1: .space 2
- .fra: .space 8 ! 8 bytes function return area
- block1: .space 4 ! used by 32 bits divide and
- block2: .space 4 ! multiply routines
- block3: .space 4
|