Lab 04
Description
This post is about Lab 04 assignment for SPO600 course at Seneca College.
This week, the students are required to write assembly code that pritns numbers from 0 ~ 30, both in aarch64 and x86_64.
Tasks
- Task 1: Printing numbers from 0 to 9 in aarch64 assembly language.
Link to Code: [Task 1]
- Task 2: Printing numbers from 00-30
Link to Code: [task 2]
- Task 3: Printing numbers from 0 - 30 suppressing leading zero.
Link to Code: [task 3]
- Task 4: Repeat the tasks above in x86_64.
-Link to Code:
Reflection
Assembly Language is alwasy difficult and grinding. aarch64 and x86_64 were also very challenging. However, I expected that these 64bit assembly languages are much tougher than 6502 assembly language. As a matter of fact, these were much easier. It's because I have many more registers. And also, I can use system call for printing things, instead of manually put bytes onto a certain memory location.
As for aarch64 and x86_64, I liked aarch much better. I find it more intuitive, and the naming of instructions and registers are much easier. For example, aarch has registers from r1~30; on the other hand, x86 has rax rbx rdx rsi, and these are confusing. As far as I am concerned, the only advantage of x86 is that it's easier to do divide calculation, and it is easier to get remainder and quotient. After I build something with assembly, it is so rewarding. I get a huge feeling of achievement. However, it is also very exhausting.
Comments
Post a Comment