Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouTiago Lazaro Alterado mais de 10 anos atrás
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: Programação com o SIC e SIC/XE 1
2
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
3
Primeiro exemplo do SIC 3
4
Primeiro exemplo do SIC/XE 4
5
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ê?
6
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
7
Operações aritméticas - SIC 7
8
Operações aritméticas – SIC/XE 8
9
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
10
Operações loop e indexação - SIC 10
11
Operações loop e indexação – SIC/XE 11
12
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
13
Indexação e loop - SIC 13
14
Indexação e loop – SIC/XE 14
15
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
16
Operações de E/S - SIC 16
17
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
18
Sub-rotina e entrada de registros - SIC 18
19
Sub-rotina e entrada de registros – SIC/XE 19
20
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
21
Referências Leland L Beck.. Desenvolvimento de software básico. 2ª ed. Rio de Janeiro: Campus, 1993. 525p. 21
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.