_brk.s 363 B

1234567891011121314151617181920212223242526272829303132
  1. .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
  2. .define __brk
  3. .define xbrk
  4. __brk:
  5. mov bx,sp
  6. mov ax,2(bx)
  7. mov cx,sp
  8. sub cx,128
  9. jbe 1f
  10. mov bx,(.limhp)
  11. mov (.limhp),ax
  12. sub ax,bx
  13. jbe 2f
  14. call xbrk
  15. 2:
  16. xor ax,ax
  17. ret
  18. 1:
  19. mov ax,0xc
  20. jmp cerror
  21. xbrk:
  22. push di
  23. mov di,bx
  24. mov cx,ax
  25. xor ax,ax
  26. shr cx,1
  27. repz stos
  28. jae 3f
  29. stosb
  30. 3:
  31. pop di
  32. ret