Guia de Instruções Assembly e Mnemônicos do SC
Enviado por Comunidade Wikiteka e classificado em Computação
Escrito em em
português com um tamanho de 8,29 KB
ADD e SUB
ADD (add) significa adicionar o conteúdo do registrador designado ao acumulador.
De maneira parecida, a instrução SUB significa subtrair o conteúdo do registrador designado do acumulador.
INR e DCR
Muitas vezes desejamos incrementar ou decrementar o conteúdo de um dos registradores. INR é o mnemônico para incrementar, que manda o computador incrementar o registrador designado. DCR é o mnemônico de decrementar, que manda o computador decrementar o registrador designado.
JMP
Para começar, JMP é o mnemônico para saltar (jump), que manda o computador buscar a próxima instrução da posição designada da memória. Toda instrução JMP inclui um endereço que é carregado no contador de programa.
LDA e STA
O LDA (load accumulator) tem o significado de carregar o acumulador com o dado endereçado na memória. As posições de memória que podem ser acessadas no SC vão de 0000H a FFFFH. Por exemplo, LDA 2000H significa carregar o acumulador com o conteúdo da posição 2000H na memória.
STA (store accumulator) é um mnemônico para armazenar o acumulador. Todas as instruções STA necessitam de um endereço. STA 7FFFH significa armazenar o conteúdo do acumulador na posição 7FFFH da memória.
MVI
MVI (move immediate) é o mnemônico para mover imediato. Esta instrução diz para o computador carregar um registrador indicado com o byte que sucede imediatamente o código de operação.
MOV
MOV (move) é o mnemônico de mover. Esta instrução diz para o computador mover dados de um registrador para outro.
JM
O nosso SC tem dois flags: o de sinal e o de zero. Durante a execução de algumas instruções, estes flags serão setados ou zerados dependendo do que acontece com o conteúdo do acumulador. Se o conteúdo do acumulador se tornar negativo, o flag de sinal será setado; se não, será zerado. Simbolicamente:
- S = 0 se
A >= 0 - S = 1 se
A < 0
Onde S significa flag de sinal. O flag de sinal permanecerá setado ou zerado até que uma nova operação o afete.
JZ
Outro flag afetado pelas operações de acumulador é o de zero. Durante a execução de algumas instruções, o acumulador se tornará zero. Para registrar este evento, o flag de zero será setado. Se o conteúdo do acumulador não se tornar zero, o flag de zero será zerado. Simbolicamente:
- Z = 1 quando
A = 0 - Z = 0 quando
A != 0
JZ é o mnemônico para saltar se zero (jump if zero), que manda o computador saltar para o endereço designado apenas se o flag de zero estiver setado.
JNZ
JNZ significa saltar se não zero (jump if not zero). Ele manda o computador saltar para o endereço designado apenas quando o flag de zero estiver zerado. Quando o flag de zero estiver setado, não haverá salto. Suponha que uma instrução JNZ 7800H esteja em 2100H. Se Z = 0, a próxima instrução virá de 7800H; entretanto, se Z = 1, o programa passará imediatamente para a instrução armazenada em 2101H.
CALL e RET
CALL (chamar) é um mnemônico para chamar uma sub-rotina. Toda instrução CALL deve incluir o endereço inicial da sub-rotina desejada. Por exemplo, se uma sub-rotina para raiz quadrada começar no endereço 5000H e uma de logaritmo começar no endereço 6000H, a execução de CALL 5000H irá fazer um salto para a sub-rotina de raiz quadrada. Por outro lado, uma instrução CALL 6000H chamará a sub-rotina de logaritmo.
RET significa retornar. Ela é usada no fim de todas as sub-rotinas para mandar o computador retornar ao programa original. Uma instrução RET está para uma sub-rotina assim como uma instrução HLT está para um programa. Ambas dizem ao computador que algo está terminado.
CMA
CMA significa complementar o acumulador. A execução de uma CMA inverte ou nega cada um dos bits do acumulador, produzindo o complemento de 1.
ANA
ANA significa realizar a operação lógica AND no acumulador (AND accumulator) juntamente com o conteúdo do registrador designado na instrução.
ORA
ORA é o mnemônico para realizar a operação lógica OR no acumulador (OR Accumulator) juntamente com o registrador designado. As duas instruções ORA do nosso SC são ORA B e ORA C.
XRA
XRA significa realizar a operação lógica XOR no acumulador (XOR Accumulator) juntamente com o registrador designado. O nosso SC apresenta as instruções XRA B e XRA C em seu conjunto de instruções.
ANI
O SC também apresenta instruções lógicas imediatas. ANI significa AND imediato (AND Immediate). Ela manda o computador fazer a operação AND entre o conteúdo do acumulador e o byte que sucede imediatamente o código de operação.
ORI
ORI é o mnemônico para OR imediato (OR Immediate). O computador faz um OR entre o conteúdo do acumulador e o byte que sucede o código de operação da instrução.
XRI
XRI significa XOR imediato (XOR Immediate). Se o acumulador contiver 0001 1100, a execução de XRI D4H fará o exclusive OR de 0001 1100 com 1101 0100 para produzir A = 1100 1000.
NOP
NOP significa não operar (no operation). Durante a execução de uma NOP, todos os estados não fazem nada. Portanto, não ocorre nenhuma alteração nos registradores. A instrução NOP é usada para perder tempo; precisa-se de quatro estados para buscar e executar a instrução NOP.
HLT
HLT significa parar (halt). Ela encerra o processamento dos dados.
OUT
OUT significa sair (output). Quando esta instrução é usada, o conteúdo do acumulador é carregado na porta de saída indicada. O seu formato é OUT byte. Por exemplo, quando há duas portas numeradas 3 e 4, você terá de especificar qual está sendo usada. Seja OUT 03H: esta instrução irá transferir o conteúdo do acumulador para a porta 3.
RAL
RAL é o mnemônico para rotacionar o acumulador para a esquerda (rotate the accumulator to left). Esta instrução deslocará todos os bits do acumulador para a esquerda, além de mover o bit mais significativo (MSB) para a posição do bit menos significativo (LSB). Por exemplo, suponha que o conteúdo do acumulador seja A = 1011 0100. A execução de RAL resultará em A = 0110 1001.
RAR
RAR significa rotacionar o acumulador para a direita (rotate accumulator to right). Desta vez, os bits do acumulador se deslocam para a direita e o bit menos significativo (LSB) vai para a posição do bit mais significativo (MSB). Se A = 1011 0100, a execução de uma RAR resultará em A = 0101 1010.