Assemblée 8086: Conversion 8 bits du nombre binaire à sa couleur Gris nombre équivalent?

Problème:

Écrire un programme permettant de convertir les 8 bits du nombre binaire saisi à partir du clavier à l'équivalent Gris code nombre binaire, à l'aide de la suite de l'algorithme:

[image brisée: http://www.harborlandings.com/images/grayAlgm.jpg]

Je suis en apprentissage de l'assemblée (8086, requis par classe) et ne savez pas comment faire cela.

Puis-je convertir chaque caractère (1 ou 0) comme je le recevoir à partir du clavier? Ou, dois-je le lire dans l'ensemble de la 8-bits du nombre binaire, boucle à travers elle, le taux de conversion-je aller?

Je viens de Perl/Java, afin de visualiser la façon dont cela va fonctionner dans l'assemblage est un peu intimidant. Aussi, je ne suis pas sûr de ce que le symbole est dans l'algorithme ci-dessus?

Je vous remercie pour votre aide et votre critique!

  • plus-dans-un-cercle est le ou exclusif (XOR) de l'opérateur.
  • Vous n'êtes autorisé à utiliser toutes sortes de bibliothèques? Parce que sinon, l'obtention d'entrée va être une vraie douleur dans le cul.
  • Courrez-vous dans les vieux Systèmes d'exploitation, comme le DOS?
  • Non, je ne le pense pas. J'ai fait cela de la manière suivante... segment de données PARLIST ÉTIQUETTE OCTET MAXLEN DB 40 ACTLEN DB ? inpchr DB 40 DUP(?) prmpt db '1 ou 0: $', 0DH, 0AH, se termine début: mov ax, data mov ds, ax mov es, ax mov bx, 1 mov cx, 0 Loop1: mov ah, 9 lea dx, prmpt int 21H ; DOS clavier pour saisir des caractères mov ah, 0AH lea dx, PARLIST int 21H ; Déplacer l'entrée char à al mov al, inpchr cmp al, 49 ; Est entrée char == 1 jne Loop1 xor bx, 1 jmp Loop1 se termine
  • Qui a travaillé :-{ je suppose que pas de code dans les commentaires!
  • Je suis en cours d'exécution sur WinXP, à l'aide de l'émulateur emu8086.com.