Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

1. Write a function named CHECK to implement the following flowchart. Preserve a

ID: 3826342 • Letter: 1

Question

1. Write a function named CHECK to implement the following flowchart. Preserve all registers used in the function.

Some things to keep in mind:
- It is not necessarily the case that one rectangle equals one line of assembly language. Sometimes you need several lines of assembly language to carry out the step shown inside the rectangle.
- Your function needs to start with the label CHECK, and end with an RTS (since it’s a function)
- Push registers (onto the stack) first. At the end, pull the registers in reverse order before calling RTS.
- In order to read or check a PORT, you need to read it into a register (like register A or register B).
- In order to write or update a PORT, you need to write to it from a register (like register A or register B).
- So, to “decrement” a PORT, you need to read it into a register, decrement the value, and then write it back.
- Since PORTH and PORTJ are 8-bits ports, you cannot use register X, Y, or D – you have to use register A or B.


registers used in the function. Start Write $FF to PORTH Decrement PORTH No s PORTJ equal Yes Note PORTH: S0024 to $80? PORTJ: $0028 Write S00 to PORTH Stop

Explanation / Answer

CHECK

  movb    #$FF, PORTH

label1`:

dec PORTH

cmp PORTJ, $80

jne label1

movb $00 PORTH

RTS