preguntar acerca de assembly

3
réponses

Que signifie «rep ret»?

Je testais du code sur Visual Studio 2008 et j'ai remarqué security_cookie. Je peux comprendre le but de cela, mais je ne comprends pas quel est le but de cette instruction. rep ret /* REP to avoid AMD branch prediction penalty */ Bien sûr, je …
demandé sur 1970-01-01 00:33:33
3
réponses

Pourquoi les instructions et sont-elles générées?

Pour un code comme celui-ci: int res = 0; for (int i = 0; i < 32; i++) { res += 1 << i; } Ce code est généré (mode de libération, aucun débogueur attaché, 64bit): xor edx,edx mov r8d,1 _loop: lea ecx,[r8-1] and ecx,1Fh ; …
demandé sur 1970-01-01 00:33:32
7
réponses

Référence de l’Opcode Intel x86?

Qu'est-ce qu'une méthode relativement rapide et facile de rechercher ce que signifie un opcode arbitraire (par exemple, 0xC8) dans x86? Le manuel du développeur de logiciels Intel n'est pas très amusant à rechercher... ... …
demandé sur 1970-01-01 00:33:31
4
réponses

Écrire mon propre BIOS

Je ne suis pas fou, juste réinventer la roue: D J'ai écrit boot-loaders, souris et clavier Mini-pilotes, mini OS et ainsi de suite. J'essaie toujours d'éviter les interruptions DOS, en utilisant uniquement les bios, en essayant d'avancer un mini …
demandé sur 1970-01-01 00:33:32
2
réponses

Langage d’assemblage — Comment faire Modulo?

Y a-t-il quelque chose comme un modulo-opérateur dans L'assembleur x86? ... …
demandé sur 1970-01-01 00:33:31
3
réponses

Comment les registres fs/gs sont-ils utilisés dans Linux AMD64?

Sur l'architecture x86-64, deux registres ont un but particulier: FS et GS. Dans linux 2.6.* , le registre FS semble être utilisé pour stocker des informations thread-local. Est-ce exact? Qu'est-ce qui est stocké à fs: 0? Y a-t-il une structure C …
demandé sur 1970-01-01 00:33:31
2
réponses

Pourquoi le registre PC ARM pointe-t-il vers l’instruction après la suivante à exécuter?

Selon le bras IC. Dans L'état ARM, la valeur du PC est l'adresse de l'instruction en cours plus 8 octets. Dans L'État du pouce: pour les instructions B, BL, CBNZ et CBZ, la valeur du PC est l'adresse de l'instruction courante plus 4 …
demandé sur 1970-01-01 00:33:34
4
réponses

Que signifie le signe dollar ($) dans l’assemblage x86 lors du calcul des longueurs de chaîne comme «$ — label»? [dupliquer]

Cette question a déjà une réponse ici: Comment $ fonctionne-t-il dans NASM, exactement? 1 réponse Par exemple, si nous écrivions un programme de type hello …
demandé sur 1970-01-01 00:33:32
1
réponses

Comment fonctionnent exactement les registres partiels sur Haswell/Skylake? Écrire AL semble avoir une fausse dépendance sur RAX, et AH est incohérent

Cette boucle s'exécute à une itération par 3 cycles sur Intel Conroe / Merom, goulot d'étranglement sur le débit imul comme prévu. Mais sur Haswell / Skylake, il s'exécute à une itération par 11 cycles, apparemment parce que {[2] } a une dépendance …
demandé sur 1970-01-01 00:33:37
5
réponses

Débogage D’un programme C (serveur Redis)

Prémisse Salut, J'ai reçu plusieurs rapports d'un utilisateur Redis qui a connu des pannes de serveur, en utilisant une version stable de Redis (dernière version, 2.4.6). Le bug est étrange puisque l'utilisateur ne fait pas de choses ésotériques, t …
demandé sur 1970-01-01 00:33:32