Im avoir un problème avec une partie finale de ma mission. Nous obtenons dans un flux de bits, etc etc, dans le flux est un nombre entier avec le nombre de 1 dans la partie de texte. Je reçois cet entier et son 24 qui est correct, maintenant je boucle à travers les données de texte que je reçois et j'essaye de compter tous les 1 là-dedans. Mais mon proc retourne toujours à zéro.x86 question sur les comparaisons de bits
J'étais capable de m'assurer qu'il bouclait correctement et il l'est.
Le texte = Bonjour qui est de 16 1, voici ma proc pour boucler ce texte pour compter le nombre de ceux qui s'y trouvent.
sub AX,AX
sub SI,SI
mov bx,[bp+6] ;get message offset
@@mainLoop:
mov cx,8
mov dh,80h
cmp byte ptr [bx + si],0
je @@endChecker
@@innerLoop:
test byte ptr [bx + si],dh
jz @@zeroFound
inc AX
@@zeroFound:
shr bh,1
loop @@innerLoop
@@continue:
inc si
jmp @@mainLoop
Le reste de la proc est simplement push/pops. Ce que je veux faire est d'utiliser TEST pour comparer 100000000 à un octet, si c'est un AX inc 1 décalé à droite le masque de 1 et boucle tout un octet, puis inc sur l'octet suivant et recommence.
wow im un idiot, c'est ça, merci. – chicken