#This is a function that takes an address to a list in the first parameter and list length in second parameter, and doubles each element #extern void doubleli( int li[], int length ) # x86 at&t syntax .globl doubleli doubleli: pushl %ebp movl %esp, %ebp movl 8(%ebp), %ebx # ebx holds the list's starting address movl $0, %ecx # ecx goes from [0 ... length - 1] doubleelem: #How can I write these three rows in one? movl (%ebx, %ecx, 4), %eax addl %eax, %eax movl %eax, (%ebx, %ecx, 4) #------ incl %ecx cmp %ecx, 12(%ebp) jne doubleelem movl %ebp, %esp popl %ebp ret