> 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
