Files
asmhatreandClaude Sonnet 5.5 09af523f8c Add interrupts module: INT 3 (CC breakpoint) vs INT 21h (DOS services)
NASM sources, DOSBox/FreeDOS Debug/Unicorn harness, captured output and 31
assertions backing the ankurm.com article "INT 3 vs INT 21h in 8086 Assembly".

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01KqJyCidz3ZgRyHABv2GVJh
2026-09-30 19:10:56 +00:00

32 lines
1.4 KiB
Plaintext

PASS int3 assembles to the single byte CC
PASS NASM 'int 3' assembles to CD 03
PASS int 21h assembles to CD 21
PASS into assembles to CE
PASS hello21 prints its string
PASS AH=4Ch return code 7 visible as ERRORLEVEL
PASS AH=30h reports a version
PASS AH=2Ah/2Ch ranges ok
PASS AH=02h+06h write AB
PASS AH=01h returned 5A ('Z') and AH=0Ah counted 5 chars 'Ankur'
PASS AH=25h/35h round trip
PASS AH=48h/49h alloc+free ok
PASS AH=48h 1 MB request fails CF=1 AX=0008
PASS file I/O: 12 bytes read, LSEEK says 12
PASS findfirst sees U.TXT size 12
PASS reopening deleted file: CF=1 AX=0002
PASS mkdir/rmdir ok
PASS child exit code 7, termination type 0 via AH=4Dh
PASS CC: return IP = trap + 1
PASS CD 03: return IP = trap + 2
PASS IF and TF are 0 inside the handler, IF back to 1 after IRET
PASS IF pushed on the stack was 1
PASS INT 3 with no handler: program survives under DOSBox
PASS DEBUG + CC: 'Unexpected breakpoint interrupt' and IP=0104
PASS DEBUG + CC: next instruction after trap is MOV AX,2222
PASS DEBUG + CC: single-step then AX=2222
PASS DEBUG + CD 03: no breakpoint message
PASS DEBUG + CD 03: stops at IP=0104 inside the INT 03 instruction
PASS DEBUG + CD 03: MOV AX,2222 never runs (AX stays 1111 after stepping)
PASS Unicorn: CC patch trap return IP = site+1, resume gives CX=3
PASS Unicorn: CD 03 patch trap return IP = site+2 and resume goes wrong