Conjunto de Instruções (ISA)

Propaganda
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
Download