2. The content of memory locations $9000, $9001, $9002 are $01, $f9, $73 respectively. What is the content of Accumulator B after the following program?

LDX #$9001
LDAB #$05
INX
LDAA 00, X
DECA
BNE Check
INCB
WAI
Check: BECB
WAI

a) 0
b) F8
c) 4
d) 5

b) F8

Explanation:

- LDX #$9001: Load X register with the value $9001
- LDAB #$05: Load Accumulator B with the value 5
- INX: Increment X register to point to memory location $9002
- LDAA 00, X: Load Accumulator A with the value stored in memory location $9002 (which is $73)
- DECA: Decrement Accumulator A (now it holds the value $72)
- BNE Check: Branch to label Check if Accumulator A is not equal to zero (it is not, so it does not branch)
- INCB: Increment Accumulator B (now it holds the value $F9 + 1 = $FA)
- WAI: Wait for an interrupt
- Check: BECB: Branch always to label ECB (which is the next instruction)
- WAI: Wait for an interrupt (since there are no interrupts, this instruction does nothing)

Therefore, after executing this program, the content of Accumulator B is $FA, which is equivalent to 250 in decimal.