2016-03-13 3 views

Répondre

0

Vous ne pouvez pas faire cela directement. Le jeu d'instructions 8086 est très limité et n'a pas d'opérations en virgule flottante. Tout ce que vous pouvez faire est de définir des octets, manipuler des octets, manipuler des registres, appeler des interruptions. C'est ainsi que le CPU fonctionne au niveau 0 et 1. Autant que je me souvienne des études, nous n'avons rien fait avec des flotteurs. Si vous ne voulez pas d'arithmétique en virgule flottante, vous devez l'implémenter vous-même. Je ne peux pas imaginer combien de lignes et de nuits blanches cela prendrait.

0

Les registres comme AX et BX peuvent stocker des valeurs dans la plage de [0,65535]. Au début, cela exclut les nombres comme 0,5 ou 7,25, mais vous pouvez choisir une disposition de registre qui correspond à vos besoins!

Vous pouvez choisir de stocker la partie entière dans l'octet de poids fort et de stocker la fraction dans l'octet de poids faible. Maintenant, tant que vous vous souvenez de cette mise en page, vous pouvez faire toutes les opérations arithmétiques habituelles sur ces chiffres.

mov ax, 0080h ;integer in AH=0, fraction in AL=128 which represents 0.5 (256/2) 
mov bx, 0740h ;integer in BH=7, fraction in BL=64 which represents 0.25 (256/4) 
add ax, bx 

maintenant AX = 07C0h qui représente 7,75