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

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

Y86: Definição da Arquitectura Arquitectura de Computadores Lic. em Engenharia Informática Luís Paulo Santos.

Apresentações semelhantes


Apresentação em tema: "Y86: Definição da Arquitectura Arquitectura de Computadores Lic. em Engenharia Informática Luís Paulo Santos."— Transcrição da apresentação:

1 Y86: Definição da Arquitectura Arquitectura de Computadores Lic. em Engenharia Informática Luís Paulo Santos

2 Y86: Arquitectura AC – Y86: Definição da Arquitectura2 Conteúdos 9 – Organização do Processador 9.1 – Conceitos Fundamentais Resultados de Aprendizagem R9.1 – Analisar e descrever organizações sequenciais de processadores elementares

3 Y86: Estado visível AC – Y86: Definição da Arquitectura3 %eax %ecx %edx %ebx %esi %edi %esp %ebp Registos Códigos de Condição PC Memória OFZFSF –Registos Os mesmos que o IA32. Cada 32 bits –Códigos de Condição Flags de 1 bit alteradas pelas instruções aritméticas ou lógicas –OF: TransporteZF: ZeroSF:Sinal –Program Counter Indica endereço da instrução a executar –Memória Vector de bytes Palavras armazenadas em ordem little-endian

4 Y86 : Instruction Set Architecture (ISA) AC – Y86: Definição da Arquitectura4 popl

5 Y86 : Instruction Set Architecture (ISA) AC – Y86: Definição da Arquitectura5 Byte 0Byte 1Byte 2Byte 3Byte 4Byte 5 opfnrArBImm –op – código de operação : identifica a instrução –fn – função: identifica a operação –rA, rB – indicam quais os registos a utilizar –Imm – valor imediato (constante) Algumas instruções não necessitam de todos os campos: apenas op e fn estão sempre presentes pois identificam a instrução %eax %ecx %edx %ebx %esi %edi %esp %ebp

6 Y86: Modos de endereçamento Imediato: –constante especificada na própria instrução no campo Imm Registo: –registo(s) a utilizar especificados na instrução nos campos rA, rB Base+Deslocamento: –Endereço da posição de memória a ler/escrever especificado como a soma do valor imediato (Imm) com o conteúdo do registo (rB) AC – Y86: Definição da Arquitectura6

7 Y86 : Exemplo de Instrução AC – Y86: Definição da Arquitectura7 Adição –Adicionar valor no registo rA ao valor no registo rB Guardar resultado no registo rB Operações Aritméticas ou Lógicas só sobre operandos em registos –Códigos de condição dependem do resultado –e.g., addl %eax,%esi Representação Máquina: addl rA, rB 60 rArB Representação Codificada Forma Genérica

8 Y86: Operações Lógicas e Aritméticas AC – Y86: Definição da Arquitectura8 –Referidas genericamente como OPl –Códigos variam apenas no function code 4 bits menos significativos do 1º byte –Altera os códigos de condição addl rA, rB 60 rArB subl rA, rB 61 rArB andl rA, rB 62 rArB xorl rA, rB 63 rArB Adição Subtracção (rA de rB) And Exclusive-Or Instruction CodeFunction Code

9 Y86: Transferência de Dados AC – Y86: Definição da Arquitectura9 –Semelhante à instrução IA32 movl –Modo de endereçamento mais simples: Registo+Deslocamento rrmovl rA, rB 20 rArB Registo --> Registo Imediato --> Registo irmovl V, rB 308 rB V Registo --> Memória rmmovl rA, D ( rB) 40 rA rB D Memória --> Registo mrmovl D ( rB), rA 50 rA rB D

10 Y86: Transferência de Dados (exemplos) AC – Y86: Definição da Arquitectura10 irmovl $0xabcd, %edxmovl $0xabcd, %edx30 82 cd ab IA32Y86Encoding rrmovl %esp, %ebxmovl %esp, %ebx20 43 mrmovl -12(%ebp),%ecxmovl -12(%ebp),%ecx50 15 f4 ff ff ff rmmovl %esi,0x41c(%esp)movl %esi,0x41c(%esp) movl $0xabcd, (%eax) movl %eax, 12(%eax,%edx) movl (%ebp,%eax,4),%ecx c

11 Y86: Controlo de Fluxo (saltos) AC – Y86: Definição da Arquitectura11 –Referidas genericamente como jXX –Códigos variam apenas no function code –Decisão baseada nos valores dos códigos de condição –Endereçamento absoluto jmp Dest 70 Jump Unconditionally Dest jle Dest 71 Jump When Less or Equal Dest jl Dest 72 Jump When Less Dest je Dest 73 Jump When Equal Dest jne Dest 74 Jump When Not Equal Dest jge Dest 75 Jump When Greater or Equal Dest jg Dest 76 Jump When Greater Dest

12 Y86: Pilha AC – Y86: Definição da Arquitectura12 –Região da memória com dados do programa –Usada no Y86 (e IA32) para suportar invocação de procedimentos –Topo da pilha : %esp –Pilha cresce para endereços menores Topo no endereço menor Push – primeiro subtrair 4 ao %esp Pop – adicionar 4 ao %esp após leitura %esp Endereços Maiores Cauda da pilha Topo da pilha

13 Y86: Transferência de Dados (pilha) AC – Y86: Definição da Arquitectura13 –Decrementar %esp por 4 –Armazenar palavra de rA na memória apontada por %esp –Ler palavra da memória apontada por %esp –Guardar em rA –Incrementar %esp por 4 pushl rA a0 rA 8 popl rA b0 rA 8

14 Y86: Procedimentos AC – Y86: Definição da Arquitectura14 –Endereço da próxima instrução para a pilha (push) –Iniciar execução a partir do endereço Dest (escrita no PC) –Ler valor do topo da pilha (pop) –Iniciar execução a partir deste endereço (escrita no PC) call Dest 80 Dest ret 90

15 Y86: Instruções Adicionais AC – Y86: Definição da Arquitectura15 –No Operation: não altera o estado, excepto para o PC –Pára a execução de instruções –IA32 tem uma instrução semelhante, mas não pode ser executada em modo utilizador nop 00 halt 10

16 Y86: Estrutura dos Programas AC – Y86: Definição da Arquitectura16 –Programas começam no endereço 0 –Tem que se inicializar a pilha Não sobrepor ao código! –Inicializar dados.pos 0 irmovl Stack, %esp # inicializa pilha jmp main.align 4 # dados alinhados em múltiplos de 4 t:.long 10 # reserva 4 bytes para um inteiro t com o valor inicial 10 main: … # instruções halt.pos 0x100 # stack a começar no addr 0x100 (256 em decimal) Stack:

17 Y86: Assembler AC – Y86: Definição da Arquitectura17 –Gera código objecto ficheiro ASCII eg.yo Idêntico ao output de um disassembler unix> yas eg.ys 0x000: | irmovl Stack,%esp# Set up stack 0x006: 2045 | rrmovl %esp,%ebp# Set up frame 0x008: | irmovl List,%edx 0x00e: a028 | pushl %edx# Push argument 0x010: | call len2# Call Function 0x015: 10 | halt# Halt 0x018: |.align 4 0x018: | List:# List of elements 0x018: b |.long x01c: ed |.long x020: e31c0000 |.long x024: |.long 0


Carregar ppt "Y86: Definição da Arquitectura Arquitectura de Computadores Lic. em Engenharia Informática Luís Paulo Santos."

Apresentações semelhantes


Anúncios Google