indirect far jmp - calling old INT problem (Developers)
> Here's a better one I came up with just now. Note that it takes 2 more
> bytes than your last suggestion, but importantly it correctly preserves the
> caller's interrupt flag. It also preserves their trace, direction, and
> overflow flags. Which happen to be the flags stored in the high byte of the
> flag word. Look for yourself:
>
> 1319:0100 55 push bp
> 1319:0101 89E5 mov bp, sp
> 1319:0103 50 push ax
> 1319:0104 9F lahf
> 1319:0105 886606 mov [bp+06], ah
> 1319:0108 58 pop ax
> 1319:0109 5D pop bp
Yes you's right. INT disables IF,TF after storing flags so futher INT got this disabled and I passed it disabled. My bad. Now we are passing only LSB of flags so MSB is untouched. I hope that INT13h ISR don't manipulate flags in MSB, AFAIK it uses only CF. Interrupts should be disabled all the time inside ISR until last IRET so another INT shouldn't occur. I didn't know LAHF instruction, just wonder there's no LALF or LAXF... x86 set if full of various exceptions...
Thx for help
---
DOS gives me freedom to unlimited HW access.
Complete thread:
- indirect far jmp in NASM - RayeR, 10.05.2012, 10:46 (Developers)
![Open in board view [Board]](img/board_d.gif)
![Open in mix view [Mix]](img/mix_d.gif)
- indirect far jmp in NASM - RayeR, 10.05.2012, 13:16
- indirect far jmp - ecm, 10.05.2012, 13:26
- indirect far jmp in NASM - Rugxulo, 10.05.2012, 13:26
- indirect far jmp in NASM - RayeR, 10.05.2012, 14:07
- indirect far jmp - ecm, 10.05.2012, 15:17
- indirect far jmp - RayeR, 11.05.2012, 00:47
- indirect far jmp - ecm, 11.05.2012, 12:46
- indirect far jmp - bretjohn, 11.05.2012, 18:53
- indirect far jmp - RayeR, 11.05.2012, 19:31
- indirect far jmp - bretjohn, 11.05.2012, 22:31
- indirect far jmp - ecm, 11.05.2012, 22:33
- indirect far jmp - RayeR, 12.05.2012, 00:33
- indirect far jmp - Arjay, 12.05.2012, 01:07
- indirect far jmp - ecm, 12.05.2012, 01:27
- indirect far jmp - Arjay, 12.05.2012, 11:09
- indirect far jmp - ecm, 12.05.2012, 21:18
- indirect far jmp - Arjay, 12.05.2012, 11:09
- indirect far jmp - RayeR, 12.05.2012, 21:17
- indirect far jmp/call - Chaining Interrupt Service Routines - Arjay, 13.05.2012, 13:16
- indirect far jmp - ecm, 12.05.2012, 01:27
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 04:01
- indirect far jmp - calling old INT problem - ecm, 13.05.2012, 04:27
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 15:33
- indirect far jmp - calling old INT problem - bretjohn, 13.05.2012, 17:05
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 17:15
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 19:19
- indirect far jmp - calling old INT problem - Rugxulo, 13.05.2012, 20:02
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 20:49
- indirect far jmp - calling old INT problem - ecm, 13.05.2012, 23:49
- indirect far jmp - calling old INT problem - ecm, 13.05.2012, 23:40
- indirect far jmp - calling old INT problem - ecm, 14.05.2012, 00:07
- indirect far jmp - calling old INT problem - RayeR, 14.05.2012, 01:19
- indirect far jmp - calling old INT problem - ecm, 14.05.2012, 00:07
- indirect far jmp - calling old INT problem - Rugxulo, 13.05.2012, 20:02
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 19:19
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 17:15
- indirect far jmp - calling old INT problem - ecm, 13.05.2012, 23:44
- indirect far jmp - calling old INT problem - bretjohn, 14.05.2012, 18:30
- redundant override in "ss:bp" for clarity - ecm, 14.05.2012, 18:47
- indirect far jmp - calling old INT problem - RayeR, 14.05.2012, 18:50
- indirect far jmp - calling old INT problem - bretjohn, 14.05.2012, 20:16
- indirect far jmp - calling old INT problem - ecm, 14.05.2012, 20:21
- indirect far jmp - calling old INT problem - bretjohn, 14.05.2012, 21:42
- indirect far jmp - calling old INT problem - bretjohn, 15.05.2012, 18:45
- indirect far jmp - calling old INT problem - ecm, 15.05.2012, 18:53
- indirect far jmp - calling old INT problem - bretjohn, 15.05.2012, 20:13
- indirect far jmp - calling old INT problem - RayeR, 17.05.2012, 01:25
- indirect far jmp - calling old INT problem - bretjohn, 15.05.2012, 20:13
- indirect far jmp - calling old INT problem - ecm, 15.05.2012, 18:53
- indirect far jmp - calling old INT problem - bretjohn, 15.05.2012, 18:45
- indirect far jmp - calling old INT problem - bretjohn, 14.05.2012, 21:42
- indirect far jmp - calling old INT problem - ecm, 14.05.2012, 20:21
- indirect far jmp - calling old INT problem - bretjohn, 14.05.2012, 20:16
- indirect far jmp - calling old INT problem - bretjohn, 14.05.2012, 18:30
- indirect far jmp - calling old INT problem - bretjohn, 13.05.2012, 17:05
- indirect far jmp - calling old INT problem - RayeR, 13.05.2012, 15:33
- indirect far jmp - calling old INT problem - ecm, 13.05.2012, 04:27
- indirect far jmp - Arjay, 12.05.2012, 01:07
- indirect far jmp - RayeR, 12.05.2012, 00:33
- indirect far jmp - ecm, 11.05.2012, 22:33
- indirect far jmp - bretjohn, 11.05.2012, 22:31
- indirect far jmp - RayeR, 11.05.2012, 19:31
- indirect far jmp - RayeR, 11.05.2012, 00:47
- indirect far jmp - ecm, 10.05.2012, 15:17
- indirect far jmp in NASM - RayeR, 10.05.2012, 14:07
- indirect far jmp in NASM - RayeR, 10.05.2012, 13:16
Mix view