You are on page 1of 1

1. ESPECIFICAO CLEPATRA 2.

3 - RESUMO
Conjunto de Registradores:
1 Registrador Acumulador 1 Contador de Programa 1 Registrador de Subrotina 4 Biestveis de Estado AC PC RS C V N Z

Linguagem de Montagem (Assembly) - Sintaxe:


Os cdigos de operao so reservados, correspondendo aos 14 mnemnicos mencionados acima, no item Instrues; Rtulos podem denotar posies da memria de programa, quando precederem algum dos 14 mnemnicos, ou da memria de dados, quando precederem a diretiva DB; Rtulos so especificados por qualquer texto diferente de um mnemnico, sucedido do caracter :; Comentrios vo do primeiro caracter ; at o final da linha; Formato para os operandos o seguinte: #<rtulo> ou #<nmero>; <rtulo> ou <nmero>; <rtulo>,I ou <nmero>,I; <rtulo>,R ou <nmero>,R Os smbolos #, I e R indicam o modo de endereamento a usar na interpretao do operando, correspondendo aos modos Imediato, Indireto e Relativo, respectivamente. O modo Direto assumido se nenhum dos outros for fornecido. <rtulo> representa qualquer rtulo como especificado acima, sem o caracter delimitador :. <nmero> representa um nmero em um de trs formatos, hexa binrio ou decimal: <numhexa>H / <numbin>B / <numdec> Diretivas de montagem no so instrues do processador, mas ordens para o programa montador. Por exemplo, a diretiva DB (define byte) ordena a reserva de um byte de memria de dados para uso pelo programa, quando em execuo. Outras diretivas da linguagem so .CODE e .ENDCODE, que delimitam o texto do programa e .DATA e .ENDDATA, que delimitam a rea de dados. Finalmente, existe a diretiva ORG, que define o prximo endereo de montagem, seja de dados, seja de instrues do programa.

Vai-um Transbordo Negativo Zero

Modos de Endereamento:
00 - Imediato (Operando o dado de 8 bits junto instruo); 01 - Direto (Operando endereo de memria de 8 bits. Diz onde se encontra o dado); 10 - Indireto (Operando endereo de memria de 8 bits. Diz onde se encontra o endereo do dado); 11 - Relativo (Operando deslocamento de 8 bits em complemento de 2, para ser adicionado ao valor atual do PC, gerando assim o endereo do dado).

Instrues:
Cdigo 000x 001x 0100 0101 0110 0111 1000 1001 1110 1010 1011 1100 1101 1111 Mnemnico NOT STA oper LDA oper ADD oper OR oper AND oper JMP oper JC oper JV oper JN oper JZ oper JSR oper RTS HLT Operao Complementa (inverte) todos os bits de AC. Armazena AC na memria dada por oper. Carrega AC com contedos de memria da posio dada por oper. Adiciona AC a contedo da memria dada por oper. Faz OU lgico do AC com contedo da memria dada por oper. Faz E lgico do AC com contedo da memria dada por oper. PC recebe dado especificado por oper. Se C=1, ento PC recebe valor dado por oper. Se V=1, ento PC recebe valor dado por oper. Se N=1 ento PC recebe valor dado por oper. Se Z=1, ento PC recebe valor dado por oper. RS recebe contedo de PC e PC recebe dado de oper. PC recebe contedos de RS. Suspende processo de busca e execuo de instrues.

Exemplos de Programas:
(Endereos da memria de programa e da memria de dados e cdigo objeto de cada linha so colocados como comentrio.) 1. Exemplo: Este programa executa um algoritmo irrelevante, apenas serve para ilustrar o formato da linguagem de montagem, a traduo de linguagem de montagem para linguagem de mquina (em hexadecimal) e o funcionamento dos modos de endereamento. Note que o nmero das linhas no faz parte do programa, est indicado apenas para fins didticos. Explanao: O programa inicia carregando o registrador acumulador AC com o contedo da posio 90 de memria, na linha 3 (posio inicializada com 30 pela diretiva DB na memria de dados); a este dado, a segunda instruo soma o contedo da posio de memria 93 (dado 5B), colocando o resultado da soma de volta no acumulador, obtendo o dado via endereamento indireto; a terceira instruo realiza o armazenamento do contedo de AC na posio de memria END3 (endereo 92, inicialmente contendo 00). Aps, o mesmo dado transformado pelo zeramento de seus quatro bits mais significativos, pela instruo da linha 6, e o resultado volta AC. Se o resultado desta operao for 0, o programa pra, seno AC tem todos os seus bits invertidos e s a o programa pra. Identifique se, com os dados fornecidos abaixo, a linha 8 da memria de programa executada ou no. Memria de Programa: Rtulo Mnem Operando End Opcode Oper 1 .CODE ;Incio do programa 2 ORG #00H ;Monta a partir de 00H 3 INIT: LDA END1 ;00 44 90 4 ADD END2,I ;02 58 91 5 STA END3 ;04 24 92 6 AND #0FH ;06 70 0F 7 JZ FIM,R ;08 BC 01 8 NOT ;0A 00 9 FIM: HLT ;0B F0 10 .ENDCODE ;Fim do programa Memria de Dados Rtulo Mnem Operando End Dado 1 .DATA ;Incio dos dados 2 ORG #90H ;Monta a partir de 90H 3 END1: DB #30H ;90 30 4 END2: DB #END4 ;91 93 5 END3: DB #00H ;92 00 6 END4: DB #5BH ;93 5B 7 .ENDDATA ;Fim dos dados 2. Exerccio: Faa um programa para somar dois vetores de n posies, onde n est armazenado numa posio de memria ao iniciar o programa.

Observaes:
oper - operando que depende do modo de endereamento para ser determinado; Instrues lgicas (NOT, AND e OR) e LDA - afetam os cdigos de condio N e Z; ADD - Afeta C, V, N e Z; Instrues restantes (STA, JMP, JC, JV, JN, JZ, JSR, RTS HLT) - no alteram cdigos de condio; Nas instrues sem operando (NOT, RTS e HLT), o campo de modo de endereamento no utilizado; Para as instrues de desvio (JMP, JC, JV, JN, JZ, JSR) e STA, os modos de endereamento direto e imediato so idnticos (possuem o mesmo efeito). Existem dois tipos de instruo: com e sem operando; Instrues com operando ocupam 2 bytes da memria de programa, enquanto que instrues sem operando ocupam apenas 1 byte. A seguir, descreve-se o formato da primeira palavra de qualquer instruo.

Formatos de Instruo:
-

Os quatro primeiros bits contm o cdigo da operao (operation code, ou OPCODE), no campo INS, e os dois bits seguintes especificam o Modo de Endereamento (addressing mode), no campo ME, a ser usado. Os 2 ltimos bits da primeira palavra de 1 instruo so sempre 00, no sendo utilizados. O formato o seguinte: INS ME No usados IIII AA 00

Formato da primeira palavra de uma instruo

You might also like