Lab 3 Progress

Over the last two weeks, I have been collaborating with my peers for lab 3. I have chosen the two-digit decimal display as my lab, I believe this task to be just enough of a challenge to push my understanding of the assembly language.

So far, I have familiarized myself with the DCB opcode, as well as reading from a set of DCB and printing to the screen. Currently my lab 3 prototype declares a zero and a one, and can display either. I have also began to work with keyboard input, reading a keypress, comparing against a hex value, and executing an instruction based on that keypress. I believe that these two things are the backbone of this task for lab 3.

The final unknown for lab 3 is a bug that occurs in my current code. When I draw my initial value (00) on the bitmap, the second 0 (the rightmost digit) prints a 1 directly below it. I believe this happens because my iterator for the amount of rows printed for the second digit does not know when to terminate, and continues printing even after it goes out of the boundary of the 0 DCB. Since I declare my 0 and my 1 contiguously in memory, the 1 is then printed underneath the 0. This could be utilized in the final application to increment or decrement the digit using pointer arithmetic, I could add a value to the pointer of my 0 DCB that is the size in memory of one digit (8x8 DCB) and print that value. If this works, this will allow me to access my 1 DCB (or any DCB, as long as they are contiguous) from my reference of the 0 DCB.

My main issue with assembly language at this time is how it structurally differs from most high level programming languages. I have been relying on function calls in my code for so long that the BNE, JMP, BCC, and other 'goto-esque' opcodes occasionally confuse me. I am getting used to them, however.

Take a look at my lab 3 WIP here

Comments

Popular posts from this blog

Project Part 3

Lab 5 x86_64 Update