back2root:ibm-pc-ms-dos:interrupts:int_21:int_21_4b
INT 0x21 - 0x4b - "EXEC" - Load and/or Execute Program (DOS 2+)
Request/Call:
reg | value | descr |
AH | 0x4b | |
AL | | type of load |
DS:DX | | ASCIIz program name (must include extentsion) |
ES:BX | | parameter block (see below) |
Offset | Size | Description |
0x00 | WORD | segment of environment to copy for child process (copy caller's environment if 0000h) |
0x02 | DWORD | pointer to command tail to be copied into child's PSP |
0x06 | DWORD | pointer to first FCB to be copied into child's PSP |
0x0A | DWORD | pointer to second FCB to be copied into child's PSP |
0x0E | DWORD | (AL=01h) will hold subprogram's initial SS:SP on return |
0x12 | DWORD | (AL=01h) will hold entry point (CS:IP) on return |
Offset | Size | Description |
0x00 | WORD | segment at which to load overlay |
0x02 | WORD | relocation factor to apply to overlay if in .EXE format |
Return:
CL cleared if successfull
BX, DX are destroyed
if sub function 0x01 is called, process ID set to new program's
PSP can be requested via
Int 0x21, 0x62
CL is set on error
DOS 2.x destroys all registers, including SS:SP
for function 00h and 01h, the calling process must ensure that there is enough unallocated memory available; if necessary, by releasing memory with AH=49h or AH=4Ah
for function 01h, the value to be passed to the child program is put on top of the child's stack
for function 03h, DOS assumes that the overlay is being loaded into memory allocated by the caller
function 01h has been documented for DOS 5+, but was undocumented in prior versions
BUG: DOS 2.00 assumes that DS points at the current program's PSP
Back
back2root/ibm-pc-ms-dos/interrupts/int_21/int_21_4b.txt · Dernière modification : 2024/08/13 11:17 de frater