Bonjour,
J'ai réalisé un petit programme en c, le voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
int cpt=0;
int main () {
	while(cpt!=3000000){	
		cpt=cpt+1;
	}
}
En utilisant gcc, j'ai pu obtenir son équivalent

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
	.file	"boucle.c"
	.global	cpt
	.bss
	.align	2
	.type	cpt, %object
	.size	cpt, 4
cpt:
	.space	4
	.text
	.align	2
	.global	main
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 4
	@ frame_needed = 1, uses_anonymous_args = 0
	mov	ip, sp
	stmfd	sp!, {fp, ip, lr, pc}
	sub	fp, ip, #4
	sub	sp, sp, #4
	b	.L2
.L3:
	ldr	r3, .L5
	ldr	r3, [r3, #0]
	add	r2, r3, #1
	ldr	r3, .L5
	str	r2, [r3, #0]
.L2:
	ldr	r3, .L5
	ldr	r2, [r3, #0]
	ldr	r3, .L5+4
	cmp	r2, r3
	bne	.L3
	ldmfd	sp, {r3, fp, sp, pc}
.L6:
	.align	2
.L5:
	.word	cpt
	.word	3000000
	.size	main, .-main
	.ident	"GCC: (GNU) 4.3.4"
	.section	.note.GNU-stack,"",%progbits
J'ai déchiffré pratiquement tout, par contre, je ne comprend bien la signification de

ldr r3, .L5 @charge ce qu'il y a dans l'étiquette?
ldr r3, [r3, #0] @récupère la valeur de cpt?
ldr r3, .L5+4 @récupère la valeur 3000000?

Merci d'avance