libc/crt0.c startup: 00000100 E96D00 jmp word 0x170 ; goto ___cstartup no_op: 00000103 C3 ret 00000104 302E3136 xor [0x3631],ch ; "0.16.17" 00000108 2E3137 xor [cs:bx],si 0000010B 00 hoge.c main() 0x00010C 55 push bp 0x00010D 89E5 mov bp,sp 0000010F 57 push di 00000110 56 push si 00000111 B8AA55 mov ax,0x55aa 00000114 5E pop si 00000115 5F pop di 00000116 5D pop bp 00000117 C3 ret libc/bcc/heap.c sbrk() 00000118 89E3 mov bx,sp 0000011A 8B4702 mov ax,[bx+0x2] 0000011D 85C0 test ax,ax 0000011F 7505 jnz 0x126 ; goto has_change 00000121 A18803 mov ax,[0x388] ; ax = *brk_addr 00000124 EB2A jmp short 0x150 ; goto eof has_change: 00000126 7814 js 0x13c ; goto go_down 00000128 03068803 add ax,[0x388] ; ax += *brk_addr 0000012C 7219 jc 0x147 ; goto Enomem 0000012E 81EBFF01 sub bx,0x1ff 00000132 39C3 cmp bx,ax 00000134 7211 jc 0x147 sbrk_ok: 00000136 87068803 xchg ax,[0x388] 0000013A EB14 jmp short 0x150 go_down: 0000013C 03068803 add ax,[0x388] ; ax += *brk_addr 00000140 7305 jnc 0x147 00000142 3DA003 cmp ax,0x3a0 00000145 73EF jnc 0x136 Enomem: 00000147 B80C00 mov ax,0xc 0000014A A38403 mov [0x384],ax ; 0000014D B8FFFF mov ax,0xffff eof: 00000150 C3 ret 00000151 0000 add [bx+si],al 00000153 00 libc/msdos/msdos.c _exit: 00000154 89E3 mov bx,sp 00000155 FF7702 push [bx+0x2] 00000159 8B1E9203 mov bx,[0x392] ; bx = *___cleanup 0000015D 85DB test bx,bx 0000015F 7402 jz 0x163 ; goto no_clean 00000161 FFD3 call bx no_clean: 00000163 44 inc sp 00000164 44 inc sp __exit: 00000165 89E3 mov bx,sp 00000167 8B4702 mov ax,[bx+0x2] 0000016A B44C mov ah,0x4c 0000016C CD21 int 0x21 dos_1_exit: 0000016E CD20 int 0x20 ___cstartup: 00000170 B80030 mov ax,0x3000 00000173 CD21 int 0x21 00000175 3C02 cmp al,0x2 00000177 72F5 jc 0x16e ; goto dos_1_exit 00000179 8CCA mov dx,cs 0000017B 81C20000 add dx,0x0 ; dx += __segoff 0000017F 8EDA mov ds,dx 00000181 8C069603 mov [0x396],es ; *___psp = es 00000185 26A12C00 mov ax,[es:0x2c] 00000189 A39403 mov [0x394],ax ; *___envseg = ax 0000018C 268B1E0200 mov bx,[es:0x2] 00000191 8CD8 mov ax,ds 00000193 050010 add ax,0x1000 00000196 7206 jc 0x19e ; goto use_tor 00000198 39D8 cmp ax,bx 0000019A 7302 jnc 0x19e ; goto use_tor 0000019C 89C3 mov bx,ax use_tor: 0000019E 8CC8 mov ax,cs 000001A0 29C3 sub bx,ax 000001A2 B44A mov ah,0x4a 000001A4 CD21 int 0x21 000001A6 7304 jnc 0x1ac ; goto set_stack 000001A8 B44A mov ah,0x4a 000001AA CD21 int 0x21 set_stack: 000001AC 81EB0000 sub bx,0x0 ; bx += __segoff 000001B0 B104 mov cl,0x4 000001B2 D3E3 shl bx,cl 000001B4 83EB02 sub bx,byte +0x2 000001B7 8ED2 mov ss,dx 000001B9 89DC mov sp,bx zap_bss: 000001BB 8EC2 mov es,dx 000001BD BF9C03 mov di,0x39c ; di = __edata 000001C0 B9A003 mov cx,0x3a0 ; cx = __end 000001C3 29F9 sub cx,di 000001C5 31C0 xor ax,ax 000001C7 FC cld 000001C8 F3AA rep stosb 000001CA FF369003 push word [0x390] ; *sp++ = _def_environ 000001CE B88C03 mov ax,0x38c ; ax = _defarg 000001D1 50 push ax 000001D2 B80100 mov ax,0x1 000001D5 50 push ax 000001D6 BE7C03 mov si,0x37c ; si = auto_start auto_run: 000001D9 8B1C mov bx,[si] 000001DB 85DB test bx,bx 000001DD 7402 jz 0x1e1 ; goto no_entry 000001DF FFD3 call bx no_entry: 000001E1 46 inc si 000001E2 46 inc si 000001E3 EBF4 jmp short 0x1d9 ; goto auto_run call_exit: 000001E5 5B pop bx 000001E6 50 push ax 000001E7 E86AFF call word 0x154 ; call _exit bad_exit: 000001EA EBFE jmp short 0x1ea ; loop here __E_nosys() 000001EC 55 push bp 000001ED 89E5 mov bp,sp 000001EF C70684032600 mov word [0x384],0x26 ; errno = ENOSYS 000001F5 B8FFFF mov ax,0xffff ; return -1 000001F8 5D pop bp 000001F9 C3 ret 000001FA 0000 add [bx+si],al __mkargv() 000001FC 55 push bp 000001FD 89E5 mov bp,sp 000001FF 57 push di 00000200 56 push si 00000201 83C4FA add sp,byte -0x6 00000204 B80100 mov ax,0x1 00000207 8946F6 mov [bp-0xa],ax 0000020A 4C dec sp 0000020B 4C dec sp 0000020C 31C0 xor ax,ax 0000020E 8946F4 mov [bp-0xc],ax 00000211 83C4FC add sp,byte -0x4 00000214 FF369603 push word [0x396] 00000218 E84601 call word 0x361 ; __set_es() 0000021B 44 inc sp 0000021C 44 inc sp 0000021D B88000 mov ax,0x80 00000220 50 push ax 00000221 E84401 call word 0x368 ; __peek_es() 00000224 44 inc sp 00000225 44 inc sp 00000226 8946FA mov [bp-0x6],ax 00000229 85C0 test ax,ax 0000022B 7F03 jg 0x230 0000022D E92101 jmp word 0x351 00000230 8B46FA mov ax,[bp-0x6] 00000233 40 inc ax 00000234 50 push ax 00000235 E8E0FE call word 0x118 00000238 44 inc sp 00000239 44 inc sp 0000023A 8946F2 mov [bp-0xe],ax 0000023D 31C0 xor ax,ax 0000023F 8946F8 mov [bp-0x8],ax 00000242 EB53 jmp short 0x297 00000244 8B46F8 mov ax,[bp-0x8] 00000247 058100 add ax,0x81 0000024A 50 push ax 0000024B E81A01 call word 0x368 0000024E 44 inc sp 0000024F 44 inc sp 00000250 50 push ax 00000251 8B46F8 mov ax,[bp-0x8] 00000254 0346F2 add ax,[bp-0xe] 00000257 89C3 mov bx,ax 00000259 8B46EE mov ax,[bp-0x12] 0000025C 8807 mov [bx],al 0000025E 44 inc sp 0000025F 44 inc sp 00000260 8B46F8 mov ax,[bp-0x8] 00000263 0346F2 add ax,[bp-0xe] 00000266 89C3 mov bx,ax 00000268 803F20 cmp byte [bx],0x20 0000026B 760F jna 0x27c 0000026D 8B46F4 mov ax,[bp-0xc] 00000270 85C0 test ax,ax 00000272 7508 jnz 0x27c 00000274 FF46F6 inc word [bp-0xa] 00000277 C746F40100 mov word [bp-0xc],0x1 0000027C 8B46F8 mov ax,[bp-0x8] 0000027F 0346F2 add ax,[bp-0xe] 00000282 89C3 mov bx,ax 00000284 803F20 cmp byte [bx],0x20 00000287 770B ja 0x294 00000289 837EF401 cmp word [bp-0xc],byte +0x1 0000028D 7505 jnz 0x294 0000028F 31C0 xor ax,ax 00000291 8946F4 mov [bp-0xc],ax 00000294 FF46F8 inc word [bp-0x8] 00000297 8B46F8 mov ax,[bp-0x8] 0000029A 3B46FA cmp ax,[bp-0x6] 0000029D 7CA5 jl 0x244 0000029F 8B46FA mov ax,[bp-0x6] 000002A2 0346F2 add ax,[bp-0xe] 000002A5 89C3 mov bx,ax 000002A7 30C0 xor al,al 000002A9 8807 mov [bx],al 000002AB 8B5E06 mov bx,[bp+0x6] 000002AE 8B1F mov bx,[bx] 000002B0 895EF0 mov [bp-0x10],bx 000002B3 8B46F6 mov ax,[bp-0xa] 000002B6 40 inc ax 000002B7 D1E0 shl ax,1 000002B9 50 push ax 000002BA E85BFE call word 0x118 000002BD 44 inc sp 000002BE 44 inc sp 000002BF 894606 mov [bp+0x6],ax 000002C2 89C3 mov bx,ax 000002C4 8B76F0 mov si,[bp-0x10] 000002C7 8937 mov [bx],si 000002C9 8B46F6 mov ax,[bp-0xa] 000002CC 894604 mov [bp+0x4],ax 000002CF C746F60100 mov word [bp-0xa],0x1 000002D4 31C0 xor ax,ax 000002D6 8946F4 mov [bp-0xc],ax 000002D9 31C0 xor ax,ax 000002DB 8946F8 mov [bp-0x8],ax 000002DE EB5B jmp short 0x33b 000002E0 8B46F8 mov ax,[bp-0x8] 000002E3 0346F2 add ax,[bp-0xe] 000002E6 89C3 mov bx,ax 000002E8 803F20 cmp byte [bx],0x20 000002EB 7627 jna 0x314 000002ED 8B46F4 mov ax,[bp-0xc] 000002F0 85C0 test ax,ax 000002F2 7520 jnz 0x314 000002F4 8B46F8 mov ax,[bp-0x8] 000002F7 0346F2 add ax,[bp-0xe] 000002FA 50 push ax 000002FB 8B46F6 mov ax,[bp-0xa] 000002FE FF46F6 inc word [bp-0xa] 00000301 D1E0 shl ax,1 00000303 034606 add ax,[bp+0x6] 00000306 89C3 mov bx,ax 00000308 8B76EE mov si,[bp-0x12] 0000030B 8937 mov [bx],si 0000030D 44 inc sp 0000030E 44 inc sp 0000030F C746F40100 mov word [bp-0xc],0x1 00000314 8B46F8 mov ax,[bp-0x8] 00000317 0346F2 add ax,[bp-0xe] 0000031A 89C3 mov bx,ax 0000031C 803F20 cmp byte [bx],0x20 0000031F 7717 ja 0x338 00000321 837EF401 cmp word [bp-0xc],byte +0x1 00000325 7511 jnz 0x338 00000327 8B46F8 mov ax,[bp-0x8] 0000032A 0346F2 add ax,[bp-0xe] 0000032D 89C3 mov bx,ax 0000032F 30C0 xor al,al 00000331 8807 mov [bx],al 00000333 31C0 xor ax,ax 00000335 8946F4 mov [bp-0xc],ax 00000338 FF46F8 inc word [bp-0x8] 0000033B 8B46F8 mov ax,[bp-0x8] 0000033E 3B46FA cmp ax,[bp-0x6] 00000341 7C9D jl 0x2e0 00000343 8B46F6 mov ax,[bp-0xa] 00000346 D1E0 shl ax,1 00000348 034606 add ax,[bp+0x6] 0000034B 89C3 mov bx,ax 0000034D 31C0 xor ax,ax 0000034F 8907 mov [bx],ax 00000351 83C40C add sp,byte +0xc 00000354 5E pop si 00000355 5F pop di 00000356 5D pop bp 00000357 C3 ret msdos/i86.c __get_cs() 00000358 8CC8 mov ax,cs 0000035A C3 ret __get_ds() 0000035B 8CD8 mov ax,ds 0000035D C3 ret __get_es() 0000035E 8CC0 mov ax,es 00000360 C3 ret __set_es() 00000361 89E3 mov bx,sp 00000363 8E4702 mov es,[bx+0x2] 00000366 C3 ret 00000367 00 __peek_es() 00000368 89E3 mov bx,sp 0000036A 8B5F02 mov bx,[bx+2] 0000036D 268A07 mov al,[es:bx] 00000370 30E4 xor ah,ah 00000372 C3 ret 00000373 00 libc/crt0.c [loc 1] ZP_safety: 00000374 0000 00000376 0000 00000378 0000 0000037A 0000 auto_start: 0000037C FC01 ; __mkargv 0000037E 0000 libc/msdos/msdos.c [loc 2] 00000380 0C01 ; .word _main 00000382 E501 ; .word call_exit errno: 00000384 0000 00000386 0000 brk_addr: 00000388 A003 0000038A 0000 _defarg: 0000038C 9803 0000038E 0000 _def_environ: 00000390 8E03 ___cleanup: 00000392 0000 ___envseg: 00000394 0000 ___psp: 00000396 0000 00000398 4300 0000039A 0000 __edata: 0000039c __end: 000003a0