hey if u need u to use linux calling way u will need to brandelf the executable (if it's elf)
On 4/24/05, Tetsuji Maverick Rai <[EMAIL PROTECTED]> wrote: > I refined my code to make the binary shorter. Your code is in Linux > system call convention (ie, arguments are in eax,ebx,ecx...), however in > FreeBSD by default arguments must be pushed in the stack. > > -----t.s------------- > .section .data > output: > .ascii "The processor Vendor ID is 'xxxxxxxxxxxx'\n" > .section .text > .globl _start > _start: > xor %eax, %eax > cpuid > mov $output, %edi # load address of output in edi > movl %ebx, 28(%edi) > movl %edx, 32(%edi) > movl %ecx, 36(%edi) > pushl $42 > mov $output, %eax > pushl %eax > pushl $1 > mov $4,%eax > push %eax > int $0x80 > add $16,%esp # of course you can omit this > xor %eax,%eax # this is shorter than "pushl $0; pushl $1; mov > $1,%eax" > push %eax > inc %eax > push %eax > int $0x80 > --------------t.s end---------- > > and it works like this: > > ---cut----- > freebsd53:~/tmp% as t.s -o t.o > freebsd53:~/tmp% ld t.o -o t > freebsd53:~/tmp% ./t > The processor Vendor ID is 'GenuineIntel' > ---cut----- > > > HHCHANG wrote: > > >Hi, > >I couldn't execute assembly example under freebsd . > >The environment and tools I used were (in IBM X31 box): > >1. > >bash-2.05b# uname -a > >FreeBSD sexbear.localhost 5.3-STABLE FreeBSD 5.3-STABLE #3: Sun Feb 20 > >21:55:06 UTC 2005 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/SEXBEAR??i386 > >2. > >bash-2.05b# as -v > >GNU assembler version 2.15 [FreeBSD] 2004-05-23 (i386-obrien-freebsd) using > >BFD version 2.15 [FreeBSD] 2004-05-23 > > > >bash-2.05b# ld -v > >GNU ld version 2.15 [FreeBSD] 2004-05-23 > > > >3.(compile and execute the example) > >bash-2.05b# > > as -gstabs -o cpuid.o cpuid.s > > ld -o cpuid cpuid.o > > cpuid (no output after executing the program) > > gdb cpuid > > (gdb) run > > Starting program: /usr/local/src/code/chap04/cpuid > > Program exited with code 0340. > > (gdb) break *_start > > (gdb) run > > Program exited with code 0340. > >###################example in book################################### > >#cpuid.s Sample program to extract the processor Vendor ID > >.section .data > >output: > > .ascii "The processor Vendor ID is 'xxxxxxxxxxxx'\n" > >.section .text > >.globl _start > >_start: > > movl $0, %eax > > cpuid > > movl $output, %edi > > movl %ebx, 28(%edi) > > movl %edx, 32(%edi) > > movl %ecx, 36(%edi) > > movl $4, %eax > > movl $1, %ebx > > movl $output, %ecx > > movl $42, %edx > > int $0x80 > > movl $1, > > %eax > > movl $0, %ebx > > int $0x80 > > > >###################example in book################################### > > > >I viewed the tutorial: http://www.int80h.org/bsdasm/. > >but I couldn't find any syntax error in the program. > >Could someone give me a hint where I could find the more information? > >Thanks~ > > > >Regards, > >_______________________________________________ > >freebsd-hackers@freebsd.org mailing list > >http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > >To unsubscribe, send any mail to "[EMAIL PROTECTED]" > > > > > > > > -- > Tetsuji 'Maverick' Rai > PGP Key fingerprint = 2021 6BF9 CEA3 73DE FF17 B326 F4DA F04E F784 3B85 > gpg fingerprint > Aviation Jokes: http://www.geocities.com/tetsuji_rai/ > Profile http://maverick.ns1.name/ > http://maverick.IsASecret.com/ > > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "[EMAIL PROTECTED]" > -- I'm Searching For Perfection, So Even If U Need Portability U've To Use Assembly ;-) http://www.maslanlab.org _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"