Lista de introduçÃO Á arquitetura de computadores



Baixar 21,85 Kb.
Encontro30.10.2016
Tamanho21,85 Kb.
LISTA DE INTRODUÇÃO Á ARQUITETURA DE COMPUTADORES
Prof. Jorge Habib Hanna El Khouri

Aluno: ________________ Turma: 2º UNIOESTE




  1. Considerar o seguinte programa em C:




#include

#include

#define MAXL 5

#define MAXC 5


struct record {

int i;


float f;

double d;

char c;

};
int global;



int vglobal[MAXL];

int mglobal[MAXL][MAXC];

struct record rglobal;

struct record vrglobal[MAXL];

struct record mrglobal[MAXL][MAXC];
int i, j;
void getaddress () {

int local;

int vlocal[MAXL];

int mlocal[MAXL][MAXC];

struct record rlocal;

struct record vrlocal[MAXL];

struct record mrlocal[MAXL][MAXC];
global = -1;

local = -2;

vglobal[i] = -3;

vlocal[i] = -4;


mglobal[i][j] = -5;

mlocal[i][j] = -6;

rglobal.i = -7;

rlocal.i = -8;


rglobal.f = -9;

rlocal.f = -10;


rglobal.d = -11;

rlocal.d = -12;


rglobal.c = 'a';

rlocal.c = 'b';


}

int main(int argc, char *argv[])

{
getaddress();
}

Pede-se:


    1. Compilar o programa proposto;

    2. Obter o assembly;

    3. Surgiu alguma instrução não apresentada em sala? Pesquise o que faz a instrução?

    4. Comparar cada linha do código fonte com o equivalente assembly. Identificar os acessos à memória e explicar o modo de endereçamento;

    5. Utilizar o debugger e obter o código binário do programa em execução. Explicar as diferenças entre o assembly em disco e o binário em memória.

Para gerar o assembly a partir do gcc execute na linha de comando ou criar um arquivo “bat” com o comando ilustrado na coluna da esquerda:




C:\Compiladores\Dev-Cpp\bin\gcc

-L"C:\Compiladores\Dev-Cpp\lib"

-I"C:\Compiladores\Dev-Cpp\include"

-S


-masm=intel

-o


teste.s

main.c


gcc (caminho completo se necessário)

-L caminho para pasta “lib”

-I caminho para pasta “include”

-S gerar assembly

com sintaxe intel

-o produzir arquivo objeto

nome do arquivo assembly

arquivo a ser compilado




©bemvin.org 2016
enviar mensagem

    Página principal