Я работаю на эмуляторе GameBoy в C. Прямо сейчас я работаю над файлом CPU.c и я немного запутался некоторые инструкции, которые я вижу, перечисленные здесь:GameBoy ISA (Пишем Emulator)
http://realboyemulator.files.wordpress.com/2013/01/gbcpuman.pdf
Если вы обратитесь к странице 66 выше PDF, и посмотреть на инструкции, соответствующей Opcode 0x7E - LD, R1, R2, мне интересно об этом isntruction ..
GB имеет восемь 8 бит, A, B, C, D, E, F, H, L. 16 Бит-регистры могут быть сделаны путем объединения двух: AF, BC, DE, HL.
Я запутался в Opcode 0x7E, потому что похоже, что он пытается сохранить 16-битное значение (HL) в 8-битный регистр (A).
LD, A, (HL)
Могу ли я искажая этот документ? Может кто-нибудь объяснить, почему такая инструкция будет существовать? Не удалось ли его заменить на LD, A, L?
Вы знаете значение HL? Я немного ржавый на собрании, но разве он не будет хранить верхнюю половину или нижнюю половину в зависимости от больших или маленьких контуров? –
HL - это 16-битное значение, состоящее из 8-битных регистров H и L, где H содержит верхние 8 бит, а L - нижнее – Bubo
. Я предполагаю, что это адрес HL, как вы упомянули, тогда вы читаете ячейку памяти, на которую указывает HL , то 8-битное значение, считываемое на этом адресе, затем переходит в регистр A. Это, вероятно, то, для чего есть (скобки), чтобы указать уровень косвенности. –