Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de...
Transcript of Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de...
Software Básico
Silvio Fernandes2010.1
Universidade Federal Rural do SemiáridoDepartamento de Ciências Exatas e Naturais
Ciência da Computação
Aula 04: SIC/XE
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 Expoente Mantissa
11 bits1 bit 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 R1 R2
8 bits 4 bits 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
6 bits 6 x 1 bit 12 bits
I X B P E Deslocamento
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
6 bits 6 x 1 bit 20 bits
I X B P E Deslocamento
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 Endereço Alvo Deslocamento
Relativo a Base B = 1, P = 0 EA = (B) + Deslocamento
0 Deslocamento 4095
Inteiro sem sinal
Relativo ao PC B = 0, P = 1 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 EA = (X) + Endereço (20 bits) Direto (formato 4)
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
Campo de endereço extendido
0
1
Para cálculo do endereço alvo
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.Xinstruçã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 mFormatos: 3 ou 4Código: 18H ou 00011000BEfeito: 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) CMnemô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 ¾ 18 A (A) + (m..m+2)
AADF m ¾ 58 F (F) + (m..m+5) X F
ADDR r1.r2 2 90 r2 (r2) + (r1) X
AND m ¾ 40 A (A) & (m..m+2)
CLEAR r1 2 B4 r1 0 X
COMP m ¾ 28 (A) : (m..m+2) C
COMPF m ¾ 88 (F) + (m..m+5) X F C
COMPR r1.r2 2 A0 (r1) : (r2) X C
DIV m ¾ 24 A (A) / (m..m+2)
DIVF m ¾ 64 F (F) + (m..m+5) X F
DIVR r1.r2 2 9C r2 (r2) / (r1) X 20
Conjunto de instruções do SIC
FIX 1 C4 A (F) {converte em inteiro} X F
FLOAT 1 C0 F (A){ converte em flutuante}
HIO 1 F4 Interrompe canal de I/O número (A) P X
J m ¾ 3C PC m
JEQ m ¾ 30 PC m if CC definido como =
JGT m ¾ 34 PC m if CC definido como >
JLT m ¾ 38 PC m if CC definido como <
JSUB m ¾ 48 L (PC) ; PC m
LDA m ¾ 00 A (m..m+2)
LDB m ¾ 68 B (m..m+2) X
LDCH m ¾ 50 A [byte mais à direita] (m) 21
Conjunto de instruções do SIC
LDF m ¾ 70 F (m..m+5) X F
LDL m ¾ 08 L (m..m+2)
LDS m ¾ 6C S (m..m+2) X
LDT m ¾ 74 T (m..m+2) X
LDX m ¾ 04 X (m..m+2)
LPS m ¾ D0 ** P X
MUL m ¾ 20 A (A) * (m..m+2)
MULF m ¾ 60 F (F) * (m..m+5) X F
MULR r1.r2 2 98 r2 (r2) * (r1) X
NORM 1 C8 F (F) {normalizado} X F
OR m ¾ 44 A (A) | (m..m+2) 22
Conjunto de instruções do SICRD m ¾ D8 A [byte mais à direita] dados do
dispositivo especificado por mP
RMO r1. R2 2 AC r2 (r1) X
RSUB ¾ 4C PC L
SHIFTL r1.n 2 A4 r1 (r1); desl. n bits à esquerda X
SHIFTR r1.n 2 A8 r1 (r1); desl. n bits à direita X
SIO 1 F0 *** P X
SSK m ¾ EC Chave de proteção do end. m (A) P X
STA m ¾ 0C m..m+2 (A)
STB m ¾ 78 m..m+2 (B) X
STCH m ¾ 54 m A {byte mais à direita}
STF m ¾ 80 m..m+5 (F) X F23
Conjunto de instruções do SICSTI m ¾ D4 Valor do timer de intervalos (m..m+2) P X
STL m ¾ 14 m..m+2 (L)
STS m ¾ 7C m..m+2 (S) X
STSW m ¾ E8 m..m+2 (SW) P
STT m ¾ 84 m..m+2 (T) X
STX m ¾ 10 m..m+2 (X)
SUB m ¾ 1C A (A) - (m..m+2)
SUBF m ¾ 5C F (F) - (m..m+5) X F
SUBR r1.r2 2 94 r2 (r2) - (r1) X
SVC n 2 B0 Gera interrupção SVC X
TD m ¾ E0 Testa disp. especificado por (m) P C24
Conjunto de instruções do SIC
• ** 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)
TIO 1 F8 Testa canal de I/O número (A) P X C
TIX m ¾ 2C X (X) + 1; (X) : (m..m+2) C
TIXR r1 2 B8 X (X) + 1; (X) : (r1) X C
WD m ¾ DC Dispos. especificidado por (m) (A) {byte mais à direita}
P
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çamentoTipo Flags
n i x b p e
Notação Assembler
Cálculo de EA operandos Notas
Simples 1 1 0 0 0 0 oper. c Desl. (TA) D
1 1 0 0 0 1 + oper. m Endereço (TA) 4 D
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) 4 D
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
0 0 0 - - - oper. m b/p/e/desl (TA) D S
0 0 1 - - - oper. m. x b/p/e/desl + (X) (TA) D S27
Tabela de modos de endereçamentoTipo Flags
n i x b p e
Notação Assembler
Cálculo de EA operandos Notas
Indireto 1 0 0 0 0 0 oper. @c Desl. ((TA)) D
1 0 0 0 0 1 + oper. @m Endereço ((TA)) 4 D
1 0 0 0 1 0 oper. @m (PC) + desl. ((TA)) A
1 0 0 1 0 0 oper. @m (B) + desl ((TA)) A
Imediato 0 1 0 0 0 0 oper.#c Disp TA D
0 1 0 0 0 1 +oper.#m Endereço TA 4 D
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