Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

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;
}

 

Δημοσ.

Ναι αμέ...

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:

 

 

  • Like 1
Δημοσ.

Ναι αμέ...

 

 

gcc -S code.c

 

Ξέχασες -masm=intel. Η Intel σύνταξη θεωρείται πιο ευανάγνωστη οπότε συνήθως αυτήν διδάσκουν :P

 

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]

 

 

Πες μας σε ποιο σημείο δυσκολεύτηκες για να βοηθήσουμε. Αν το παιδέψεις λίγο βγαίνει πολύ εύκολα.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...