> actually, there's probably enough space above your current location to 
> (appear to) work, but a further error
> is hinted in the address given by the trap:
> 
>       8.out 1183: suicide: invalid address 0x7 in sys call pc=0x104e
> 
> since 7 is your length value, you've also got an off-by-4 error in your stack 
> offsets.

actually, i think there's something else wrong:

acid: asm(_main)
_main 0x00001020        SUBL    $0x18,SP
_main+0x3 0x00001023    MOVL    $0x1,0x0(SP)
_main+0xa 0x0000102a    MOVL    $string(SB),0x4(FP)
_main+0x12 0x00001032   MOVL    $0x7,0x8(FP)
_main+0x1a 0x0000103a   MOVL    $0x0,0xc(FP)
_main+0x22 0x00001042   MOVL    $0x0,0x10(FP)
_main+0x2a 0x0000104a   MOVL    $0x33,AX
_main+0x2f 0x0000104f   INTB    $0x40
_main+0x31 0x00001051   ADDL    $0x18,SP
_main+0x34 0x00001054   RET

why does the
for the equivalent c "pwrite(1, string, 7, 0)" i get this

acid: asm(main)
main 0x00001020 SUBL    $0x18,SP
main+0x3 0x00001023     MOVL    $0x1,AX
main+0x8 0x00001028     MOVL    AX,0x0(SP)
main+0xb 0x0000102b     MOVL    string(SB),AX
main+0x11 0x00001031    MOVL    AX,0x4(SP)
main+0x15 0x00001035    MOVL    $0x7,AX
main+0x1a 0x0000103a    MOVL    AX,0x8(SP)
main+0x1e 0x0000103e    MOVL    $0x0,0xc(SP)
main+0x26 0x00001046    MOVL    $0x0,0x10(SP)
main+0x2e 0x0000104e    CALL    pwrite(SB)
main+0x33 0x00001053    ADDL    $0x18,SP
main+0x36 0x00001056    RET

- erik

Reply via email to