Запустить 8086 в минимальной обвязке?

8-битные микроконтроллеры и микропроцессоры от Intel и их клоны, а также компьютеры на них построенные

Moderator: Shaos

Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Post by Vic3Dexe »

Честно говоря, забыл сюда заглядывать, и офигел, сколько нафлудили.

Из-за чего весь сыр-бор? Lavr прав на 100%, по hlt проц останавливается (8086 при этом продолжает греться, сволочь) и ждет либо ресет, либо прерывание. Если ноги INTR/NMI замкнуть на землю, будет вечный кайф (с).

Если во время кай.. тьфу, халта придет прерывание, то оно выполнится как и при прерывании любой другой инструкции, т.е.:
- прерывание не разрывает выполнение инструкции, иструкция атомарна, т.е. прерывание выполняется после нее
- а раз после нее, значит возврат произойдет на следующую инструкцию

Ничего странного тут нет. 8086 просто так устроен. И да, вечный халт реализуется парой

Code: Select all

die: hlt
     jmp die
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Re: Запустить 8086 в минимальной обвязке?

Post by VituZz »

Да я уже понял, понял! После HLT проц стоит до прерывания, после его завершения он забывает о том, что его останавливали. Наверное, в этом есть какой-то сакральный смысл, но от меня он ускользает. Ну и ладно, всё равно я этой командой не пользовался. Главное, что я теперь знаю о том, что процессор ведёт себя именно так.