func.as 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. .file "func.s"
  2. .text
  3. .globl _haltproc
  4. .type _haltproc,@function
  5. _haltproc:
  6. xorl %ebx,%ebx
  7. movw operatingsystem_result,%bx
  8. pushl %ebx
  9. call sys_exit
  10. /* int sys_open (int=0xFF000000, char * name, int mode, int=0, int close_on_exec=0); */
  11. .globl sys_open
  12. .type sys_open,@function
  13. sys_open:
  14. xorl %eax,%eax
  15. int $0x25
  16. ret
  17. /* int sys_close (int handle) */
  18. .globl sys_close
  19. .type sys_close,@function
  20. sys_close:
  21. mov $0x01,%eax
  22. int $0x25
  23. ret
  24. /* int sys_read (int handle, void * buffer, int length) */
  25. .globl sys_read
  26. .type sys_read,@function
  27. sys_read:
  28. movl $0x02,%eax
  29. int $0x25
  30. ret
  31. /* int sys_write (int handle, void * buffer, int length) */
  32. .globl sys_write
  33. .type sys_write,@function
  34. sys_write:
  35. movl $0x3,%eax
  36. int $0x25
  37. ret
  38. /* int sys_lseek (int handle, long long pos, int whence) */
  39. .globl sys_lseek
  40. .type sys_lseek,@function
  41. sys_lseek:
  42. movl $0x5,%eax
  43. int $0x25
  44. ret
  45. /* int sys_time(void) */
  46. .globl sys_time
  47. .type sys_time,@function
  48. sys_time:
  49. movl $0x7,%eax
  50. int $0x25
  51. ret
  52. /* int sys_resize_area */
  53. .globl sys_resize_area
  54. .type sys_resize_area,@function
  55. sys_resize_area:
  56. movl $0x8,%eax
  57. int $0x25
  58. ret
  59. /* int sys_opendir (0xFF000000, chra * name, 0) */
  60. .globl sys_opendir
  61. .type sys_opendir,@function
  62. sys_opendir:
  63. movl $0xC,%eax
  64. int $0x25
  65. ret
  66. /* int sys_create_area */
  67. .globl sys_create_area
  68. .type sys_create_area,@function
  69. sys_create_area:
  70. movl $0x14,%eax
  71. int $0x25
  72. ret
  73. /* int sys_readdir (int handle, void * dirent, 0x11C, 0x01000000) */
  74. .globl sys_readdir
  75. .type sys_readdir,@function
  76. sys_readdir:
  77. movl $0x1C,%eax
  78. int $0x25
  79. ret
  80. /* int sys_mkdir (char=0xFF, char * name, int mode) */
  81. .globl sys_mkdir
  82. .type sys_mkdir,@function
  83. sys_mkdir:
  84. movl $0x1E,%eax
  85. int $0x25
  86. ret
  87. /* int sys_wait_for_thread */
  88. .globl sys_wait_for_thread
  89. .type sys_wait_for_thread,@function
  90. sys_wait_for_thread:
  91. movl $0x22,%eax
  92. int $0x25
  93. ret
  94. /* int sys_rename (int=0xFF000000, char * name, int=0xFF000000, char * newname) */
  95. .globl sys_rename
  96. .type sys_rename,@function
  97. sys_rename:
  98. movl $0x26,%eax
  99. int $0x25
  100. ret
  101. /* int sys_unlink (int=0xFF000000, char * name) */
  102. .globl sys_unlink
  103. .type sys_unlink,@function
  104. sys_unlink:
  105. movl $0x27,%eax
  106. int $0x25
  107. ret
  108. /* int sys_stat (int=0xFF000000, char * name, struct stat * s, int=0) */
  109. .globl sys_stat
  110. .type sys_stat,@function
  111. sys_stat:
  112. movl $0x30,%eax
  113. int $0x25
  114. ret
  115. /* int sys_load_image */
  116. .globl sys_load_image
  117. .type sys_load_image,@function
  118. sys_load_image:
  119. movl $0x34,%eax
  120. int $0x25
  121. ret
  122. /* void sys_exit (int exitcode) */
  123. .globl sys_exit
  124. .type sys_exit,@function
  125. sys_exit:
  126. movl $0x3F,%eax
  127. int $0x25
  128. /* void sys_chdir (char 0xFF, char * name) */
  129. .globl sys_chdir
  130. .type sys_chdir,@function
  131. sys_chdir:
  132. movl $0x57,%eax
  133. int $0x25
  134. ret
  135. /* void sys_rmdir (char 0xFF, char * name) */
  136. .globl sys_rmdir
  137. .type sys_rmdir,@function
  138. sys_rmdir:
  139. movl $0x60,%eax
  140. int $0x25
  141. ret