Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sistemas de Computao I
Centro de Cincias Computacionais C3 - FURG
Repertrio de Operao
Quantas operaes? O que elas podem fazer? Quo complexas elas sero?
Registradores
Nmero de registradores da CPU disponveis Quais operaes podem ser executadas em quais registradores ?
Tipos de Operandos
Endereos Nmeros
Inteiros/Ponto Flutuante
ASCII, EBCDIC etc. Bits ou flags
Quem programa em C?
Caracteres
Dados Lgicos
Byte Ordem
Qual a ordem de leitura de nmeros que ocupam mais que um byte? Exemplo: (em hexa para ficar mais fcil de ler) 12345678 pode ser armazenado em um espao de 4 x 8 bits nos seguintes modos:
Valor(1) 12 34 56 78
Valor(2) 78 56 34 12
Esse problema chamado Endian O sistema 1 do exemplo, tem o byte mais significativo no menor endereo
big-endian
little-endian
Problemas
Transferncia de dados entre mquinas Manipular bytes ou bits individuais em um valor escalar de mltiplos bytes.
Observaes
Dentro de um valor escalar de multibytes, a disposio de bytes no big-endian inverso da disposio de bytes no little-endian. O tipo de endian no afeta a organizao de itens de dado dentro de uma estrutura. Portanto, os 4 bytes da palavra c aparecem invertidos nas duas disposies, mas o vetor de 7 caracteres d no invertido. Assim, o endereo de cada elemento individual do vetor d o mesmo nas duas estruturas.
Classificao de string de caracteres: mais rpido na comparao de strings de caracteres alinhados por inteiros, a ULA pode comparar mltiplos bytes em paralelo. Listagem de valores decimais ASCII: todos os valores podem ser impressos da esquerda para a direita, sem causar confuso. Ordem coerente: processadores big-endian armazenam inteiros e strings na mesma ordem (bytes mais significativos vem primeiro)
Um processador big-endian precisa efetuar uma adio para converter um endereo de 32 bits para um endereo de 16 bits, a fim de obter os bytes menos significativos. mais fcil efetuar a aritmtica de alta preciso, pois no necessrio encontrar o byte menos significativo e recuar.
Bi-endian
Permite ao desenvolvedor escolher qual a disposio de bytes ao migrar sistemas operacionais ou aplicaes de outras mquinas. O S. O. determina a disposio dos bytes na qual um processo executa. Uma vez selecionada, todas as operaes subsequentes seguem a mesma disposio.
1 especifica a disposio de bytes na qual o ncleo do S.O. executa 1 especifica a disposio do processo corrente.
Tipos de Operao
Transferncia de dados Aritmticas Lgicas Converso E/S Controle do Sistema Transferncia de Controle
Transferncia de dados
Especifica
IBM 370
VAX
Tipos de Transferncias
Determina se o item est na memria cache Se no estiver, emite um comando para o mdulo da memria.
Aritmticas
Add, Subtract, Multiply, Divide Inteiros com sinal Ponto Flutuante Pode incluir:
15(10) = 0001 0101 (BCD) 37(10) = 0011 0111 (BCD) + __________ 0100 1100 (BCD) 0010
1100 = 12 (10)???
Ajuste:
Lgicas
Operaes entre os bits AND, OR, NOT, XOR COMPARE ROTAO DESLOCAMENTO
Operaes deslocamento
Operaes de rotao
Entrada 10100110
Resultado 00010100
10100110
10100110 10100110 10100110 10100110
00110000
11110100 10110000 11010100 00110101
Se cada palavra de memria tiver tamanho de 16 bits e contiver 2 caracteres, ser necessrio desempacotar os caracteres, antes que sejam enviados. Os passos a seguir resultam no envio do caracter mais esquerda dos 2 caracteres de uma palavra:
1. 2.
3.
4.
Carregue a palavra em um registrador Execute a operao AND com os operandos dados pelo contedo do registrador e o valor 11111111 00000000, para mascarar o caracter da direita Desloque o contedo do registrador para a direita, 8 posies de bit. Isso desloca o caractere restante para a metade direita do registrador. Efetue a E/S. O mdulo de E/S ler os 8 bits de ordem inferior do barramento de dados.
Exerccio
Descreva os passos necessrios para enviar o caracter mais direita do exemplo anterior.
Resposta
1. 2.
3.
Carregue a palavra de novo no registrador Execute a instruo AND com operandos dados pelo contedo do registrador e o valor 0000 0000 1111 1111. Efetue a E/S.
Exerccios de fixao
12- Quais as concluses quanto ao nmero de endereos por instruo? 13- Quais os tipos de nmeros freqentemente encontrados nas arquiteturas? 14- Porque na linguagem de mquina no existe variveis tipadas? 15- Qual a diferena de Little-endian e Bigendian? 16- Como realizada a transferncia de dados quando 1 ou mais operandos esto na memria?
18- Qual o problema de trabalhar com nmeros no formato BCD? 19- Instrues lgicas e aritmticas podem envolver transferncia de dados? 20- Para que finalidade deslocamentos lgicos so especialmente teis? 21 complete a tabela abaixo realizando as operaes: Entrada Operao Resultado
11011010 11011010 11011010 Deslocamento lgico direita (4 bits) Deslocamento lgico esquerda (2 bits) Deslocamento aritmtico direita (5 bits)
11011010 11011010
11011010
22- Em um sistema com palavras de 32 bits, na posio 1320 da memria est armazenada a varivel X, inicializada com o valor FF AB 08 7C e carregada no Registrador 2 (R2). Em uma arquitetura so disponibilizadas as seguintes funes de deslocamento: SLL Rs, desl, Rd Shift Left Logical SRA Rs, desl, Rd Shift Right Arithmetic SRL Rs, dels, Rd Shift Right Logical Onde: Rs o registrador que contem o dado original desl indica quantos bits deve ser deslocados Rd indica o registrador destino. a. Com base nestas informaes, determine o valor final da varivel X aps a execuo das 4 prximas instrues: i. SRL R2, 2, R2 ii. SRA R2, 8, R2 iii. SLL R2, 16, R2 iv. SRA R2, 4, R2