los2.s 346 B

12345678910111213141516171819202122232425
  1. .define los2
  2. .sect .text
  3. .sect .rom
  4. .sect .data
  5. .sect .bss
  6. .sect .text
  7. los2:
  8. popl saveret, *RR14
  9. pop R0, *RR14 !object size
  10. ldk R2, $0
  11. pop R3, *RR14 !address of object
  12. cp R0, $1
  13. jr NE, 1f
  14. ldb RL0, *RR2
  15. push *RR14, R0
  16. jr 2f
  17. 1: add R3, R0
  18. dec R3, $2
  19. dec R15, $2
  20. sra R0
  21. lddr *RR14, *RR2, R0
  22. inc R15, $2
  23. 2: pushl *RR14, saveret
  24. ret