software básico silvio fernandes 2010.1 universidade federal rural do semiárido departamento de...

21
Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05: Programação com o SIC e SIC/XE 1

Upload: internet

Post on 16-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Software Básico

Silvio Fernandes2010.1

Universidade Federal Rural do SemiáridoDepartamento de Ciências Exatas e Naturais

Ciência da Computação

Aula 05: Programação com o SIC e SIC/XE

1

Page 2: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Programação com o SIC

• Exemplos simples de programação na linguagem assembler do SIC e do SIC/XE

• Objetivo de familiarizar com os conjuntos de instruções e o assembler das máquinas

2

Page 3: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Primeiro exemplo do SIC

3

Page 4: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Primeiro exemplo do SIC/XE

4

Page 5: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Primeiro exemplo do SIC e SIC/XE

5

• O que fazem esses códigos?• Qual a diferença entre eles?• Qual o mais eficiente? Por quê?

Page 6: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Primeiro exemplo do SIC e SIC/XE

6

• A instrução WORD reserva o espaço de uma palavra na memória, e inicializa esta palavra com o valor especificado

• A instrução RESW reserva uma ou mais palavras de memória para que sejam usadas pelo programa

• BYTE e RESB são semelhantes às anteriores, porém definem caracteres em vez de palavras

Page 7: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Operações aritméticas - SIC

7

Page 8: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Operações aritméticas – SIC/XE

8

Page 9: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Operações aritméticas

9

• No SIC todas as operações aritméticas são realizadas usando-se o registrador A e um endereço de memória

• A sequencia de instruções armazena os valores– (ALPHA + INCR - 1) em BETA– (GAMMA + INCR - 1) em DELTA

Page 10: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Operações loop e indexação - SIC

10

Page 11: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Operações loop e indexação – SIC/XE

11

Page 12: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Operações loop e indexação

12

• O registrador de indexação X é inicializado com zero• Na 1ª execução o endereço-alvo da instrução LDCH

será o 1º byte de STR1, que é copiado para o 1º byte de STR2

• A instrução TIX incrementa o registrador X e com seu novo valor com o operando (constante 11)

• JLT executará um salto se o código de condição for “menor que”

• A principal diferença no SIC/XE é a instrução TIXR, que funciona como TIX mas a comparação é feita com outro registrador (T) ao invés da memória

Page 13: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Indexação e loop - SIC

13

Page 14: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Indexação e loop – SIC/XE

14

Page 15: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Indexação e loop

15

• No último exemplo as variáveis ALPHA, BETA e GAMMA são arrays de 100 palavras cada

• A tarefa do loop é somar os elementos correspondentes de ALPHA e BETA, armazenando os resultados em GAMMA

• O valor do registrador de indexação tem que ser incrementado em 3 bytes (uma palavra)– A instrução TIX sempre soma 1 ao registrador X,

portanto preferimos recorrer a instruções aritméticas

Page 16: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Operações de E/S - SIC

16

Page 17: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Operações de E/S - SIC

17

• O programa lê um byte de dados do dispositivo F1 e o copia no dispositivo 05

• A entrada é realizada pela instrução RD que transfere um byte de dados deste dispositivo para o byte mais à direita do reg. A

• Para que RD possa ser executada é preciso que o dispositivo de entrada esteja pronto

• O programa verifica esta condição usando a instrução TD– Se o dispositivo estiver pronto cc passa “menor que”– Se não estiver “igual”

Page 18: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Sub-rotina e entrada de registros - SIC

18

Page 19: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Sub-rotina e entrada de registros – SIC/XE

19

Page 20: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Sub-rotina e entrada de registros

20

• Ler um registro de 100 bytes de um dispositivo de entrada para a memória

• A leitura é feita em uma sub-rotina que é chamada pelo programa principal através de JSUB

• No final da sub-rotina, uma instrução de RSUB devolve o controle para instrução subsequente a JSUB

Page 21: Software Básico Silvio Fernandes 2010.1 Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:

Referências

• Leland L Beck.. “Desenvolvimento de software básico”. 2ª ed. Rio de Janeiro: Campus, 1993. 525p.

21