A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Conjunto de instruções

Apresentações semelhantes


Apresentação em tema: "Conjunto de instruções"— Transcrição da apresentação:

1 Conjunto de instruções
assembly Código-máquina assembler add $s0, $s1, $s2 mnemónicas pseudo-instruções labels binário instruções nativas suportado pelo data path ISA – interface entre o processador e os programas de mais alto nível MIPS – caso de estudo Arquitectura de Computadores

2 Instruções lógico-aritméticas
add , addi – adição sub – subtracção mult – multiplicação div – divisão and , andi – conjunção or , ori – disjunção sll , srl – shifts lógicos sra – shift aritmético Localização dos operandos memória ou registos? variáveis locais / variáveis estruturadas limitação no número e tamanho dos registos MIPS 32 registos com 32 bits cada operandos sempre em registos (velocidade) uso genérico ($s0..$s7 ; $t0..$t9) Ix86 1 operando pode estar na memória Arquitectura de Computadores

3 Instruções lógico-aritméticas
Número de operandos 0 – stack (topo = topo <op> topo+1) 1 – acumulador (acc = acc <op> reg) 2 – (reg1 = reg1 <op> reg2) 3 – (reg1 = reg2 <op> reg3) Ix86 1 ou 2 operandos MIPS 3 operandos a regularidade leva à simplicidade Exemplos add $s0, $t0, $t1 # $s0 = $t0 + $t1 sub $t9, $t9, $s1 # $t9 = $t9 - $s1 addi $s0, $s0, # $s0 = $s0 + (-15) and $s5, $s5, $0 # $s5 = $s5 & $0 Arquitectura de Computadores

4 Instruções de transferência de dados
Objectivo – transferir informação entre a memória e os registos p a l v r 1000 1001 1002 1003 Memória endereçável byte a byte load: lw $s0, 10($s1) – $s0 = [$s1 + 10] (32 bits) lh $t0, -5($s0) – $t0 = [$s0 – 5] (16 bits) lb $s0, 1000($s7) – $s0 = [$s ] (8 bits) store: sw $s0, 10($s1) – [$s1 + 10] = $s0 (32 bits) sh $t0, -5($s0) – [$s0 – 5] = $t0 (16 bits) sb $0, 1000($s7) – [$s ] = $0 (8 bits) Arquitectura load/store – o acesso à memória é feito apenas através destas instruções Arquitectura de Computadores

5 Instruções para tomada de decisões
“... a utilidade de um computador reside na possibilidade de poder optar por uma de duas sequências de instruções, baseado no resultado de alguma computação anterior...” Saltos incondicionais Exemplo j Exit ... Exit: j <label> jr <reg> Saltos condicionais beq <reg1>, <reg2>, label bne <reg1>, <reg2>, label bgez <reg1>, label bgtz <reg1>, label blez <reg1>, label bltz <reg1>, label Arquitectura de Computadores

6 Instruções para tomada de decisões
Instruções de comparação slt <reg1>, <reg2>, <reg3> <reg1> = 1 se <reg2> < <reg3> slti <reg1>, <reg2>, <imm> Exemplo if (a < b) a = a + 1; else a = a – 1; Se a é o registo $s0 e b o registo $s1 então slt $t0, $s0, $s1 beq $t0, $zero, else addi $s0, $s0, 1 j fim else: addi $s0, $s0, -1 fim: Arquitectura de Computadores


Carregar ppt "Conjunto de instruções"

Apresentações semelhantes


Anúncios Google