В настоящее время я работаю с эмулятором процессора Z80, для новичка я нашел пример со значениями, присвоенными памяти, чтобы показать «Hello World!».
1. 0x21, 0x0C, 0X00,// ld hl, 0008
2. 0x06, 0x0F, // ld b,0f
3. 0x7e, // ld a,(hl)
4. 0x23, // inc hl
5. 0xD3, 0x00, // out (00), a
6. 0x10, 0xFA, // djnz
7. 0x76, // halt
8. 0x48, 0x65, 0x6C, 0x6C, 0x6F, // Hello
9. 0x2D, 0x77, 0x6F, 0x72, 0x6C, // Worl
10. 0x64, 0x21, 0x20, 0x21//d! !
У меня есть несколько вопросово значениях в памяти:
В первой строке для команды 0x21
определяется инструкция LD HL,XX
, поэтому в ассемблере будет LD HL,0CH
, что это такое 0x00
делаешь там?Я думал, что LD HL,xx
является 16-битной инструкцией, поэтому дополняет 0C
восемью нулями, но я думаю, что это неправильно.
В строке № 5, что такое OUT (00),A
точно делает?В ходе некоторых исследований я обнаружил, что OUT
передает данные с накопителя на выходной порт, но мне не совсем понятно, что конкретно происходит с этим 0x00
.
Я быочень благодарен за любые подсказки или помощь с моими вопросами, заранее спасибо, что нашли время прочитать их.