risc8_test.asm 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. b1111_0010 // 0x0000
  2. 0x0008
  3. b1011_0000 // 0x0003 func AddAllBy1
  4. b1011_0100 // 0x0004
  5. b1011_1000 // 0x0005
  6. b1011_1100 // 0x0006
  7. b1111_0001 // 0x0007
  8. COPY r0 0x15 // 0x0008
  9. COPY r2 r0 // 0x000a
  10. COPY r1 0x0a // 0x000b
  11. b1111_0000 // 0x000d Call AddAllBy1
  12. 0x0003
  13. ADD r0 r1 // 0x000f
  14. COPY r0 r2 // 0x0010
  15. SUB r0 r1
  16. COPY r0 r2
  17. AND r0 r1
  18. COPY r0 r2
  19. OR r0 r1
  20. COPY r0 r2
  21. XOR r0 r1
  22. COPY r0 r2
  23. COPY r0 100
  24. MUL r0 r1
  25. b1011_1110 // Load ALU_HI to r3
  26. COPY r0 r2
  27. DIV r0 r1
  28. b1011_1110
  29. DIV r1 r2
  30. b1011_1110
  31. b1011_0000 // &r0++
  32. b1011_0000 // &r0++
  33. b1011_0001 // &r0--
  34. b1011_0001 // &r0--
  35. b1101_0000 // Branch to 0x000f if r1 == 0
  36. 0x00000f
  37. COPY r3 40h
  38. b1101_1110 // Branch to 0x000f if r1 >= 41h
  39. 0x41000f
  40. b1101_1101 // Branch to 0x000f if r1 > 40h
  41. 0x40000f
  42. b1101_1110 // Branch to 0x000f if r1 >= 40h
  43. 0x40000f
  44. COPY r0 32h
  45. COPY r1 4fh
  46. b1010_0001 // Store 32 to high memory
  47. b1010_0111 // Store 4f to low 000001h
  48. 0x010000
  49. COPY r0 0
  50. COPY r1 r0
  51. b1010_0000
  52. 0x010000
  53. b1010_0010
  54. 0x010000
  55. // Testing COM
  56. b1100_0010
  57. ffh
  58. // Testing Stack
  59. COPY r0 11h
  60. COPY r1 22h
  61. COPY r2 33h
  62. COPY r3 44h
  63. b1100_0000 // PUSH r0
  64. b1100_0100 // PUSH r1
  65. b1100_1000 // PUSH r2
  66. b1100_1100 // PUSH r3
  67. COPY r3 55h
  68. b1100_1100 // PUSH r2
  69. COPY r0 00h
  70. b1100_0001 // POP r2
  71. b1100_0001 // POP r2
  72. b1100_0001 // POP r2
  73. b1100_0001 // POP r2
  74. b1100_0001 // POP r2
  75. b1111_0010 // Reset
  76. 0x0000