1. 68000 register AS contains $008132A0 and register A7 contains $002FCE00. Then the following instruction is executed:
LINK A5,#-24
Draw a memory map showing the state of the relevant range of memory after this instruction executes. What are the new contents of registers A4 and A7?
(Hint: Consult the LINK instruction in the 68000 Instruction Set manual and follow its steps carefully.)
2. Write a 68000 assembly subroutine (not a main program!!) that will scan memory locations from the address in A2 through the address in A3 and count how many bytes contain the number $4A. You can use data registers and address registers as needed, but your subroutine should finish by placing the total number of bytes containing the number $4A into register DO as a longword, then returning to the main program. Assume that the contents of A3 Is a larger number than the contents of A2.
3. The following 68000 assembly program is syntactically correct, but has a major problem. Why doesn't it work properly? Explain.
(Hint- If you don't see the error, try it on Easy68K and watch what happens.)
ORG $5000
MOVE.B #100,D1
MOVEA.L #$004FEO,A1
MORE NOT.W (A1)+ SUB.B #1,DI SNE MORE
STOP #$2700 END $5000