2012-04-05 5 views
9

Sto cercando di capire la specs, ma non riesco a capire la prima riga dell'esempio dato:Come capire la prima riga dell'esempio sull'assemblaggio delle specifiche DCPU-16?

SET A, 0x30    ; 7c01 0030 

Ecco quello che ho capito dalle specifiche:

  • la prima parola (7c01) pienamente definisce l'istruzione
  • l'operatore è 0x1 che è il comando SET a, b
  • b = 111100 = 0x3C (quando si converte in Hex) = valore letterale 0x3C
  • a = 000000 = registrare un

così ho capito le istruzioni come SET A, 0x3C

Qualcuno può consigliare dove ho sbagliato?

+1

Dov'è b = 111100 viene? Dal mio punto di vista b = 110000 = 0x30 ... –

+0

@cli_hlt Hum, ora ho 0x7c01 = 0111110000000001 che mi dà b = 011111 = 1F?! – tucson

risposta

9

Ah ok dai commenti ho finalmente avuto la mia risposta.

Ti manca la sezione "Valori" dal spec, ci si dice:

Values: 
.... 
0x1f: next word (literal) 

Quindi abbiamo:

0x7c01 = 0111110000000001 

0001 = SET 
000000 = register A 
011111 = 1F -> next word -> [PC++] 

parola successiva è 0x0030 ... voilà.

+0

Capito. Grazie! – tucson

0

@cli_hlt è quasi corretta

documentazione dcpu dice:

In un'istruzione di base, i più bassi cinque bit della prima parola dell'istruzione sono il codice operativo, ei bit undici rimanenti sono dividere in un valore di cinque bit b e un valore di sei bit a.

b viene sempre gestito dal processore dopo un, ed è il cinque inferiore bit. In bit (in formato LSB-0), un'istruzione di base ha il formato: aaaaaabbbbbooooo

quindi la risposta corretta è:

0x7c01 = 0111110000000001 

00001 = SET 
00000 = register A 
011111 = 1F -> next word -> [PC++] 
Problemi correlati