Understanding Computer Architecture and Assembly Programming

Joint seminar by Almaty Management University and Imagination Technologies

August 24 2016

Exercise 1 - Assembly programming using MARS MIPS instruction set simulator

Name ___________________________________________________________________

An example assembly program below fills the memory with 4-byte words 0, 1, 2, 3 ... 63.

Variant that does not use branch delay slot:

 

 

 

Variant that uses branch delay slot:

Using the above example, create a program that fills the memory with the following pattern:

  1. 00000000 00000002 00000004 00000006 00000008 ... 000001FE 00000200
  2. 00010000 00030002 00050004 00070006 00090008 ... 00FD00FC 00FF00FE
  3. 03020100 07060504 0B0A0908 0F0E0D0C 13121110 ... FBFAF9F8 FFFEFDFC
  4. 01010101 02020202 03030303 04040404 05050505 ... EEEEEEEE FFFFFFFF
  5. 11111111 22222222 33333333 44444444 55555555 ... EEEEEEEE FFFFFFFF
  6. 01000100 02000200 03000300 04000400 05000500 ... FE00FE00 FF00FF00
  7. 00000001 00000002 00000004 00000008 00000010 ... 40000000 80000000
  8. 00020001 00080004 00200010 00800040 02000100 ... 20001000 80004000
  9. 12345678 01234567 00123456 00012345 00001234 ... 00000012 00000001
  10. 12345678 23456780 34567800 45678000 56780000 ... 78000000 80000000
  11. 12345678 81234567 78123456 67812345 56781234 ... 23456781 12345678
  12. 12345678 23456781 34567812 45678123 56781234 ... 81234567 12345678
  13. 00000001 00000003 00000009 OOOOOO1B 00000051 ...
  14. 00030001 001B0009 00F30051 088B02D9 4CE319A1 ...
  15. 00000001 00000004 00000009 00000010 00000019 ...
  16. ABCDEF78 0ABCDEF7 00ABCDEF 000ABCDE 0000ABCD ... 000000AB 0000000A
  17. ABCDEF78 BCDEF780 CDEF7800 DEF78000 EF780000 ... 78000000 80000000
  18. ABCDEF78 8ABCDEF7 78ABCDEF F78ABCDE EF78ABCD ... BCDEF78A ABCDEF78
  19. ABCDEF78 BCDEF78A CDEF78AB DEF78ABC EF78ABCD ... 8ABCDEF7 ABCDEF78
  20. 00010001 00030002 00050003 00070004 00090005 ... 00FD007F 00FF0080
  21. 000000FF 000000FE 000000FD 000000FC 000000FB ... 00000001 00000000
  22. 00FE00FF 00FC00FD 00FA00FB 00F800F9 00F600F7 ... 00010001 00000000
  23. FCFDFEFF F8F9FAFB F4F5F6F7 F0F1F2F3 ECEDEEEF ... 07060504 03020100
  24. FFFFFFFF EEEEEEEE DDDDDDDD CCCCCCCC BBBBBBBB ... 11111111 00000000
  25. FFFFFFFF FFFFFFFF EEEEEEEE EEEEEEEE DDDDDDDD ... 00000000 00000000
  26. 12345678 12345670 12345600 12345000 12340000 ... 10000000 00000000
  27. 12345678 1234567F 123456FF 12345FFF 1234FFFF ... 1FFFFFFF FFFFFFFF
  28. 12345678 02345678 00345678 00045678 00005678 ... 00000008 00000000
  29. 12345678 F2345678 FF345678 FFF45678 FFFF5678 ... FFFFFFF8 FFFFFFFF
  30. 12345678 F234567F FF3456FF FFF45FFF FFFFFFFF ... (repeat the pattern)

Exercise is created by Yuri Panchul