Gladir.com - Assembleur 4004 - Référence des instructions 4004 par opération


Vue par description   Vue par opération

Voici un tableau de référence des différents instructions du microprocesseur 4004:

Nom Opération Description
ADD A = A + indexreg + FlagCY

Cette instruction permet d'additionner une opérande au registre A (Accumulateur).

ADM A = A + mem[-mem-addr-] + FlagCY

Cette instruction permet d'additionner la cellule mémoire du registre A (accumulateur).

BBL Retire un de la pile PC; A = immediate4

Cette instruction permet de retirer de la pile une valeur et la copie dans le registre A (accumulateur).

CLB A = 0; FlagCY = 0

Cette instruction permet de copier la valeur 0 dans le registre A (accumulateur) et l'indicateur de retenue (CY).

CLC FlagCY = 0

Cette instruction permet de copier la valeur 0 dans l'indicateur de retenue (CY).

CMA A = NOT A

Cette instruction permet d'effectuer le complément du registre A (accumulateur).

CMC FlagCY = NOT FlagCY

Cette instruction permet d'inverser la valeur de l'indicateur de retenue (CY).

DAA  

Cette instruction corrige après coup les retenues lors de la manipulation de valeur DCB.

DAC A = A - 1

Cette instruction permet de décrémenter le registre A (accumulateur) de 1.

DCL -mem-addr-(bit9..8) = A(bit2..0)

Cette instruction permet de fixer la mémoire pour une ligne de commande.

FIM indexregpair = progmem[PC+] (immediate8)

Cette instruction permet de copier dans une paire de registre d'index la valeur contenu dans une adresse mémoire de programme avec l'ajout d'une valeur immédiate à cette adresse.

FIN indexregpair = progmem[PC(bit11..8),indexreg0,indexreg1]

Cette instruction permet de copier dans une paire de registre d'index la valeur contenu dans une adresse mémoire de programme avec l'ajout des valeurs des registres d'index 0 et 1 à cette adresse.

IAC A = A + 1

Cette instruction permet d'incrémenter le registre A (accumulateur) de 1.

INC indexreg = indexreg + 1

Cette instruction permet d'incrémenter le registre d'index de 1.

ISZ indexreg = indexreg + 1; Si indexreg != 0 PC = PC(bit11..8),progmem[PC+]

Cette instruction permet d'incrémenter un registre d'index et effectue un saut du pointeur de programme si l'index contient la valeur 0.

JIN PC = PC(bit11..8),indexreg,indexreg+1

Cette instruction permet d'effectuer un saut du pointeur de programme à partir de l'adresse contenu dans la paire de registre d'index spécifié.

JCN Si condition PC = PC(bit11..8),progmem[PC+] (address8)

Cette instruction permet d'effectuer un saut du pointeur de programme en fonction d'une condition à partir de l'adresse contenu dans la paire de registre d'index spécifié.

JMS La pile PC avance de 1; PC = aaaa(bit11..8),progmem[PC+]

Cette instruction permet d'effectuer un saut du pointeur de programme à un sous-programme à partir de l'adresse spécifié.

JUN PC = aaaa(bit11..8),progmem[PC+] (address12, 4 oct digit)

Cette instruction permet d'effectuer un saut du pointeur de programme à l'adresse spécifié.

KBP A = table(A)

Cette instruction permet d'extraire une des valeurs du tampon clavier et le copie dans le registre A (accumulateur).

LD A = indexreg

Cette instruction permet de copier une adresse de mémoire contenu dans un index dans le registre A (accumulateur).

LDM A = immediate4

Cette instruction permet de copier une adresse de mémoire directe dans le registre A (accumulateur).

NOP do nothing

Cette instruction ne fait rien.

RAL A <<= A

Cette instruction permet d'effectuer la rotation des bits du registre A (accumulateur) et le bit de l'indicateur de retenue vers la gauche.

RAR A =>> A

