Lista de Exercícios Substitutiva
Lista de Exercícios Substitutiva
Lista de Exercícios Substitutiva
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
O campo modo define como localizar operandos a partir dos campos operando. O
campo w/b é usado em certas instruções para determinar se os operandos são
bytes ou palavras de 16 bits. O campo operando1 pode (dependendo do
conteúdo do campo modo) definir um dos 16 registradores de uso geral. O campo
operando2 pode definir qualquer registrador de uso geral exceto registrador 0.
Quando o campo operando2 for todo zero, cada um dos opcodes originais
assume um novo significado.
a) Quantos opcodes são fornecidos em Z8001?
b) Sugira uma maneira eficiente para prover mais opcodes e indique a negociação
envolvida.
12. Um microprocessador fornece uma instrução capaz de mover uma cadeia de bytes
de uma área de memória para outra. A leitura e decodificação inicial da instrução
levam 10 ciclos de clock. Depois demora 15 ciclos de clock para transferir cada
byte. O microprocessador possui um clock de 10 Ghz.
a) Determine o tamanho do ciclo da instrução para o caso de uma cadeia de 64 bytes.
b) Qual é o pior atraso para aceitar uma interrupção se a instrução não puder ser
interrompida?
c) Repita a parte (b) assumindo que a instrução possa ser interrompida no começo da
transferência de cada byte.
13. Em muitos casos, instruções de máquinas comuns que não estão listadas como
parte do conjunto de instruções do MIPS podem ser sintetizadas com uma única
instrução MIPS. Mostre isso para o seguinte:
a) Mover de registrador para registrador
b) Incrementar, decrementar
c) Complementar
d) Negar
e) Zerar (não use o registrador $zero)
Opcode 0 0 0 0
Opcode 0 0 0 0 Endereço
17. Se uma instrução contém quatro endereços, qual poderia ser a finalidade de cada
endereço?
19. Que tipos de operandos são típicos nos conjuntos de instrução de máquina?
22. Liste e explique resumidamente duas maneiras comuns de gerar a condição a ser
testada em uma instrução de desvio condicional.
Lista de Exercícios de Arquitetura de Computadores I 3
Prof. Jadir Eduardo Souza Lucas

23. O que significa o termo aninhamento de procedimentos?
24. Liste três locais possíveis para armazenar o endereço de retorno para um retorno
de procedimento.
26. Muitos processadores oferecem uma lógica para realizar aritmética sobre números
decimais agrupados. Embora as regras para a aritmética decimal sejam
semelhantes àquelas para operações binárias, os resultados decimais podem exigir
algumas correções aos dígitos individuais se a lógica binária for usada.
Considere a adição decimal de dois números sem sinal. Se cada número consistir
em N dígitos, então existem 4N bits em cada número. Os dois números devem ser
somados usando um somador binário. Sugira uma regra simples para corrigir o
resultado. Realize a adição dessa forma sobre os números 1698 e 1786.
27.
a) A + B + C + D+ E
b) (A + B) × (C + D) + E
c) (A × B) + (C × D) + E
struct{
int a; //0x1112_1314 word
int pad; //
double b; //0x2122_2324_2526_2728 doubleword
char* c; //0x3132_3334 word
char d[7]; //'A'.'B','C','D','E','F','G' byte array
short e; //0x5152 halfword
int f; //0x6162_6364 word
} s;
a) struct {
double i; //0x1112131415161718
} s1;
Book 1.indb 326 19.11.09 14:38:24
b) struct {
int i; //0x11121314
int j; //0x15161718
} s2;
c) struct {
short i; //0x1112
short j; //0x1314
short k; //0x1516
short l; //0x1718
} s3;
39. Quais fatores devem ser levados em conta para determinar o uso de bits de
endereçamento de uma instrução?
42. Um campo de endereço em uma instrução contém o valor decimal 14. Onde está o
operando correspondente para:
a) endereçamento imediato?
b) endereçamento direto?
c) endereçamento indireto?
d) endereçamento de registradores?
e) endereçamento indireto de registradores?
201 500
203
A primeira parte da primeira palavra (opcode) indica que esta instrução carrega um
valor em um acumulador. O campo Modo especifica um modo de endereçamento
e, se apropriado, indica um registrador de origem; assuma que, quando usado, o
registrador de origem é R1 e tem o valor 400. há também um registrador base que
contém o valor 100. O valor 500 na posição 201 pode ser uma parte do cálculo do
endereço. Suponha que a posição 399 contém o valor 999, a posição 400 contém o
valor 1.000, e assim por diante. Determine o endereço efetivo e o operando a ser
carregado para os seguintes modos de endereçamento:
a) Direto
b) Imediato
c) Indireto
d) PC-relativo
e) Deslocamento
f) Registrador
g) Registrador Indireto
h) Autoindexação com incremento usando R1
48. O IBM 370 não oferece endereçamento indireto. Suponha que o endereço de um
operando esteja na memória principal. Como você acessaria o operando?
49. Em Cook e Dande (1982l) os autores propõem que o modo de endereçamento PC-
relativo seja substituído por outros modos, como o uso de uma pilha. Qual é a
desvantagem dessa proposta?
50. O intel x86 inclui a instrução IMUL op1, op2, immediate. Esta instrução
multiplica op2, o qual pode ser registrador ou memória, pelo valor do operando
imediato e guarda o resultado em op1, o qual tem que ser um registrador. não
existe nenhuma outra instrução de três operandos deste tipo no conjunto de
instruções. Qual o possível uso dessa instrução? (Dica: considere a indexação).
53. Suponha um processador baseado em pilha que inclui as operações de pilha PUSH
e POP. As operações aritméticas envolvem automaticamente um ou dois elementos
do topo da pilha. Comece com uma pilha vazia. Quais elementos restam na pilha
depois que as instruções a seguir são executadas?
PUSH 4
PUSH 7
PUSh 8
ADD
PUSH 10
SUB
MUL
55. Por que a decisão da IBM de mudar de 36 bits para 32 bits por palavra foi dolorosa
e para quem ela o foi?
57. Projete um opcode de tamanho variável que permita que tudo que está relacionado
a seguir seja codificado em uma instrução de 36 bits:
a) instruções com dois endereços de 15 bits e um registrador numérico de 3 bits
b) instruções com um endereço de 15 bits e um registrador numérico de 3 bits
c) instruções sem endereços ou registradores
59. Existe alguma justificativa possível para uma instrução com dois opcodes?