Date: Tue, 2 Mar 2004 22:10:31 +0000 From: Daniela <dgw@liwest.at> To: ari <edelkind-freebsd-hackers@episec.com> Cc: hackers@freebsd.org Subject: Re: Strange behaviour in assembly language program Message-ID: <200403022210.31451.dgw@liwest.at> In-Reply-To: <20040302201554.GA50518@episec.com> References: <200403022046.22882.dgw@liwest.at> <20040302201554.GA50518@episec.com>
index | next in thread | previous in thread | raw e-mail
On Tuesday 02 March 2004 20:15, ari wrote: > dgw@liwest.at said this stuff: > > Finally I came up with the simplest ASM program that reproduces the > > error. Here it is: > > > > .text > > .global _start > > _start: > > pushl $0 > > movl $1, %eax > > int $0x80 > > > > I looked everywhere (Developer's handbook, Google, ...) to find the > > solution, but all resources I consulted tell me this is the right way to > > do it. This program, however, always exits with 1 regardless of the value > > I push. > > .text > .global _start > _start: > pushl $8 > pushl $0 > movl $1, %eax > int $0x80 With this suggestion, it always returns 0 instead of 1. Shouldn't pushl place 4 bytes on the stack? It translates into the instruction 0x6A (pushes only one byte). BTW, when I assemble it with as(1), there is always an extra instruction after my code, and it's a different one each time (and it's always one that effectively does nothing). Who ordered that? Is it because of alignment constraints in the ELF file?home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200403022210.31451.dgw>
