2017-01-28 5 views
-1

J'essaie de connaître la programmation de l'assembleur, donc j'ai un programme assembleur, mais je ne peux pas suivre la signification de la première colonne.programmation de l'assembleur - signification de la colonne

declare register DR(11:0), AR(7:0), PC(7:0), IR(3:0) 
declare memory MEM(AR,DR) 

FETCH: AR<-PC; 
     read M; 
     IR<-DR(11:8), PC<-PC+1 

     if IR = 10 then goto ADD else 

     else goto FETCH fi; 

Ceci fait partie du programme. L'assembleur exécute cette commande:

$0: 
    $A00; 

Que signifient le '$' et les trois chiffres?

Répondre

1

$ le préfixe dans différents Assemblers (NASM, par exemple) signifie qu'un nombre suivant est une valeur hexadécimale. C'est la notation de style Borland Pascal et Motorola Assemblers. Comme ceci: $AB.

Il y a aussi d'autres notations: préfixe 0x (comme ceci: 0xAB) est la notation hexadécimale C style et h Postfix (comme ce 0ABh) - le style MASM/TASM. Avec le style MASM/TASM, une bonne pratique consiste à utiliser des zéros en tête car sans eux Assembler pourrait confondre avec un libellé un hexadécimal qui commence par une lettre au lieu d'un chiffre.

Dans votre exemple, $0 semble être une étiquette et $A00; - une valeur de données accessible via l'étiquette $0. En fonction de votre contexte de programme $A00; pourrait également être opcode de CPU instructon qui sera exécuté lorsque le flux de contrôle atteindra l'étiquette $0.

+0

Parfait! Et que signifie le 'A00'? A est-il une valeur hexadécimale pour 'si IR = 10' et les autres chiffres ont d'autres significations? – MalteKlg1

+0

Rien, juste a été pris par exemple – SergeyLebedev

+0

Mais qu'est-ce que cela signifie dans mon exemple? – MalteKlg1