Hmm... it looks like mail... mmmh, it tastes like mail... it _is_ mail!
Once upon a time (Monday, May 12, 1997 to be precise), Barry Block wrote a
letter to Flemming Sondergaard about "Bosskey.Asm - sysreq.asm"...
[..]
FS>> By using the stack you are accessing the memory at location SS:SP.
BB> I now see the problem. I believe... Denis explained that we can't be
BB> sure where sp is. You said to Denis we can't trust where ss is.
In either case, using the stack is bound to cause trouble of some sort.
[..]
FS>> If the stack is the same, what's the point in saving SS and IP? (SP)
BB> That was Denis idea. It may be a good one!
Well, something's not right here. Assuming the stack is okay, there is no
need to save and restore it. However, if you assume the stack is not okay,
how can you use the stack to restore itself? Sure, a PUSH-POP sequence
doesn't change SS or IP, but the data _at_ SS:IP is changed.
[..]
BB> List.com is ok. QuikEdit has a problem.
QuikEdit has a problem with the stack?
BB> I'd like to know if Turbo Debugger can be used (how?) to see if the
BB> stack is ok on return.
You could insert an "int 3" instruction in the TSR program just before it
calls Int 2Eh. This would trigger TD. So, insert "int 3", run the TSR,
load a program in the debugger, start the program (F9), hit the break key,
and TD should stop at the "int 3" instruction. Then move the cursor to the
instruction immediately after the Int 2Eh call and press F4. If SS (or IP)
turns white, that means it has been changed by the Int 2Eh call.
___,/|
\ o_O| - Flemming Sondergaard
=(_|_)=
U
--- Terminate 4.00/Pro
---------------
* Origin: You've been smoking that stuff again, haven't you? (2:237/45.15)
|