1. W hy we select 55h and 0aah instead of 00h and 0ffh?
There are few cases of RAM failure.
a)Dead bit, output always "1" or always "0".
you can test it with "ff" "00" "AA" 55".
b)Short two bits
"FF" and "00" cannot help to find this case.
c)Two bits swapped
"FF", "00", "aa" and "55" cannot help to find this case again. If you input "55" and shift it left or right, the result will be "aa".
01010101 >> 10101010.
2. What if removing the RAM? I'm wondering what the physical location of
[bx] is if we remove RAM?
We don't have a RAM which is dead bit. So, try to remove it and the readback data must not same as your input. It should be "ff" or "00" which depend the hardware design.
I'm also quite confused about the relationship among the CPU, ROM and RAM.
Specifically, when the CPU is trying to addressing a memory location, where
will it go first, RAM or ROM? Is the program stored in ROM?