Это действительно беспокоит меня при написании моего эмулятора 6502/NES...
Инструкции магазина 6502 работают следующим образом:
STA $2A78 - Store the value of the accumulator into memory address $2A78.
Однако эта инструкция использует режим абсолютной адресации, который должен возвращать 8-битное значение, хранящееся в памяти $2A78
. Инструкция AND
следует этому правилу:
(If $6A is stored in $2A78)
AND $2A78 - Perform a logical AND between the accumulator and the value stored in $2A78 (which is $6A)
Поэтому в обычных ситуациях абсолютная инструкция STA
должна сохранять значение аккумулятора в 8-битном адресе нулевой страницы, который хранится в $2A78
. Если бы он действительно сохранял значение в $2A78
, не должен ли режим адресации быть немедленным? - напр. STA #2A78
Кроме того, есть ли какие-либо другие инструкции, которые ведут себя «ненормально», как инструкции магазина?