Je fais du code ASM dans un code C avec la fonction asm.ASM x86 relatif JMP
Mon environnement est DVL avec la version gcc 3.
Salut besoin de faire un JMP à une adresse relative comme% eip + 0x1f.
Comment est-ce que je peux faire ceci?
Merci
Je fais du code ASM dans un code C avec la fonction asm.ASM x86 relatif JMP
Mon environnement est DVL avec la version gcc 3.
Salut besoin de faire un JMP à une adresse relative comme% eip + 0x1f.
Comment est-ce que je peux faire ceci?
Merci
x86 prend en charge un court saut (JMP, opcode EB + 1 octet adresse relative) qui devrait faire ce que vous voulez.
Dans la plupart des assembleurs (y compris l'IIC de gcc en ligne), vous pouvez simplement placer une étiquette à l'endroit où vous voulez aller, et utiliser jmp mylabel
pour laisser au membre le bon code et l'adresse relative pour le saut.
Je viens d'essayer ça dans GCC, et ça marche (sauter aux étiquettes). Mais tu m'as battu au poteau! –
pour l'assemblage en ligne de gcc: qu'en est-il sans étiquettes? __asm __ ("jmp court 0x3F"); ne semble pas se dérober par exemple. Toute solution? – GalDude33