roumbak-4- Δημοσ. 13 Μαΐου 2013 Δημοσ. 13 Μαΐου 2013 paidia kalhspera sas xereis kaneis na kanei se assembly to parakatw euxaristw.... count_letters(char str[], int str_len, char c) {int count = 0;for (int i = 0 ; i < str_len ; ++ i) {if (str == c) {count ++;}}return count;}
migf1 Δημοσ. 13 Μαΐου 2013 Δημοσ. 13 Μαΐου 2013 Ναι αμέ... gcc -S code.c .file "_new.c" .text .globl _count_letters .def _count_letters; .scl 2; .type 32; .endef _count_letters: LFB0: .cfi_startproc pushl %ebp .cfi_def_cfa_offset 8 .cfi_offset 5, -8 movl %esp, %ebp .cfi_def_cfa_register 5 subl $20, %esp movl 16(%ebp), %eax movb %al, -20(%ebp) movl $0, -4(%ebp) movl $0, -8(%ebp) jmp L2 L4: movl -8(%ebp), %edx movl 8(%ebp), %eax addl %edx, %eax movb (%eax), %al cmpb -20(%ebp), %al jne L3 incl -4(%ebp) L3: incl -8(%ebp) L2: movl -8(%ebp), %eax cmpl 12(%ebp), %eax jl L4 movl -4(%ebp), %eax leave .cfi_restore 5 .cfi_def_cfa 4, 4 ret .cfi_endproc LFE0: gcc -S -O3 code.c .file "_new.c" .text .p2align 2,,3 .globl _count_letters .def _count_letters; .scl 2; .type 32; .endef _count_letters: LFB0: .cfi_startproc pushl %esi .cfi_def_cfa_offset 8 .cfi_offset 6, -8 pushl %ebx .cfi_def_cfa_offset 12 .cfi_offset 3, -12 movl 16(%esp), %esi movb 20(%esp), %bl testl %esi, %esi jle L6 movl 12(%esp), %edx addl %edx, %esi xorl %eax, %eax jmp L5 .p2align 2,,3 L4: incl %edx cmpl %esi, %edx je L2 L5: leal 1(%eax), %ecx cmpb %bl, (%edx) jne L4 movl %ecx, %eax incl %edx cmpl %esi, %edx jne L5 L2: popl %ebx .cfi_remember_state .cfi_restore 3 .cfi_def_cfa_offset 8 popl %esi .cfi_restore 6 .cfi_def_cfa_offset 4 ret L6: .cfi_restore_state xorl %eax, %eax jmp L2 .cfi_endproc LFE0: 1
imitheos Δημοσ. 13 Μαΐου 2013 Δημοσ. 13 Μαΐου 2013 Ναι αμέ... gcc -S code.c Ξέχασες -masm=intel. Η Intel σύνταξη θεωρείται πιο ευανάγνωστη οπότε συνήθως αυτήν διδάσκουν paidia kalhspera sas xereis kaneis na kanei se assembly to parakatw euxaristw.... count_letters(char str[], int str_len, char c) {[/size] int count = 0;[/size] for (int i = 0 ; i < str_len ; ++ i) {[/size] if (str == c) {[/size] count ++;[/size] }[/size] }[/size] return count;[/size] }[/size] Πες μας σε ποιο σημείο δυσκολεύτηκες για να βοηθήσουμε. Αν το παιδέψεις λίγο βγαίνει πολύ εύκολα.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα