Registrador de Base

Propaganda
Universidade Federal Rural do Semiárido
Departamento de Ciências Exatas e Naturais
Ciência da Computação
Software Básico
Aula 04: SIC/XE
Silvio Fernandes
2010.1
1
Memória do SIC/XE
• A estrutura de memória do SIC/XE é a mesma do SIC. As
posições de memória são formadas por três bytes consecutivos.
• A capacidade de memória é aumentada para 1 Mbyte (220).
• Este aumento de capacidade de endereçamento provoca
modificações no formato das instruções e modos de
endereçamento.
2
Registradores no SIC/XE
• O SIC/XE possui quatro registradores a mais do que o SIC.
Registrador
Endereço/Número
Utilização
B
3
Registrador de Base:
Usado para endereçamento
S
4
Registrador de Trabalho:
Sem uso especial
T
5
Registrador de Trabalho:
Sem uso especial
F
6
Acumulador de Ponto Flutuante:
Registrador de 48 bits
3
Formato de dados no SIC/XE
• O Formato do SIC standard continua válido.
• É acrescentado um tipo de dados de ponto flutuante de 48
bits.
S
1 bit
Expoente
11 bits
Mantissa
36 bits
4
Dados de ponto flutuante
• A mantissa é um valor entre 0 e 1. (0.XXX).
• O expoente é um número binário sem sinal entre 0 e 2047
(211).
• O sinal do número é indicado pelo valor de S.
– S = 0  número positivo.
– S = 1  Número negativo.
• Um valor igual a zero é indicado com todos os bits iguais a zero.
5
Formatos de instrução no SIC/XE
• O Formato do SIC não é mais válido devido ao aumento da
capacidade de memória.
• O SIC/XE possui 4 formatos.
• Formato 1: usado para instruções que não utilizam
nenhum operando.
Código da Operação
8 bits
6
Formatos de instrução no SIC/XE
• Formato 2: usado para instruções que utilizam como operando
o conteúdo de dois registradores ou o conteúdo de um
registrador e uma constante de até quatro bits
Código da Operação
8 bits
R1
4 bits
R2
4 bits
7
Formatos de instrução no SIC/XE
• Formato 3: usado para instruções em que um dos operandos é
o conteúdo de uma posição de memória que pode ser
alcançada por um deslocamento de 15 bits.
• Formato compatível com o SIC standard.
– Flags N e I devem fazer parte do código da operação, o flag X deve
indicar o modo de endereçamento e os flags B, P e E se juntem ao
campo Deslocamento formando o campo endereço.
Código da Operação N I
6 bits
X B P E
6 x 1 bit
Deslocamento
12 bits
8
Formatos de instrução no SIC/XE
• Formato 4: usado para instruções que acessam operandos em
uma memória com capacidade de endereçamento de 220
posições.
• Por possuir 32 bits, não é compatível com o formato SIC
standard.
Código da Operação N I
6 bits
X B P E
6 x 1 bit
Deslocamento
20 bits
9
Modos de endereçamento no
SIC/XE
• Endereçamento Relativo:
– Criados para serem usados com instruções de formato
3.
Modo de
endereçamento
Codificação
Relativo a Base B = 1, P = 0
Relativo ao PC
B = 0, P = 1
Endereço Alvo
Deslocamento
EA = (B) + Deslocamento
0  Deslocamento  4095
Inteiro sem sinal
EA = (PC) + Deslocamento
-2048  Deslocamento  2047
Inteiro. Negativos
em compl. de 2
10
Modos de endereçamento no
SIC/XE
• Endereçamento Direto:
– Se B = 0 e P = 0 o campo deslocamento em uma instrução de
formato 3 (E = 0) será o endereço alvo.
• EA = Deslocamento (12 bits).
– Para instruções no formato 4 (E = 1), B e P são necessariamente
iguais a 0,
• EA = Endereço (20 bits).
11
Modos de endereçamento no
SIC/XE
• Endereçamentos Relativo e Direto:
– Se X = 1 (endereçamento indexado)
Codificação
Endereço Alvo
Tipo (indexado)
B = 1, P = 0, X = 1
EA = (B) + (X) + Deslocamento
Relativo a base
B = 0, P = 1, X = 1
EA = (PC) + (X) +Deslocamento
Relativo ao PC
B = 0, P = 0, X = 1 EA = (X)+Deslocamento (12 bits)
Direto (formato 3)
B = 0, P = 0, X = 1
Direto (formato 4)
EA = (X) + Endereço (20 bits)
12
Modos de endereçamento no
SIC/XE
• Os flags I e N são usados para indicar o uso apropriado do
endereço alvo.
– I = 1 e N = 0: o endereço alvo será usado como operando e
nenhum acesso será feito a memória (Endereçamento
Imediato).
– I = 0 e N = 1: o endereço alvo apontará para a posição de
memória cujo conteúdo é o endereço do operando
(Endereçamento Indireto).
– I = 1 e N = 1: instruções SIC/XE que não usam endereçamento
imediato ou indireto (endereço da memória)
– I = 0 e N = 0: instruções no formato SIC (formato 3). Flags B,P e
E são usados como parte do endereço (endereço da memória)
13
Modos de endereçamento no
SIC/XE
• Formatos de instrução
Sem
referência
a memória
Endereçamento
relativo
0
Para cálculo do endereço alvo
Campo de
endereço
extendido
1
Modos de endereçamento no
SIC/XE
• Compatibilidade
– Todas as instruções SIC tem 8 bits de código de operação terminando
com 00
– Se n=i=0, bits b,p,e são considerados como parte dos 15 bits campo de
endereço
Conjunto de instruções do SIC
• O SIC possui um formato básico de instruções suficiente para executar a
maioria das tarefas (programas) simples.
• Existem instruções que definem e armazenam o conteúdo dos
registradores (LDA, LDX, STA, STX, etc).
• Existem instruções aritméticas (ADD, SUB, MUL, etc).
– Todas as operações aritméticas envolvem o registrador A e uma
palavra de memória.
• Existe a instrução COMP, que compara o valor do registrador A com
uma palavra de memória.
– Utiliza um código de condição (CC) para determinar o resultado da
comparação (<, = ou >).
• Existem instruções de salto condicional (JLT, JEQ, JGT) que executam o
salto com base no valor de CC.
• Existem duas instruções específicas para o uso de sub-rotinas (JSUB e
RSUB).
16
Conjunto de instruções do SIC
Mnemômico: nome da instrução.
Formato: qual formato a instrução foi codificada e
montada.
Código da Operação: normalmente em hexadecimal.
Efeito: significado da instrução.
Notas: informações adicionais:
P  instrução privilegiada.
Xinstrução disponível apenas no SIC/XE.
F  instrução de ponto flutuante.
C  Código de condição.
17
Conjunto de instruções do SIC
Ex: ADD m ¾ 18 A  (A) + (m..m+2)
Mnemônico: ADD m
Formatos: 3 ou 4
Código: 18H ou 00011000B
Efeito: adicionar a palavra composta pelos bytes m,
m+1 e m+2 da memória com a palavra contida no
registrador acumulador.
Notas: nenhuma
18
Conjunto de instruções do SIC
Ex: COMP m ¾ 28 A  (A) : (m..m+2) C
Mnemônico: COMP m.
Formatos: 3 ou 4.
Código: 28H ou 00101000B.
Efeito: compara o conteúdo do registrador acumulador com
a palavra armazenada nas posições m, m+1 e m+2.
Notas: o resultado é armazenado no código de condição (<,
+ ou >)
19
Conjunto de instruções do SIC
ADD m
AADF m
ADDR r1.r2
AND m
CLEAR r1
COMP m
COMPF m
COMPR r1.r2
DIV m
DIVF m
DIVR r1.r2
¾
¾
2
¾
2
¾
¾
2
¾
¾
2
18
58
90
40
B4
28
88
A0
24
64
9C
A  (A) + (m..m+2)
F  (F) + (m..m+5)
r2  (r2) + (r1)
A  (A) & (m..m+2)
r1  0
(A) : (m..m+2)
(F) + (m..m+5)
(r1) : (r2)
A  (A) / (m..m+2)
F  (F) + (m..m+5)
r2  (r2) / (r1)
XF
X
X
C
XFC
XC
XF
X
20
Conjunto de instruções do SIC
FIX
FLOAT
HIO
1
1
1
C4
C0
F4
A  (F) {converte em inteiro}
F  (A){ converte em flutuante}
Interrompe canal de I/O número (A)
Jm
JEQ m
JGT m
JLT m
¾
¾
¾
¾
3C
30
34
38
PC  m
PC  m if CC definido como =
PC  m if CC definido como >
PC  m if CC definido como <
JSUB m
¾
48
L  (PC) ; PC  m
LDA m
LDB m
¾
¾
00
68
A  (m..m+2)
B  (m..m+2)
LDCH m
¾
50
A [byte mais à direita]  (m)
XF
PX
X
21
Conjunto de instruções do SIC
LDF m
LDL m
LDS m
LDT m
¾
¾
¾
¾
70
08
6C
74
F  (m..m+5)
L  (m..m+2)
S  (m..m+2)
T  (m..m+2)
LDX m
LPS m
MUL m
¾
¾
¾
04
D0
20
X  (m..m+2)
**
A  (A) * (m..m+2)
PX
MULF m
¾
60
F  (F) * (m..m+5)
XF
MULR r1.r2
NORM
2
1
98
C8
r2  (r2) * (r1)
F  (F) {normalizado}
X
XF
OR m
¾
44
A  (A) | (m..m+2)
XF
X
X
22
Conjunto de instruções do SIC
RD m
¾
D8 A [byte mais à direita]  dados do
P
dispositivo especificado por m
RMO r1. R2
RSUB
2
¾
AC r2  (r1)
4C PC  L
X
SHIFTL r1.n
SHIFTR r1.n
2
2
A4 r1  (r1); desl. n bits à esquerda
A8 r1  (r1); desl. n bits à direita
X
X
SIO
SSK m
1
¾
F0 ***
PX
EC Chave de proteção do end. m  (A) P X
STA m
STB m
¾
¾
0C m..m+2  (A)
78 m..m+2  (B)
STCH m
STF m
¾
¾
54
80
m  A {byte mais à direita}
m..m+5  (F)
X
X 23F
Conjunto de instruções do SIC
Valor do timer de intervalos  (m..m+2)
PX
m..m+2  (L)
m..m+2  (S)
m..m+2  (SW)
X
P
STI m
STL m
STS m
STSW m
¾
¾
¾
¾
D4
14
7C
E8
STT m
STX m
SUB m
¾
¾
¾
84 m..m+2  (T)
10 m..m+2  (X)
1C A  (A) - (m..m+2)
X
SUBF m
¾
SUBR r1.r2 2
5C F  (F) - (m..m+5)
94 r2  (r2) - (r1)
XF
X
SVC n
TD m
2 B0 Gera interrupção SVC
¾ E0 Testa disp. especificado por (m)
X
PC
24
Conjunto de instruções do SIC
TIO
TIX m
TIXR r1
WD m
1
¾
2
¾
F8
2C
B8
DC
Testa canal de I/O número (A)
X  (X) + 1; (X) : (m..m+2)
X  (X) + 1; (X) : (r1)
Dispos. especificidado por (m)
 (A) {byte mais à direita}
