head_em.s 691 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. .define hol0,argv,.reghp,.limhp,envp,begbss
  2. .define WRITE
  3. .define .ignmask, .trpreg
  4. .define .stop, BRK
  5. .define ERANGE,EILLINS,ECASE
  6. .sect .text
  7. .sect .rom
  8. .sect .data
  9. .sect .bss
  10. .sect .text
  11. topmem = 0xFFFFFF
  12. ERANGE = 1
  13. EILLINS = 18
  14. ECASE = 20
  15. .sect .text
  16. movd begbss, r7
  17. movd endbss, r6
  18. 1:
  19. movqd 0, 0(r7)
  20. addqd 4, r7
  21. cmpd r6,r7
  22. bgt 1b
  23. movd envp,tos
  24. movd argv,tos
  25. movd 1,tos
  26. jsr @__m_a_i_n
  27. .stop:
  28. movb 0x7f,tos
  29. jsr @.putchar
  30. bpt
  31. BRK:
  32. movd 0,r0
  33. ret 0
  34. WRITE: jump @__write
  35. .sect .bss
  36. begbss:
  37. .sect .data
  38. hol0:
  39. .data4 0
  40. .data4 0
  41. argv:
  42. .data4 3f
  43. envp:
  44. .data4 0
  45. 3:
  46. .asciz 'PROGRAM'
  47. .reghp:
  48. .data4 endbss
  49. .limhp:
  50. .data4 endbss
  51. .ignmask:
  52. .data2 0
  53. .trpreg:
  54. .data4 0