flat assembler
Message board for the users of flat assembler.
![]() Goto page 1, 2 Next |
Author |
|
milind 04 Mar 2004, 12:51
I found this code from one of the posts, it disables the NMI. Would this really work??
in AL,070h ; or AL,080h ; Turn NMI off out 070h,AL ; |
|||
![]() |
|
Ralph 04 Mar 2004, 17:37
Yes.
|
|||
![]() |
|
Adam Kachwalla 26 May 2007, 11:40
Hang on... Isn't NMI Non-Maskable Interrupt? I think that is a CPU bug, which has most likely been fixed.
|
|||
![]() |
|
LocoDelAssembly 26 May 2007, 18:10
NMI means that CLI instruction doesn't prevent the processor to handle it. However, if some other chip prevents the processor's NMI pin to be asserted then you have the NMI interrupt masked
![]() |
|||
![]() |
|
Japheth 26 May 2007, 19:10
> NMI means that CLI instruction doesn't prevent the processor to handle it.
That was absolutely new to me. ![]() (the "CLI" was to mask IRQs, not NMIs, in case the RTC timer /alarm has been enabled.) |
|||
![]() |
|
mikegonta 31 May 2007, 20:37
[ Post removed by author. ]
Last edited by mikegonta on 28 Jan 2009, 09:15; edited 2 times in total |
|||
![]() |
|
Japheth 03 Jun 2007, 12:17
> Keep in mind that this caveat was designed for the original chip and like
> many other "urban" legends is not applicable to a modern PC. This might be true, but the OP did not indicate that the code must run on a new PC only. > I ran the following code in Protected Mode from a boot sector on a Pentium > for 5 minutes and it had no noticeable effect on the time. Hm, what did you expect from this code? It loops. What effect should have been seen? |
|||
![]() |
|
LocoDelAssembly 24 Jan 2009, 17:51
Sorry for bumping this thread. The code shown on this thread is the correct to disable NMI even on modern computers or not?
I would like to write my switch-to-protected-mode code, and Intel says NMIs must be disabled during the transition. |
|||
![]() |
|
DJ Mauretto 24 Jan 2009, 18:35
Unfortunately this is Chipset specific, on Intel Chipset
you cannot read anymore Port 70h , but you can set bit 7 and Disable All NMI sources, that is the Port 70h is Write Only, unless you enable Alt Access Mode or use alias Port 74h ( Intel chipset specific) anyway that bit is still valid for write operation and disable NMI ![]() Code: ; Disable NMI mov al,80h out 70h,al ; Enable NMI xor al,al out 70h,al _________________ Nil Volentibus Arduum ![]() |
|||
![]() |
|
mikegonta 24 Jan 2009, 18:57
[ Post removed by author. ]
Last edited by mikegonta on 28 Jan 2009, 09:15; edited 2 times in total |
|||
![]() |
|
revolution 24 Jan 2009, 19:04
mikegonta wrote: The chances of an NMI triggered event are slim and by definition they are non recoverable. So the simple thing is to ignore it. |
|||
![]() |
|
mikegonta 24 Jan 2009, 19:13
[ Post removed by author. ]
Last edited by mikegonta on 28 Jan 2009, 09:15; edited 1 time in total |
|||
![]() |
|
revolution 24 Jan 2009, 19:21
mikegonta wrote:
BTW, I am using the second to last meaning of Out to lunch in my location. |
|||
![]() |
|
LocoDelAssembly 24 Jan 2009, 19:24
In general, operating systems (both, hobby and professional) do care about NMI while switching?
Thanks for the answers! |
|||
![]() |
|
mikegonta 24 Jan 2009, 21:48
[ Post removed by author. ]
Last edited by mikegonta on 28 Jan 2009, 09:16; edited 2 times in total |
|||
![]() |
|
Coddy41 24 Jan 2009, 22:01
So jmp $ wont pause the system on my new computer?
|
|||
![]() |
|
mikegonta 24 Jan 2009, 22:06
[ Post removed by author. ]
Last edited by mikegonta on 28 Jan 2009, 09:16; edited 3 times in total |
|||
![]() |
|
baldr 24 Jan 2009, 22:13
Coddy41,
jmp $ makes CPU busy, not uninterruptable. |
|||
![]() |
|
Coddy41 24 Jan 2009, 22:24
Busy, hmm... --takes notes-- busy doing what?
Mike "hlt" stands for stall in +==========+ |@@: | sti | hlt | jmp @B +==========+ And then it jumps back to @, Right???? |
|||
![]() |
|
Goto page 1, 2 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.