Você está na página 1de 52

SAP 2

Prof. Dr. Adônis Leal


Introdução
 O SAP-2 é o próximo passo da evolução em
direção ao computador moderno porque inclui
instruções de salto. Estas novas instruções
obrigam o computador a repetir ou omitir
partes de um programa.

 Registradores bidirecionais

UFPA - Prof. Adônis Leal


Registradores bidirecionais
• (a) Os registradores usados no SAP-1 tinham pinos de
entrada e de saída separados, ligados no barramento.
• (b) Os registradores do SAP-2 têm pinos bidirecionais, ou
seja, um único conjunto de pinos ligados no barramento.

UFPA - Prof. Adônis Leal


ARQUITETURA

UFPA - Prof. Adônis Leal


Contador de Programa
 Desta vez o contador de programa tem 16 bits.
Portanto, ele pode contar de
 PC = 0000 0000 0000 0000
 Até
 PC = 1111 1111 1111 1111

UFPA - Prof. Adônis Leal


REM e Memória
 Durante o ciclo de busca, o REM (registrador de
endereço de memória) recebe endereços de 16
bits do contador de programa. Então, a saída de
dois estados do REM indica a posição desejada
de memória. A memória tem uma ROM de 2K
com endereços de 0000H a 07FFH. Esta ROM
contém um programa, o monitor, que inicializa o
computador ao ser ligado; interpreta as entradas
do teclado e assim por diante. O restante da
memória é uma RAM de 62K com endereços de
0800H a FFFFH.

UFPA - Prof. Adônis Leal


REM e Memória

UFPA - Prof. Adônis Leal


Registrador de Dados de Memória
 O registrador de dados de memória (DMR) é um
registrador buffer de 8 bits. A sua da saída alimenta
a RAM, O registrador de dados de memória recebe
dados do barramento antes de uma operação de
escrita e envia dados para o barramento depois de
uma operação de leitura.

UFPA - Prof. Adônis Leal


Registrador de Instrução
 Como o SAP-2 tem mais instruções que o SAP-1,
usaremos 8 bits em vez de 4, para o código de
operação.
 Como o SAP-2 tem apenas 42 instruções, não haverá
problemas com a codificação das instruções.

UFPA - Prof. Adônis Leal


Controlador-Sequencializador
 Como o SAP-2 tem um repertório de instruções
maior, o controlador-sequencializador tem mais
hardware. Apesar da palavra CON ser maior, a idéia é
a mesma: a palavra de controle ou microinstrução
determina como os registradores devem reagir à
próxima borda positiva de relógio.

UFPA - Prof. Adônis Leal


ULA e Flags
 As ULAs determinam a
operação lógica ou
aritmética
 O SAP-2 tem 2 flags. O
flag de sinal é setado
quando o conteúdo do
acumulador torna-se
negativo durante a
execução de algumas
instruções. O flag de
zero é setado quando o
conteúdo do acumulador
toma-se zero. A ser
executada com as
palavras A e B.

UFPA - Prof. Adônis Leal


Registradores TMP , B e C
 Em vez de usar o registrador B para guardar o
dado que está sendo adicionado ou subtraído
do acumulador, usa-se um registrador
temporário (TMP). Isto nos traz maior
liberdade ao usar o registrador B. Além dos
registradores TMP e B, o SAP-2 tem também
um registrador C. Isto nos dá maior
flexibilidade ao mover dados durante uma
"rodada" de computador.

UFPA - Prof. Adônis Leal


Portas de Saída
 O SAP-2 tem duas portas de saída,
numeradas 3 e 4. O conteúdo do
acumulador pode ser carregado na porta 3
que alimenta um display hexadecimal. Isto
nos permite ver os dados processados.

UFPA - Prof. Adônis Leal


Conjunto de instruções SAP 2

UFPA - Prof. Adônis Leal


Instruções de movimentação de
dados entre registradores

UFPA - Prof. Adônis Leal


Instruções de movimentação de dados
entre registradores e a memória

UFPA - Prof. Adônis Leal


Instruções lógicas e aritméticas

UFPA - Prof. Adônis Leal


Instruções lógicas e aritméticas

UFPA - Prof. Adônis Leal


Instruções de desvio de programa

UFPA - Prof. Adônis Leal


Exercício 1
 Mostre os mnemônicos necessários para
somar os números decimais 23 e 45. A
resposta deve ser armazenada na posição
5600H de memória. Além disto, a resposta
incrementada de uma unidade deve ser
armazenada no registrador C.

UFPA - Prof. Adônis Leal


Solução 1

Os números decimais 23 e 45 são


equivalentes a 17H e 2DH.

UFPA - Prof. Adônis Leal


Exercício 2
 Montar manualmente um programa significa
traduzir um programa fonte num programa
de máquina à mão em vez de usar uma
máquina. Monte manualmente o programa do
exercício 1 no endereço 2000H.

UFPA - Prof. Adônis Leal


Solução 2
 Observe que as instruções ADD, INR, MOV e
HLT são de 1 byte; as instruções MVI são de 2
bytes e a instrução STA, de 3 bytes.

UFPA - Prof. Adônis Leal


Mais sobre os Flags
 Os flags de zero e de sinal poderão
ser setados ou zerados durante a
execução de certas instruções. Todas
estas instruções usam o
acumulador durante o ciclo de
execução.
 Por exemplo, suponha que a
instrução que está sendo executada
seja ADD C. O conteúdo do
registrador C é adicionado ao
conteúdo do acumulador. Se o
conteúdo do acumulador se tornar
zero ou negativo no processo, o flag
de zero ou de sinal será setado.

UFPA - Prof. Adônis Leal


OBS. INR e DCR
 Observação sobre as instruções INR e DCR.
Como estas instruções usam o acumulador para
incrementar ou decrementar 1 do registrador
designado, elas também afetam os flags.
 Por exemplo, para executar uma DCR C, o
conteúdo do registrador C é enviado para o
acumulador, subtraído de 1 e devolvido ao
registrador C. Se o acumulador se tornar
negativo, o flag de sinal será setado e, se o
acumulador se tornar zero, o flag de zero será
setado.

UFPA - Prof. Adônis Leal


Exercício 3
 Faça a montagem manual do seguinte
programa que inicia no endereço 2000H:

UFPA - Prof. Adônis Leal


Solução 3

UFPA - Prof. Adônis Leal


Exercício 4
 No programa anterior, quantas vezes a
instrução DCR é executada?

UFPA - Prof. Adônis Leal


Solução 4

 A instrução MVI C,03H


carrega o registrador C
com 03H. A DCR reduz o
conteúdo para 02H. O
conteúdo é superior a
zero; portanto, o flag de
zero é zerado e a
instrução JZ 2009H é
ignorada. A JMP 2002H
faz o computador voltar à
instrução DCR C.
UFPA - Prof. Adônis Leal
Rótulos e comentários

UFPA - Prof. Adônis Leal


Exercício 5
 Faça um programa para multiplicar os
decimais 12 e 8 em Assembly para o SAP-2.

UFPA - Prof. Adônis Leal


Solução 5
 Os equivalentes hexadecimais de 12 e 8 são
0CH e 08H. Vamos montar um laço que
adiciona 12 ao acumulador em cada passagem.
Se o computador repetir o laço 8 vezes, estará
multiplicando 12 por 8.

UFPA - Prof. Adônis Leal


Exercício 6
 Modifique o programa de multiplicação
anterior usando uma JNZ em vez de uma JZ.

UFPA - Prof. Adônis Leal


Solução 6

UFPA - Prof. Adônis Leal


Exercício 7
 Faça uma montagem manual do programa
anterior começando no endereço 2000H. E
compare a quantidade de memoria gasta com
o programa que utiliza JZ e o que utiliza JNZ.

UFPA - Prof. Adônis Leal


Solução 7

UFPA - Prof. Adônis Leal


Exercício 8
 Substitua a parte de multiplicação do
programa anterior por uma sub-rotina que
inicie no endereço F006H.

UFPA - Prof. Adônis Leal


Solução 8

UFPA - Prof. Adônis Leal


Estados Temporizados

UFPA - Prof. Adônis Leal


UFPA - Prof. Adônis Leal
Exercício 9
 O SAP-2 tem uma frequência de relógio de 1
MHz. Isto significa que cada estado T dura
1µs.Quanto tempo é necessário para se
executar a seguinte sub-rotina e qual é seu
tamanho em Bytes?

UFPA - Prof. Adônis Leal


Solução 9

UFPA - Prof. Adônis Leal


Solução 9
 O comprimento total da sub-rotina é 8 Bytes

UFPA - Prof. Adônis Leal


Exercício 10
 Qual o retardo de tempo produzido pela
seguinte sub-rotina do SAP-2?

UFPA - Prof. Adônis Leal


Solução 10
 Esta sub-rotina tem dois laços, um dentro do
outro. O laço interno consiste em DCR C e
JNZ LOOP2.

UFPA - Prof. Adônis Leal


Solução 10
 Quando o contador chega a zero, o programa passa por
cima da JNZ LOOP2. O contador B é decrementado e a JNZ
LOOP1 manda o programa de volta a MVI C,47H. Assim,
pela segunda vez estamos em LOOP2. Como LOOP2 está
dentro de LOOP1, LOOP2 será executado 10 vezes e o
retardo total de tempo será de 10 ms.

UFPA - Prof. Adônis Leal


Exercício 11
 Quantos Bytes tem a sub-rotina anterior?

UFPA - Prof. Adônis Leal


Solução 11
 2 + 2 + 1+ 3 + 1+ 3 + 1 = 13

UFPA - Prof. Adônis Leal


Exercício 12
 O que acontece se trocarmos a primeira
instrução da sub-rotina do exercício 10 por:

 MVI B,64H

UFPA - Prof. Adônis Leal


Solução 12
 Atraso de 100ms

UFPA - Prof. Adônis Leal


Dalays SAP 2

UFPA - Prof. Adônis Leal


Exercício 13
 Um semáforo numa estrada mostra o verde
durante 50s, o amarelo durante 6s e o
vermelho durante 30s. Os bits 1, 2 e 3 da
porta 4 são os sinais de acionamento do
equipamento periférico que liga as lâmpadas
do semáforo. Escreva um programa que
produza os retardos de tempos de 50, 6 e 30s
para o semáforo.

UFPA - Prof. Adônis Leal

Você também pode gostar