PXC
C
XC
P
• ** LPS: carrega status do processador com base em
informações que se iniciam no endereço m
• ***: SIO: ativa canal de I/O número (A); endereço do
programa do canal é dado por (S)
25
Tabela de modos de endereçamento
• C = constante entre 0 e 4095 ou um endereço de memória
contido nesta faixa.
• m = endereço de memória ou constante maior que 4095.
• Coluna notas:
– 4 = instrução somente no formato 4.
– D = instrução de endereçamento direto.
– A = O assembler seleciona o modo relativo ao contador do
programa ou ao registrador base.
– S = compatível com o formato SIC standard.
26
Tabela de modos de endereçamento
Tipo
Simples
Flags
nixbpe
Notação
Assembler
Cálculo de EA
operandos
Notas
1 1 0 0 0 0 oper. c
Desl.
(TA)
D
1 1 0 0 0 1 + oper. m
Endereço
(TA)
4D
1 1 0 0 1 0 oper. m
(PC) + desl.
(TA)
A
1 1 0 1 0 0 oper. c. x
(B) + desl
(TA)
A
1 1 1 0 0 0 +oper. m. x
Disp + (X)
(TA)
D
1 1 1 0 0 1 oper. m. x
Endereço + (X)
(TA)
4D
1 1 1 0 1 0 oper. m. x
(PC) + desl + (X)
(TA)
A
1 1 1 1 0 0 oper. m. x
(B) + desl + (X)
(TA)
A
000---
oper. m
b/p/e/desl
(TA)
DS
001---
oper. m. x
b/p/e/desl + (X)
(TA)
DS
27
Tabela de modos de endereçamento
Tipo
Indireto
Imediato
Flags
nixbpe
Notação
Assembler
Cálculo de EA
operandos
Notas
1 0 0 0 0 0 oper. @c
Desl.
((TA))
D
1 0 0 0 0 1 + oper. @m
Endereço
((TA))
4D
1 0 0 0 1 0 oper. @m
(PC) + desl.
((TA))
A
1 0 0 1 0 0 oper. @m
(B) + desl
((TA))
A
0 1 0 0 0 0 oper.#c
Disp
TA
D
0 1 0 0 0 1 +oper.#m
Endereço
TA
4D
0 1 0 0 1 0 oper.#m
(PC) + desl
TA
A
0 1 0 1 0 0 oper.#m
(B) + desl
TA
A
28
Referências
• Leland L Beck.. “Desenvolvimento de software
básico”. 2ª ed. Rio de Janeiro: Campus, 1993.
525p.
29
Download