Você está na página 1de 2

BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar

Arquitetura e Organização de Computadores


Prof. Dr. José Hiroki Saito

AA3-1 –Atividade Avaliativa-Assembly

1) Dada a sequência de código em Assembly do MIPS,

lw $t0, 16($s3)
add $t0, $s2, $t0
sw $t0, 20($s3)

considerando-se que $s3 representa o endereço do início de um vetor A na memória, ou seja,


endereço de A[0], e o registrador $s2 representa a variável h, que instrução em código C é
executada pela sequência? Dica: a memória no MIPS é endereçada por bytes e cada elemento
do vetor A contém 4 bytes.
(valor 1.0)

2) Dada a sequência de código em Assembly do MIPS,

bne $s1, $s2, Lab1


sub $s3, $s1, $s2
j Lab2
Lab1: add $s3, $s1, $s2
Lab2: ….

onde $s1 representa a variável x, $s2 representa a variável y, e $s3 representa a variável z,
mostrar a instrução em linguagem C correspondente.
(valor 1.0)

3) Dar uma sequência de código em Assembly do MIPS que executa a seguinte instrução em
linguagem C:

z= x+y+z-w

sabendo-se que as variáveis no MIPS são contidas em registradores.


(valor 1.0)

4) Dada a sequência de instruções em Assembly do MIPS,


sub $2, $2, $2
addi $2, $2, 2
slt $3, $0, $2
Dar o conteúdo de $3, após a sua execução.
(valor 1.0)

5) Escrever a instrução, ou menor conjunto de instruções em Assembly do MIPS, que realiza a


operação em código C, seguinte, considerando-se que x esteja em $t0 e y em $t1:

x =x + y – 1

(valor 1.0)
BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar
Arquitetura e Organização de Computadores
Prof. Dr. José Hiroki Saito

6) Lembrando-se que os vetores em código C, são implementados na memória do MIPS,


escrever a instrução, ou menor conjunto de instruções em Assembly, que realiza a operação
em código C, seguinte:

A[4] = 1 (elemento 4 do vetor A, sendo início de A dado pelo registrador $4)

(valor 1.0)
7) Escrever a instrução, ou menor conjunto de instruções em Assembly do MIPS, que realiza a
operação em código C, seguinte:

se x > y salta para L1

(valor 1.0)

8) Considerando-se que no MIPS, a entrada/saída seja mapeada na memória, ou seja, quando


uma informação deve ser lida ou escrita por um dispositivo periférico é usada uma palavra de
memória, escrever um trecho de programa que permite ao computador ler continuamente o
status do teclado, e quando o dado tiver sido digitado faz a sua leitura. Dica: Considerar que o
dado digitado no teclado é de 32 bits, e que quando um dado é digitado, o mesmo é guardado
no endereço 1024. Ao mesmo tempo, é escrito o valor 1, no endereço 1028, pela interface de
controle do teclado, indicando que o dado está pronto, caso contrário fica escrito o valor 0.
Portanto, a solução é escrever um programa que verifica constantemente o endereço 1028 se
contém o valor 1 e caso contenha, recupera o dado digitado no endereço 1024, e o coloca num
registrador.

(valor 1.5)

9) Escrever um programa em Assembly do MIPS que faz o somatório dos elementos de um


vetor A, deixando o resultado no registrador $t0. Considerar $4, o ponteiro para o início do
vetor A. Considerar que o número de elementos do vetor A é contido no registrador $6.
Observação: não se preocupar com a possibilidade do resultado ser muito grande.

(valor 1.5)

Você também pode gostar