Sistemas de Microprocessadores e Arquitectura de Comptutadores

AULAS PRÁTICAS
Avaliação:
5 valores: 3 trabs e 2 avaliação directa (aulas TPC) Módulos: ● C: gcc, gdb, fases de compilação, ponteiros, segmentation faults, alocação estática, dinâmica e variáveis locais, hardware i/o com inportb outportb. ● MIPS: spim, assembly, stack, c/asm, MIPS em FGPA (fornecido) para programar e testar ● Arq: pipeliing e stalls em MIPS, cache e hierarquia de memória (x86), optimização de código C.
1
DEEC, FCT, UC Sistemas de Microprocessadores e Arquitectura de Comptutadores

DEPARTAMENTO DE ENGENHARIA ELECTROTÉCNICA E DE COMPUTADORES FACULDADE DE UC CIÊNCIAS E TECNOLOGIA DEEC, FCT, UNIVERSIDADE DE COIMBRA Sistemas de Microprocessadores e Arquitectura de Comptutadores

2008

2

Ponteiros
• WOC
– – – – Trabalhos praticos Avisos e informações diversas Slides das aulas etc

Estapas para ter código executável…
Nota: Esta listagem em assembly não segue a sintaxe do NASM
.file .text .globl main .type main: pushl movl subl andl movl addl addl shrl sall subl movl movl movl addl movl leave ret .size .section .ident (Red Hat 3.4.4-2)" main, @function %ebp %esp, %ebp $24, %esp $-16, %esp $0, %eax $15, %eax $15, %eax $4, %eax $4, %eax %eax, %esp $1, -4(%ebp) $2, -8(%ebp) -8(%ebp), %eax -4(%ebp), %eax %eax, -12(%ebp) "main.c"

• http://www.deec.uc.pt/~jlobo/SMP_AC/
– Software – Links – etc

void main(){ int a=1,b=2,c; c=a+b; }

Compilação
gcc -S main.c -o main.asm

main, .-main .note.GNU-stack,"",@progbits "GCC: (GNU) 3.4.4 20050721

main.c
As linguagens de alto nível são independentes da arquitectura e do SO
DEEC, FCT, UC Sistemas de Microprocessadores e Arquitectura de Comptutadores DEEC, FCT, UC Sistemas de Microprocessadores e Arquitectura de Comptutadores

main.asm
A linguagem assembly depende da arquitectura do computador

3

4

Estapas para ter código executável…
segment .bss segment .text global asm_main asm_main: enter 0,0 pusha mov eax, 2 mov ebx, 1 add eax, ebx popa mov eax, 0 leave ret

Assemblagem
nasm ex.asm -l ver.txt

Ligação
“Linkagem”

ex.asm
Código em linguagem mnemónica

ex.o
Código objecto/máquina (instruções codificadas em opcodes, little endian) Alguns endereços por resolver,pois só depois de tudo ligado é que sabemos onde fica
5

O executável depende da arquitectura e do sistema operativo
DEEC, FCT, UC Sistemas de Microprocessadores e Arquitectura de Comptutadores

DEEC, FCT, UC Sistemas de Microprocessadores e Arquitectura de Comptutadores

EXECUTÁVEL

%include "asm_io.inc" segment/home/jpbar/Courses/S MP/LinuxExamples/skel.asm .data

55 00000000 C8000000 56 00000004 60 57 58 59 60 61 62 00000005 66B8020000000 63 0000000B 66BB01000000 64 00000011 6601D8 65 66 67 00000014 61 68 00000015 66B800000000 69 0000001B C9 70 0000001C C3

6

Sign up to vote on this title
UsefulNot useful