Cette instruction permet d'effectuer la rotation des bits du registre A (accumulateur) et le bit de l'indicateur de retenue vers la droite.

RD0 A = status0mem[-mem-addr-(bit9..4)]

Cette instruction permet d'écrire la valeur de l'adresse de mémoire d'état 0 dans le registre A (accumulateur).

RD1 A = status1mem[-mem-addr-(bit9..4)]

Cette instruction permet d'écrire la valeur de l'adresse de mémoire d'état 1 dans le registre A (accumulateur).

RD2 A = status2mem[-mem-addr-(bit9..4)]

Cette instruction permet d'écrire la valeur de l'adresse de mémoire d'état 2 dans le registre A (accumulateur).

RD3 A = status3mem[-mem-addr-(bit9..4)]

Cette instruction permet d'écrire la valeur de l'adresse de mémoire d'état 3 dans le registre A (accumulateur).

RDM A = mem[-mem-addr-]

Cette instruction permet d'écrire la valeur de la cellule mémoire dans le registre A (accumulateur).

RDR A = ROM-input-port[-mem-addr-(bit7..4)]

Cette instruction permet d'écrire la valeur d'un port avec l'adresse du port contenu une cellule mémoire morte (ROM) dans le registre A (accumulateur).

SBM A = A - mem[-mem-addr-] - FlagCY

Cette instruction permet de soustraire la cellule mémoire du registre A (accumulateur).

SRC -mem-addr-(bit7..0) = indexreg,indexreg+1

Cette instruction permet d'envoyer un registre de contrôle.

STC FlagCY = 1

Cette instruction permet de copier la valeur 1 dans l'indicateur de retenue (CY).

SUB A = A - indexreg - FlagCY

Cette instruction permet de soustraire l'opérande source au registre A (accumulateur).

TCC A = 0,0,0,FlagCY; FlagCY=0

Cette instruction permet de copier la valeur de l'indicateur de retenue dans le registre A (accumulateur) et met la valeur 0 dans l'indicateur de retenue (CY).

TCS A = 9 + FlagCY; FlagCY=0

Cette instruction permet de soustraire la valeur de l'indicateur de retenue au registre A (accumulateur) et met la valeur 0 dans l'indicateur de retenue (CY).

WMP RAM-output-port[-mem-addr-(bit9..4)] = A

Cette instruction permet d'écrire la valeur du registre A (accumulateur) dans un port avec l'adresse du port contenu une cellule mémoire.

WPM progmem[-mem-addr-(bit7..0)](bit7..4-or-bit3..0)

Cette instruction permet d'écrire la valeur du registre A (accumulateur) dans une adresse de cellule mémoire de programme.

WR0 status0mem[-mem-addr-(bit9..4)] = A

Cette instruction permet d'écrire la valeur du registre A (accumulateur) dans l'adresse de mémoire d'état 0.

WR1 status1mem[-mem-addr-(bit9..4)] = A

Cette instruction permet d'écrire la valeur du registre A (accumulateur) dans l'adresse de mémoire d'état 1.

WR2 status2mem[-mem-addr-(bit9..4)] = A

Cette instruction permet d'écrire la valeur du registre A (accumulateur) dans l'adresse de mémoire d'état 2.

WR3 status3mem[-mem-addr-(bit9..4)] = A

Cette instruction permet d'écrire la valeur du registre A (accumulateur) dans l'adresse de mémoire d'état 3.

WRM mem[-mem-addr-] = A

Cette instruction permet d'écrire la valeur du registre A (accumulateur) dans une cellule mémoire.

WRP ROM-output-port[-mem-addr-(bit7..4)] = A

Cette instruction permet d'écrire la valeur du registre accumulateur dans un port avec l'adresse du port contenu une cellule mémoire morte (ROM).

XCH A = indexreg; indexreg = A

Cette instruction permet d'échanger une adresse de mémoire contenu dans un index avec le registre A.


Dernière mise à jour: Samedi, le 25 mars 2006