Conjunto de Instruções (ISA) I José Costa Introdução à Arquitetura de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2013-10-16 José Costa (DEI/IST) Conjunto de Instruções (ISA) I 1 Sumário Linguagens de Programação Instruções Assmbly Especificação dos Operandos Controlo da Sequência de Execução Conjunto de Instruções do Processador P3 José Costa (DEI/IST) Conjunto de Instruções (ISA) I 2 Arquitetura do Conjunto de Instruções Instruction Set Architecture Número e dimensão dos registos Bits de estado Organização da memória Modos de endereçamento Instruções Pseudo-instruções José Costa (DEI/IST) Conjunto de Instruções (ISA) I 3 Linguagens de Programação Endereço Base 2 0001000000000000 0001000000000001 0001000000000010 0001000000000011 0001000000000100 0001000000000101 0001000000000110 0001000000000111 0001000000001000 Endereço 1000h 1001h 1002h 1003h 1004h 1005h 1006h 1007h 1008h Código assembly MOV R1, M[0040h] ADD R1, M[00B0h] ADD R1, M[00B1h] NEG MOV R1 M[F000h], R1 José Costa (DEI/IST) Base 16 1000 1001 1002 1003 1004 1005 1006 1007 1008 Valor Base 2 1010111001110000 0000000010100000 1000011001110000 0000000010110000 1000011001110000 0000000010110001 0100000000000001 1010110001110000 1111000000000000 Código máquina AE70 0040 8670 00B0 8670 00B1 4070 AC70 F000 Conjunto de Instruções (ISA) I ORIG N1 N2 N3 N4 Base 16 AE70 0040 8670 00B0 8670 00B1 4001 AC70 F000 1000h EQU EQU EQU EQU 0040h 00B0h 00B1h F000h MOV ADD ADD NEG MOV R1, M[N1] R1, M[N2] R1, M[N3] R1 M[N4], R1 4 Instruções Assembly Transferência de Dados Transferem informação de um local (registo, posição de memória ou porto de entrada/saída) para outro, sem alterar a informação original. MOV R1, M[0040h] Manipulação de Dados Aplicam um operador aritmético ou lógico ao operando(s), especificados pela sua localização, e guardam o resultado da mesma. ADD R1, M[00B0h] Controlo Permitem alterar a sequência normal de instruções e definir qual a próxima instrução a ser executada. José Costa (DEI/IST) Conjunto de Instruções (ISA) I JMP 00CCh 5 Campos de uma Instrução Assembly Código de Operação (Opcode): especifica a instrução a executar Especificação dos Operandos: Índice do registo a usar ou endereço de memória a aceder Localização dos Operandos: indicação sobre onde (registo ou memória) ir buscar os dados de entrada e guardar o resultado (modo de endereçamento) José Costa (DEI/IST) Conjunto de Instruções (ISA) I 6 Localização dos Operandos Registos internos do processador Constante, especificada na própria instrução Posição de memória Porto de entrada/saída José Costa (DEI/IST) Conjunto de Instruções (ISA) I 7 Registos Internos Acesso mais rápido Menos bits para especificar um registo (quando comparado com memória) Estão normalmente organizados em banco de registos Especificados pelo seu número Normalmente existem dois registos de uso especifico PC - Contador de Programa SP - Apontador para a Pilha Podem ainda existir outros registos com funções especificas José Costa (DEI/IST) Conjunto de Instruções (ISA) I 8 Constantes Especificadas na Própria Instrução Exemplo ADD R1, 0005h valor 5 está especificado na instrução Pouco eficiente - valor terá que estar em memória Terá que se fazer acesso extra à memória José Costa (DEI/IST) Conjunto de Instruções (ISA) I 9 Memória e Portos de Entrada/Saída Independent IO Conjunto de instruções especiais para a entrada e saída de dados Entradas/saídas independentes do sistema de memória Memory-mapped IO Dados nestes portos manipulados através das mesmas operações que manipulam dados em memória Menor complexidade no conjunto de instruções Mas redução do espaço de memória disponível para memória Arquitetura de memória mais sofisticada P3 adoptou esta opção José Costa (DEI/IST) Conjunto de Instruções (ISA) I 10 Modos de Endereçamento Modo de endereçamento Por registo Indirecto por registo Imediato Directo Indexado Relativo Baseado Indirecto Duplamente indirecto por registo Implícito José Costa (DEI/IST) Conjunto de Instruções (ISA) I op op op op op op op op op Operação ← RX ← M[RX] ←W ← M[W] ← M[RX+W] ← M[PC+W] ← M[SP+W] ← M[M[W]] ← M[M[RX]] 11 Tipos de Operandos MOV R1, 0040h carrega valor 0040h em R1 O que significa o valor 0040h? Possíveis significados de 0040h Conjunto de bits Valor numérico inteiro Valor numérico fracionário em vírgula fixa ou vírgula flutuante Elemento de um código Compatação de diferentes tipos José Costa (DEI/IST) Conjunto de Instruções (ISA) I 12 Controlo da Sequência de Execução Processadores executam sequencialmente instruções consecutivas na memória Mas, este fluxo pode ser interrompido Quando é executada uma instrução de controlo Quando é atendida uma interrupção José Costa (DEI/IST) Conjunto de Instruções (ISA) I 13 Instruções de Salto (1/2) Saltos Incondicionais Etiq1: INC BR R1 Etiq1 Saltos Condicionais Etiq: DEC BR.Z MOV ADD José Costa (DEI/IST) R1 Etiq R1, 55AAh R2,R1 Conjunto de Instruções (ISA) I 14 Instruções de Salto (2/2) Saltos Absolutos (JMP) Valor do operando é carregado no PC Pode ser especificado qualquer endereço de memória Saltos Relativos (BR) Valor do operando é somado ao PC Poupa espaço na codificação da instrução José Costa (DEI/IST) Conjunto de Instruções (ISA) I 15 Processador P3 16 registos - R0 a R15 Apenas R0 a R7 podem ser usados diretamente por instruções assembly Processador de 16 bits manipula dados de 16 bits em cada instrução R0 é fictício e contém sempre o valor 0 Registos R8 a R15 são registos de uso especial Registo de estado guarda os bits de estado José Costa (DEI/IST) Conjunto de Instruções (ISA) I 16 Conjunto de Instruções do Processador P3 Aritméticas Lógicas Deslocamento NEG INC DEC ADD ADDC SUB SUBB CMP MUL DIV COM AND OR XOR TEST SHR SHL SHRA SHLA ROR ROL RORC ROLC José Costa (DEI/IST) Controlo BR BR.cond JMP JMP.cond CALL CALL.cond RET RETN RTI INT Conjunto de Instruções (ISA) I Transferência Genéricas MOV MVBH MVBL XCH PUSH POP NOP ENI DSI STC CLC CMC 17 Referências Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, G. Arroz, J. Monteiro, A. Oliveira, Secções 10.1, 10.2, 10.3, 10.5, 10.6 José Costa (DEI/IST) Conjunto de Instruções (ISA) I 18 Próxima Aula Conjunto de Instruções (ISA) (cont.) José Costa (DEI/IST) Conjunto de Instruções (ISA) I 19