AzAtom, и да, порядок выполнения DJNZ запоминается по названию самой мнемоники: Dec B, Jump if Not Zero
AzAtom, и да, порядок выполнения DJNZ запоминается по названию самой мнемоники: Dec B, Jump if Not Zero
Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.
Seamos realistas y hagamos lo imposible!
Ernesto Che GuevaraПереехал сюда: SteinBlume (ex ATM CP/M Explorer)
http://era-cg.su
Ещё один вопрос назрел. Что будет, если в программе после префикса DD будет идти не обычная команда, а префикс FD или подряд 2-3 префикса DD? Просто переключится на другой регистр?
Если будут префиксы не DDCB, а наоборот CBDD, как отреагирует процессор?
Здесь http://emuverse.ru/wiki/Zilog_Z80/%D...B0%D0%BD%D0%B4 хорошо описаны команды, но не написано, как будет вести себя процессор при другой последовательности префиксов.
Прошу не отправлять проверять в эмуляторе.
Точно, ступил с CB DD.
столкнулся тут с непоняткой на тему команды RETI у Z80, непонятно как она действует на флаги IFF, в одних справочниках пишут что "копируется IFF2 в IFF1", в других пишут что "не меняются", при этом в доке от Zilog написано
но у Ларченко и Родионова в книге написано что эти флаги копируются, в эмуле тогож Unreal исходниках в RETI тоже копия делаетсяHowever, this instruction does not enable interrupts that were disabled when the interrupt routine was entered. Before doing the RETI instruction, the enable interrupt instruction (EI) should be executed to allow recognition of interrupts after completion of the current service routine
как в реальности то?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
В любом случае это важно только в обработчике немаскируемых прерываний с командой в конце RETI вместо RETN, т.к. при обработке маскируемых прерываний в оба флага IFF2 и IFF1 заносится 0. Дока от Zilog просто говорит, что RETI не включает прерывания, о копировании флагов ничего не сказано.
"All the ED xx RET? instructions copy IFF2 to IFF1, even RETI (ED 4D), which the official documentation does not note. The only difference between RETI and RETN is that peripheral devices which allow daisy-chaining of interrupts (eg the Z80 PIO) recognise the ED 4D sequence as 'end of interrupt' and then know that they can allow a further interrupt to be passed to the processor." Отсюда: https://wwwold.fizyka.umk.pl/~jacek/...0reference.htm
Raydac (30.08.2020)
Я вот такую табличку забрал на https://vtrd.in/z80ops.html с clrhome.org
Удобная.
Свирепый агрессивно-депрессивный мордовец!
Не уверен - не напрягай!
Не сдавайся. Дыши?
Virtual TR-DOS
Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.
Seamos realistas y hagamos lo imposible!
Ernesto Che GuevaraПереехал сюда: SteinBlume (ex ATM CP/M Explorer)
http://era-cg.su
Добавлю вроде бы лучшую книжку, где про Z80 изложено наверное всё. Спасибо китайскому товарищу. Может кому будет не лень с гуглом всё это обрусить. Книжице уже более 15 лет...
Несложно догадаться, что RETI при выходе из маскируемого прерывания, если обработчик флаги не менял, просто опять запишет запрет на прерывания. Поэтому Z80 и требует EI перед RET/RETI. Если RETI используется для выхода из немаскируемого прерывания, то флаг прерывания восстановится таким, каким он был на старте обработчика. Ничего в IFF2 не копируется - в официальных доках ошибка. Об этом и другая информация про Z80 изложена на русском года 3 назад - буду рад добавочной информации и критическим замечаниям.
Последний раз редактировалось litwr; 26.01.2022 в 09:06. Причина: опечатка
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)