Baixe o app para aproveitar ainda mais
Prévia do material em texto
Microprocessadores Prof. Julio Cesar Ceballos Aya Microprocessadores 2 • Assembly é uma linguagem de baixo nível, chamada frequentemente de “linguagem de montagem”. • É uma linguagem considerada difícil, principalmente porque o programador precisa conhecer a estrutura da máquina para usá-la . Prof. Julio Cesar Ceballos Aya Microprocessadores 3 • A linguagem Assembly é atrelada à arquitetura de uma certa CPU, ou seja, ela depende completamente do hardware, do conjunto de instruções da CPU. • Por essa razão Assembly não é uma linguagem portável, ao contrário da maioria das linguagens de alto nível. Prof. Julio Cesar Ceballos Aya Microprocessadores 4 Assembly x Assembler • A linguagem Assembly é de baixo nível, porém ainda precisa ser transformada na linguagem que a máquina entende. • Quem faz isso é o Assembler. O Assembler é um utilitário que traduz o código Assembly para a máquina. Exemplo Antes -> mov al, 061h (x86/IA-32) Depois -> 10110000 01100001 Prof. Julio Cesar Ceballos Aya Microprocessadores 5 Abstração simbólica da linguagem de máquina • Traduzida pelo programa assembler • Mapeada diretamente em instruções de máquina • Pseudo-instruções e macros auxiliares • Mnemônicos facilitam codificação • Símbolos e rótulos simplificam endereçamento Geralmente uma instrução de em Assembly consiste em quatros campos: [label:] Mnemonic [operands] [;comment] Prof. Julio Cesar Ceballos Aya Microprocessadores 6 Cada linha do programa consiste : ▪ Uma instrução ▪ operandos ▪ comentários Espaços em branco (entre símbolos) são ignorados. Comentários (entre “;””) também são ignorados. A linha de programação segue o seguinte formato: LABEL OPCODE OPERANDS ; COMMENTS opcional obrigatória Prof. Julio Cesar Ceballos Aya Microprocessadores 7 LABEL • Usado para atribuir um nome simbólico para uma variável ou endereço (para desvio) • Campo opcional • Formato • Posição fixa ou separador • Tamanho fixo (6-8 caracteres) ou variável PAR EQU 500 ;"PAR" IS A SYMBOL WHICH ;REPRESENTS THE VALUE 500 START: MOV A, #0FFH ;"START" IS A LABEL WHICH ;REPRESENTS THE ADDRESS OF ;THE MOV INSTRUCTION Prof. Julio Cesar Ceballos Aya Microprocessadores 8 OPCODE “CAMPO DE OPERAÇÂO” • Representações simbólicas das instruções do hardware (CPU), conjunto de instruções do microcontrolador Critério do fabricante copiar registros • MOVWF PIC • MOV 8051 • MOV ARDUINO Prof. Julio Cesar Ceballos Aya Microprocessadores 9 OPERANDS Especifica os alvos das operações • Endereços: instruções de desvio • Variáveis • posição de memória sendo acessada • Constantes • valores para operações aritméticas (endereçamento imediato) • Registradores • variáveis locais do processador Prof. Julio Cesar Ceballos Aya Microprocessadores 10 COMMENTS Usado para acrescentar informações relevantes ao programa • Facilitar a compreensão do mesmo • Programa assembly é praticamente incompreensível sem comentários Formato geral • Indicador de início (; ou !) • Até o final da linha Prof. Julio Cesar Ceballos Aya Microprocessadores 21 Modo Imediato • O valor do operando é especificado diretamente na instrução R1,#4ADD R1 R1+4 V: Nenhum acesso à memória (economia de tempo) D: O tamanho do operando é limitado pelo tamanho do campo de endereço da instrução (100),R1ADD R1 M[100]+R1 Prof. Julio Cesar Ceballos Aya Microprocessadores 22 Modo Direto • O campo de endereço da instrução contém o endereço do operando na memória V: Simplicidade D: Espaço de endereçamento limitado Prof. Julio Cesar Ceballos Aya Microprocessadores 23 Modo indireto • O campo de endereço da instrução contém um endereço da memória cujo conteúdo é o endereço do operando na memória V: Espaço de endereçamento grande D: Acessos múltiplos à memória (R1),R1ADD R1 M[R1]+R1 Prof. Julio Cesar Ceballos Aya Microprocessadores 24 Modo Registrador • Semelhante ao endereçamento direto V: Nenhum acesso à memória D: Espaço de endereçamento limitado R1,R2ADD R2 R1+R2 Prof. Julio Cesar Ceballos Aya Microprocessadores 25 Modo Indireto via Registrador • Semelhante ao endereçamento indireto A,(R1)MOV A M[R1] V: Espaço de endereçamento grande D: Acesso extra à memória Prof. Julio Cesar Ceballos Aya Microprocessadores 26 Modo Deslocamento • É uma combinação dos modos Direto e Indireto via Registrador V: Flexibilidade D: Complexo Prof. Julio Cesar Ceballos Aya Microprocessadores 27 Modo Deslocamento/Relativo • Explora o conceito de localidade, economizando bits no campo de endereço da instrução V: Flexibilidade D: Complexo 100(R1),R2ADD R2 M[100+R1]+R2 Prof. Julio Cesar Ceballos Aya Microprocessadores 29 Modo Deslocamento/Indexação • Interpretação oposta ao do Endereçamento via Registrador Base V: Flexibilidade, Útil em operações iterativas D: Complexo (R1+R2),R3ADD R3 M[R1+R2]+R3 Prof. Julio Cesar Ceballos Aya Microprocessadores 30 ORG 0 INICIO: MOV A,#0 REPETIR: INC A CJNE A,#99,REPETIR END Contador 0 99 hex Prof. Julio Cesar Ceballos Aya Microprocessadores 31 ORG 0 INICIO: MOV A,#0 REPETIR: ADD A,#1 DA A CJNE A,#99,REPETIR END Contador 0 99 BCD Prof. Julio Cesar Ceballos Aya Microprocessadores 32 Prof. Julio Cesar Ceballos Aya Microprocessadores 33 Prof. Julio Cesar Ceballos Aya Microprocessadores 34
Compartilhar