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.