sem.s 761 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
  2. .define _semctl
  3. .define _semop
  4. .define _semget
  5. sem = 53
  6. .extern _semop
  7. .extern _semctl
  8. .extern _semget
  9. .extern _syscall
  10. _semctl:
  11. link a6,#0
  12. tst.b -32(sp)
  13. move.l 20(a6),-(sp)
  14. move.l 16(a6),-(sp)
  15. move.l 12(a6),-(sp)
  16. move.l 8(a6),-(sp)
  17. clr.l -(sp)
  18. move.l #sem,-(sp)
  19. jsr _syscall
  20. add #0x18,sp
  21. unlk a6
  22. rts
  23. _semget:
  24. link a6,#0
  25. tst.b -32(sp)
  26. move.l 16(a6),-(sp)
  27. move.l 12(a6),-(sp)
  28. move.l 8(a6),-(sp)
  29. move.l #1,-(sp)
  30. move.l #sem,-(sp)
  31. jsr _syscall
  32. add #0x14,sp
  33. unlk a6
  34. rts
  35. _semop:
  36. link a6,#0
  37. tst.b -32(sp)
  38. move.l 16(a6),-(sp)
  39. move.l 12(a6),-(sp)
  40. move.l 8(a6),-(sp)
  41. move.l #2,-(sp)
  42. move.l #sem,-(sp)
  43. jsr _syscall
  44. add #0x14,sp
  45. unlk a6
  46. rts