Escolar Documentos
Profissional Documentos
Cultura Documentos
Neander - caractersticas
Instrues do Neander
Cdigo
0000
0001
0010
0011
0100
0101
0110
1000
1001
1010
1111
Instruo
NOP
STA end
LDA end
ADD end
OR end
AND end
NOT
JMP end
JN
end
JZ
end
HLT
Comentrio
nenhuma operao
armazena acumulador - (store)
carrega acumulador - (load)
soma
ou lgico
e lgico
inverte (complementa) acumulador
desvio incondicional - (jump)
desvio condicional - (jump on negative)
desvio condicional - (jump on zero)
trmino de execuo - (halt)
Modo de endereamento
memria
endereo
operando
Programa Exemplo
Somar (totalizar) n posies consecutivas de memria, a partir do
endereo inicial e. (Sem consistncia sobre os valores de n e e).
Em alto nvel, o programa seria:
total:=0
ponteiro := e
contador := n
lao: if contador = 0, termina
total := total + mem(ponteiro)
ponteiro := ponteiro + 1
contador := contador 1
goto lao
Endereo
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
128
129
130
131
132
133
134
Instruo
LDA 132
STA 130
LDA 129
STA ponteiro
LDA 128
STA 131
JZ 34
LDA 130
ADD mem(ponteiro)
STA 130
LDA ponteiro
ADD 134
STA ponteiro
LDA 131
ADD 133
STA 131
JMP 12
HLT
n
e
tot
cont
0
255
1
; decrementa contador
Endereo
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
128
129
130
131
132
133
134
Instruo
LDA 132
STA 130
LDA 129
STA 17
LDA 128
STA 131
JZ 34
LDA 130
ADD 17
STA 130
LDA 17
ADD 134
STA 17
LDA 131
ADD 133
STA 131
JMP 12
HLT
n
e
tot
cont
0
255
1
; decrementa contador
Ramses - caractersticas
Instrues do Ramses
Cdigo
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Instruo
NOP
STR r end
LDR r end
ADD r end
OR
r end
AND r end
NOT r
SUB r end
JMP end
JN
end
JZ
end
JC
end
JSR end
NEG r
SHR r
HLT
Operao Executada
nenhuma operao
armazena registrador na memria - (store)
carrega registrador da memria - (load)
adio - soma memria ao registrador
"ou" (adio lgica) - resultado no registrador
"e" (multiplicao lgica) - resultado no registrador
inverte (complementa para 1) registrador
subtrao - subtrai memria do registrador
desvio incondicional - (jump)
desvio condicional se < - (jump on negative)
desvio condicional se = - (jump on zero)
desvio condicional se carry = 1 - (jump on carry)
desvio para subrotina - (jump subroutine)
troca de sinal - (negate)
deslocamento para a direita - (shift right)
parada - (halt)
Registradores e
Modos de endereamento
00 = A (registrador RA)
01 = B (registrador RB)
10 = X (registrador de ndice)
11 = nenhum registrador
00 =
01 =
10 =
11 =
direto
indireto
imediato
indexado
operando
Endereamento indireto
memria
instruo
endereo
endereo
operando
Endereamento imediato
memria
instruo
operando
Endereamento indexado
instruo
deslocamento
Reg. X
endereo
memria
+
operando
Endereo
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
128
129
130
131
132
133
134
Instruo
LDA 132
STA 130
LDA 129
STA 17
LDA 128
STA 131
JZ 34
LDA 130
ADD 17
STA 130
LDA 17
ADD 134
STA 17
LDA 131
ADD 133
STA 131
JMP 12
HLT
n
e
total
contador
0
255
1
; decrementa contador
Endereo
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
128
129
130
131
132
133
134
Instruo
LDR A 132
STR A 130
LDR A 129
STR A 17
LDR A 128
STR A 131
JZ 34
LDR A 130
ADD A 17
STR A 130
LDR A 17
ADD A 134
STR A 17
LDR A 131
ADD A 133
STR A 131
JMP 12
HLT
n
e
total
contador
0
255
1
; decrementa contador
Endereo
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
128
129
130
131
132
133
134
Instruo
LDR A #0
STR A 130
LDR A 129
STR A 17
LDR A 128
STR A 131
JZ 34
LDR A 130
ADD A 17
STR A 130
LDR A 17
ADD A #1
STR A 17
LDR A 131
ADD A #255
STR A 131
JMP 12
HLT
n
e
total
contador
0
255
1
; decrementa contador
Endereo
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
128
129
130
131
Instruo
LDR A #0
STR A 130
LDR A 129
STR A 17
LDR A 128
STR A 131
JZ 34
LDR A 130
ADD A 17
STR A 130
LDR A 17
ADD A #1
STR A 17
LDR A 131
SUB A #1
STR A 131
JMP 12
HLT
n
e
total
contador
; decrementa contador
Endereo
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
128
129
130
131
132
Instruo
LDR A #0
STR A 130
LDR A 129
STR A 132
LDR A 128
STR A 131
JZ 34
LDR A 130
ADD A 132,I
STR A 130
LDR A 132
ADD A #1
STR A 132
LDR A 131
SUB A #1
STR A 131
JMP 12
HLT
n
e
total
contador
ponteiro
; decrementa contador
Endereo
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
128
129
130
131
132
Instruo
LDR A #0
STR A 130
LDR A 129
STR A 132
LDR B 128
STR A 131
JZ 34
LDR A 130
ADD A 132,I
STR A 130
LDR A 132
ADD A #1
STR A 132
LDR A 131
SUB B #1
STR A 131
JMP 12
HLT
n
e
total
contador
ponteiro
; decrementa contador
Endereo
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
128
129
130
132
Instruo
LDR A #0
STR A 130
LDR A 129
STR A 132
LDR B 128
JZ 28
LDR A 130
ADD A 132,I
STR A 130
LDR A 132
ADD A #1
STR A 132
SUB B #1
JMP 10
HLT
n
e
total
ponteiro
; decrementa contador
; retorna ao incio do lao
nmero de posies
endereo inicial
Endereo
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
128
129
130
132
Instruo
LDR A #0
STR A 130
LDR X 129
STR A 132
LDR B 128
JZ 28
LDR A 130
ADD A 0,X
STR A 130
LDR A 132
ADD X #1
STR A 132
SUB B #1
JMP 10
HLT
n
e
total
ponteiro
; decrementa contador
; retorna ao incio do lao
nmero de posies
endereo inicial
Endereo
0
2
4
6
8
10
12
14
16
18
20
22
128
129
130
Instruo
LDR A #0
STR A 130
LDR X 129
LDR B 128
JZ 22
LDR A 130
ADD A 0,X
STR A 130
ADD X #1
SUB B #1
JMP 8
HLT
n
e
total
Endereo
0
2
4
6
8
10
12
14
16
18
20
22
128
129
130
Instruo
LDR A #0
STR A 130
LDR X 129
LDR B 128
JZ 22
LDR A 130
ADD A 0,X
STR A 130
ADD X #1
SUB B #1
JMP 8
HLT
n
e
total
Endereo
0
2
4
6
8
10
12
14
16
18
128
129
130
Instruo
LDR A #0
LDR X 129
LDR B 128
JZ 16
ADD A 0,X
ADD X #1
SUB B #1
JMP 6
STR A 130
HLT
n
e
total
Comparao
Neander
Instrues: 11*n + 8
Leituras: 27*n + 18
Escritas: 4*n + 3
Ramses
Instrues: 5*n + 6
Leituras: 10*n + 13
Escritas: 1
Para n=30:
Instrues - Neander 338 x Ramses 156
Acessos - Neander 951 x Ramses 314
Comparao