Ceci est une question identique à la publication précédente. L'objectif est de prendre un tableau BYTE de 2, 4, 6, 8, 10 et de les insérer dans un tableau DWORD via une boucle pour les afficher. Ceci est ma dernière tentative.Lecture d'un tableau BYTE dans un tableau DWORD avec une boucle
INCLUDE Irvine32.inc
.data
Array1 BYTE 2,4,6,8,10
Array2 DWORD 5 dup(0)
.code
main PROC
mov esi, OFFSET Array1 ;esi = byteArray
mov edi, OFFSET Array2 ;edi = dwordArray
mov ecx, 5 ;counter of loop
DAWG:
mov eax, [esi] ;attempting to use movzx causes errors
mov [edi], eax
inc esi
add edi, 4
loop DAWG
Des suggestions? Essayer de comprendre avec mon peu (jeu de mots) de la connaissance d'assemblage. Merci d'avoir lu.
Celui-ci fonctionne: 'MOVZX eax, byte ptr [esi]' . – rkhb
C'est en effet le cas. Merci! A ma connaissance, pourquoi 'byte ptr' fait-il fonctionner la déclaration? – caboose103
L'assembleur doit savoir combien de [esi] doit être chargé dans "EAX", car il existe différentes instructions machine à cet effet. 'byte ptr' signifie: prendre un octet. – rkhb