Assembly 04

753 palavras 4 páginas
COM 168 - Arquitetura de Computadores – Capítulo 3

2.15 Loops: a utilização de vetores com índice variável
Exemplo: Seja o loop programado na linguagem C:
Loop: g = g + A[ i ]; i = i + j; if (i != h) go to Loop;
Suponha que A seja um vetor de 100 posições e para g, h, i e j são associados os regs. $s1--$s4. O vetor base está armazenado em $s5.
Loop:add $t1, $s3, $s3 add $t1, $t1, $t1 add $t1, $t1, $s5 lw $t0, 0( $t1)

# t1 Å 2* i
# t1Å 4 *i
# t1Å endereço de A[ i ]
# t0Å A[ i ]

add $s1, $s1, $t0 add $s3, $s3, $s4

# g Å g + A[ i ]
# i Å i + j

bne $s3, $s2, Loop

# desvia para o Loop se i != j

2.16 Loop While:
____________________________________________________________
Exemplo: while (save [ i ] == k i = i + j;
Suponha que as variáveis estão associadas com os regs. $s3, $s4 e $s5 e que o endereço base do vetor save está em $s6.
Loop:add $t1, $s3, $s3 add $t1, $t1, $t1 add $t1, $t1, $s6 lw $t0, 0( $t1)

# t1 Å 2* i
# t1Å 4 *i
# t1Å endereço de save[ i ]
# t0Å save[ i ]

bne $t0, $s5, Exit

# desvia para Exit se save[ i ]

add $s3, $s3, $s4

# i Å i + j

!= k j Loop
Exit:

# desvia para Loop

47

COM 168 - Arquitetura de Computadores – Capítulo 3

2.17 Compilação do testes Menor do que.
A instrução usada para testar dois valores é conhecida como set on less than ou slt.
Esta instrução compara valores de dois registradores e atribui o valor 1 a um terceiro se o valor do primeiro registrador for menor que o segundo; caso contrário atribui zero. slt $t0, $s3, $s4 # Se $s3 < $s4 Æ $t0 = 1

Para criar facilidades de programação um registrador denominado de
$zero é mapeado no registrador 0.
____________________________________________________________
Exemplo:
Teste se uma variável a associada ao registrador $s0 é menor que b (reg.
$s1) e desvie para Less se a condição for verdadeira. slt $t0, $s0, $s1 # Se a < b Æ $t0 = 1 bne $t0, $zero, Less # desvia para Less se $t0 != 0
# isto se a < b
Comando Case/Switch:
Switch (k) {
Case 0: f = i + j; break; Case 1: f = g + h;

Relacionados

  • O que é linguagem Assembly
    1347 palavras | 6 páginas
  • Exercícios
    3079 palavras | 13 páginas
  • Microprocessados
    747 palavras | 3 páginas
  • Computaçao
    1398 palavras | 6 páginas
  • CAD CATIA
    3270 palavras | 14 páginas
  • Como montar um amário
    332 palavras | 2 páginas
  • Religious groups
    2316 palavras | 10 páginas
  • Sustainable development
    3110 palavras | 13 páginas
  • Sistema de esgoto
    524 palavras | 3 páginas
  • Teste
    17208 palavras | 69 páginas