-
Linux Assembler
I'm following a tutorial @ http://www.geocities.com/SiliconVall.../linux-asm.txt
however, the second program (command line arguments) example apparently has an error in it.
The line is:
Code:
movb (%ecx,%edx,$1), %al
Does anyone see anything wrong with that? It's the line `as' flags as having an error.
The entire program:
Code:
########################################################################
.section .data
new_line_char:
.byte 0x0a
########################################################################
.section .text
.globl _start
.align 4
_start:
movl %esp, %ebp # store %esp in %ebp
again:
addl $4, %esp # %esp ---> next parameter on stack
movl (%esp), %eax # move next parameter into %eax
testl %eax, %eax # %eax (parameter) == NULL pointer?
jz end_again # get out of loop if yes
call putstring # output parameter to stdout.
jmp again # repeat loop
end_again:
xorl %eax, %eax # %eax = 0
incl %eax # %eax = 1, system call _exit ()
xorl %ebx, %ebx # %ebx = 0, normal program exit.
int $0x80 # execute _exit () system call
putstring: .type @function
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %ecx
xorl %edx, %edx
count_chars:
movb (%ecx,%edx,$1), %al
testb %al, %al
jz done_count_chars
incl %edx
jmp count_chars
done_count_chars:
movl $4, %eax
xorl %ebx, %ebx
incl %ebx
int $0x80
movl $4, %eax
leal new_line_char, %ecx
xorl %edx, %edx
incl %edx
int $0x80
movl %ebp, %esp
popl %ebp
ret
Any help on this would be greatly appreciated.
-
Getting interest on asm in Linux. ..
zero knowledge to help you. I guess you will find one to help you.
Now tell tell me, how did you start asm...
Give me some online sources. First how to compile code. Then if any tutorial.. I have visited the above url already.
-
-
What is the error? This shoudl be a valid AT&T ASM Syntax line. Although I have not done much ASM in awhile.