Je veux créer une sous-chaîne (ministring) de 3 asciz chars hors de mon original (thestring). La chose ne s'imprime pas en cours d'exécution donc je ne sais pas ce que je fais. Pourquoi ce n'est pas l'impression? Est-ce que je crée le ministring correctement?créer une sous-chaîne sur Linux IA-32 assembleur (gaz)
.section .data
thestring: .asciz "111010101"
ministring: .asciz ""
formatd: .asciz "%d"
formats: .asciz "%s"
formatc: .asciz "%c"
.section .text
.globl _start
_start:
xorl %ecx, %ecx
ciclo:movb thestring(%ecx,1), %al
movzbl %al, %eax
movl %eax, ministring(%ecx,1)
incl %ecx
cmpl $3, %ecx
jl ciclo
movl thestring, %eax
pushl %eax
pushl $formats
call printf
addl $4, %esp
movl $1, %eax
movl $0, %ebx
int $0x80
Segmentation fault – andandandand
J'ai édité mon post, pour ajouter une suggestion pour utiliser movb au lieu de movl. Aussi, peut-être que vous devriez utiliser utiliser débogueur pour parcourir ce code, et d'examiner la mémoire et enregistrer le contenu. – ChrisW
A fait les deux changements. Encore une erreur de segmentation – andandandand