nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 10:42



Reply to topic  [ 182 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13  Next
Запустить 8086 в минимальной обвязке? 
Author Message
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
Post 
Lavr wrote:
...Любая команда, во время которой возникло прерывание, сначала заканчивается;...
Уточним : сие справедливо только для данного процессора. ( В том же VAX-е команда может прерваться и возврат произойдёт в ту же фазу изполнения команды, где она прервалась. )

Да и то - не совсем уверен в случае команды с префиксом REP ... Кто уточнит ?


24 Feb 2015 13:11
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
petrenko wrote:
Lavr wrote:
...Любая команда, во время которой возникло прерывание, сначала заканчивается;...
Уточним : сие справедливо только для данного процессора. ( В том же VAX-е команда может
прерваться и возврат произойдёт в ту же фазу изполнения команды, где она прервалась. )

Я пишу в ветку "Запустить 8086 в минимальной обвязке?"...
Тут где-либо написано "Запустить VAX в минимальной обвязке?".
Это я тоже уточнил...

Не надо оффтопить не по делу - откройте веточку про VAX и проявите
свою эрудицию - возможно, сие будет нам интересным.

_________________
iLavr


24 Feb 2015 13:19
Profile
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
Post 
Вакс упомянут для примера и в скобочках.

А так я строго по теме - прошу уточнить насчёт команд с префиксом REP - прерываются они или пока всю цепочку ( хоть до 65535 байт ) не обработают - не прервутся ?

В том числе "в минимальной обвязке". :D


24 Feb 2015 13:26
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Lavr wrote:
VituZz wrote:
Мне кажется странным такое поведение, когда действие HLT может быть отменено прерыванием после его завершения.

Странным, не странным, но поведение такое, как есть, по логике работы процессора.
Смысл фразы до конца я не очень понял, но никто и не в каких мануалах не обещал
же "вечный HLT" ?

Встретив HLT, процессор переходит в состояние останова. После возникновения прерывания выполняется ПП его обработки, а после IRET восстанавливается CS:IP, но процессор должен и далее стоять, а не продолжить работу с команды после HLT. Может, наш коллега newold86 в конце прерывания поставил RET вместо IRET? Или я всё же неправильно понимаю работу проца?

newold86 wrote:
У меня оно возникает при обращении к определенному порту, но это обращение в программе находится ПОСЛЕ команды HLT, т.е. до обращения (и, соответственно, прерывания) доходить не должно...


25 Feb 2015 11:07
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
VituZz wrote:
Встретив HLT, процессор переходит в состояние останова. После возникновения прерывания выполняется ПП его обработки, а после IRET восстанавливается CS:IP (указывающий на команду, следующую за HLT), но процессор должен и далее стоять?, а не продолжить работу с команды после HLT.

НЕ ДОЛЖЕН! Уже 2 раза написали я и newold86, что процессор после IRET начинает
работу с восстановленного из стека CS:IP, указывающего на команду, следующую за HLT.
Т.е. продолжить работу с команды после HLT.

Во всех мануалах написано, что RESET, NMI, INTR выводят процессор из состояния HLT!
Если снова нужен HLT, делают:
Lavr wrote:
jmp обратно на hlt, чтобы процессор смог "вздремнуть на том же месте, где и был".

_________________
iLavr


25 Feb 2015 14:07
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Но какой смысл в таком поведении процессора? Получается, что полноценный HLT - это HLT + JMP назад на HLT? Я никогда не пользовался этой командой, но почему-то всегда считал, что после HLT возможно выполнение только ПП прерываний, но не продолжение выполнения кода основной программы.

А ВМ80 тоже так себя ведёт?


26 Feb 2015 10:05
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
VituZz wrote:
Но какой смысл в таком поведении процессора? Получается, что полноценный HLT - это HLT + JMP назад на HLT? Я никогда не пользовался этой командой, но почему-то всегда считал, что после HLT возможно выполнение только ПП прерываний, но не продолжение выполнения кода основной программы.

А ВМ80 тоже так себя ведёт?

Да - ВМ80 тоже так себя ведёт. HLT для нас непривычная команда, т.к. мы привыкли к возвратам в Монитор.

HLT раньше активно юзали во всяких ранних компьютерах - когда программу надо завершить,
а передать управление некуда.

Ты просто сложил для себя неправильный имидж "полноценного HLT", а настоящий HLT - вот таков,
каков он есть. Я же сказал уже ранее - это не "вечный HLT". :wink:

И - да: после HLT возможно продолжение выполнения кода основной программы.

Просто команда HLT работает в общей логике процессора: прерывание, возникшее во время
исполнения команды корректно вернет управление на адрес, следующий за этой командой.
И для команды HLT исключения из этого правила не сделали.

_________________
iLavr


26 Feb 2015 10:16
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Post 
Не скажу, опять же, за интел, но в z80 это объясняется просто - HALT помимо самого ожидания выставляет сигнал на ногу, типа "я готов, можете меня прерывать". Есть стойкое подозрение, что у интелов также. Особенно с учётом того, что часть команды разрабов "8080" и делала z80


26 Feb 2015 11:25
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
jdigreze wrote:
Не скажу, опять же, за интел, но в z80 это объясняется просто - HALT помимо самого ожидания выставляет сигнал на ногу, типа "я готов, можете меня прерывать". Есть стойкое подозрение, что у интелов также.

Ну так для того они и совместимы! z80 просто идеологически не может поступать иначе!
В плане идентичности i8080 у z80 есть совсем маленькое отличие, по которому его можно
определить программно.

Но об этом писАли и в "Радио", в цикле статей про "Орион-128", и мы обсуждали в рамках
этого форума. И это отличие вовсе не в HALT... :wink:

_________________
iLavr


26 Feb 2015 12:31
Profile
Senior

Joined: 10 Dec 2008 08:39
Posts: 155
Location: Стокгольм, Швеция
Reply with quote
Post 
VituZz wrote:
Но какой смысл в таком поведении процессора? Получается, что полноценный HLT - это HLT + JMP назад на HLT? Я никогда не пользовался этой командой, но почему-то всегда считал, что после HLT возможно выполнение только ПП прерываний, но не продолжение выполнения кода основной программы.

А ВМ80 тоже так себя ведёт?

Code:
DI
HLT

Можно и так.

_________________
С уважением, Сергей.


27 Feb 2015 05:54
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
VituZz wrote:
aviator wrote:
А ВМ80 тоже так себя ведёт?
Code:
DI
HLT
Можно и так.

Ну это будет тогда, как в анекдоте про слона и зайца:
Quote:
- Кайф?
- Вечный кайф! (HLT) :D

_________________
iLavr


27 Feb 2015 07:04
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Post 
Lavr wrote:
VituZz wrote:
aviator wrote:
А ВМ80 тоже так себя ведёт?
Code:
DI
HLT
Можно и так.

Ну это будет тогда, как в анекдоте про слона и зайца:
Quote:
- Кайф?
- Вечный кайф! (HLT) :D

1. RESET ("слонобойка" 12,7мм)
2. NMI (принудительное оттягивание хобота :lol: )


27 Feb 2015 07:55
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Post 
---задублировалось---


27 Feb 2015 07:56
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
jdigreze wrote:
2. NMI (принудительное оттягивание хобота :lol: )

А у ВМ80 уже таки есть NMI? :o Я, видимо, что-то пропустил в этой жизни... :-?

_________________
iLavr


27 Feb 2015 08:16
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Post 
Простите! Зарапортовался ;)


27 Feb 2015 09:21
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 182 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13  Next

Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.