Board
Logging my politically incorrect speeches here.
CS64
We are supposed to learn MIPS in this course, but what I learnt is only how to guess my teacher. Quizzes are filled with ambiguous questions and homework are all about word games.
Before you keep reading, here are a few questions our dear teacher would ask you:
- Would "0100101" likely be Bill Gates' phone password? --- No
- Can "0100101" represent a function definition? --- No
Why? I wrote an email to ask my dear teacher:
For Quiz 1 Q2, the question asked for "Which could describe 0100101?" and I selected "function definition". I still believe this is possible. Since it is not necessarily a binary, it could be any integer programming language, which is enough for a function definition. I couldn't find any architecture for this, but I have created a virtual machine for this language here: https://github.com/shouc/print_vm.
And here is the reply:
I made it clear from the outset (in lecture) what the parameters were: if it's not covered in class, it is not allowed.
WTF???? The question asked what is possible. I believe this (could describe) is of the scope of the world we are living in, not of the lecture. Is my english so bad that I could not understand this question properly???
On a different quiz, I used a syntax sugar from the MIPS emulator we are using and here is what I said
For Quiz 4 Q3, I wrote "addi $t2, 1". This works in SPIM but TAs claimed that this is a bug in SPIM. However, I took a deeper look at its implementation: SPIM assigns rs to rt if it is not given. In other words, this is syntax sugar mimicking x86 style assembly. In the assembly world, there are quite a few conventions for assembly. For instance, pseudo instructions never appear in the official document yet people accept it. Mars, another commonly used MIPS emulator, does not go from the main label but from the first line after .text. As a result, it is not about following the standard by MIPS or Intel for coding assembly, but following the standard of the compiler / emulator we are working on. Here, we are working on the SPIM virtual machine and what I leveraged is just somewhat like the pseudo instruction. Additionally, "Grading Policies Regarding MIPS Assembly Instructions" does not ban the use of this type of syntax sugar.
And the reply is:
if it's not covered in class, it is not allowed.
Okay... So am I here to learn Matni architecure or RISC-V?
I'll write more about this diabolic course later...