I was debugging, through the Boot Loader from the FreeDos OS, till I got lost after the interrupt 13h instruction. I use gdb with qemu.
gdb version: 7.11.1
qemu version: 2.5
FreeDos version: 1.2
I got to this point:
int 13h
and then I typed:
si (step instruction)
and then, when I examine the instruction pointer I got this:
add BYTE PTR [bx+si], al
add BYTE PTR [bx+si], al
add BYTE PTR [bx+si], al
add BYTE PTR [bx+si], al
Obvious there shouldn't come these instructions. There should come:
jb 0xf2
The next thing, is that I can't get out of these weired instructions. They go one forever but when I type c
(continue) then the program continues normally.
I tried several things but nothing worked out:
Set a breakpoint after the int 13h
instruction but when I then pressed c
the program didn't stopped there.
Also I tried to press n
or s
. Nothing worked.
My setup for qemu:
qemu-system-i386 -localtime freedos.img -boot d -S -s
And for gdb:
gdb -q
target remote localhost:1234
set architecture i8086
Why is this so? What am I missing?
Edit: It's the the check for extensions interrupt.