From: Adam L. <ag...@li...> - 2000-02-20 10:37:37
|
On Sat, Feb 19, 2000 at 12:57:04PM +0100, Kasper Verdich Lund wrote: > > Well I've got a quick PCT system working. It ends up w/ > > > > _process_run (p->pr_cr3, p->pr_pct, USER_CS, 0x3202, 0, USER_DS); >=20 > That looks okay. >=20 Well I'm stuck again ;( In t2 (the test program that currently does a PCT to t1) the asm code for sys_pct is thus: sys_pct: movl $0x55,%ecx movl 4(%esp),%eax movl $0x58,%ecx pushl sys_pct_after movl $0x59,%ecx pushal movl $0x62,%ecx pushf movl $0x60,%ecx movl %esp, _crt0_saved_sp movl $0x61,%ecx movl $0x57,%ecx int $0x47 The prototype is: void sys_pct (int pid); All the movl $xx,%ecx are debugging t2 crashes with ECX=3D59 everytime (and I've put delay loops in to check it= isn't a timing thing). CS =3D 0x1b DS =3D 0x23 SS =3D 0x00100023 (that 1 is there again, but pushl sys_pct_after works...) EIP=3D 0xc35832eb ESP=3D 0x10001d0c (there's room on the stack yet) It must be that pushal crashing I think (because if it ever finished ECX wo= uld change). But how does EIP go so wonkey? AGL |