Trabalho prático de assembly

1120 palavras 5 páginas
INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA

Semestre de Inverno 2008

Arquitectura de Computadores 2

Trabalho Prático de Assembly

AC2

8 de Janeiro de 2009

Introdução

Neste trabalho prático no âmbito da unidade curricular de Arquitectura de Computadores 2 foram-nos apresentado uma série de exercicios (tanto práticos como teóricos) acerca do assembly da IA-32 para assim poder aplicar os conhecimentos adquiridos nas aulas.

Desenvolvimento

Exercício 1

Ocupação de cada estrutura:

Struct St1: 4 bytes
Struct St2: 8 bytes
Struct St3: 12 bytes
Struct St4: 16 bytes (alinhado)

Posição relativa, numero de parâmetros e total de bytes:

St1 St2 St3 St4 _esp _esp ret_address + 0 ret_address + 0 * St4 + 4 _esp * St3 + 4 x + 8 _ esp ret_address + 0 x + 8 y + 12 ret_address + 0 x + 4 y + 12 z + 16 x + 4 y + 8 z + 16 w + 20 1 parâmetro 2 parâmetros 4 parâmetros 5 parâmetro
4 bytes 8 bytes 16 bytes 20 bytes

Obs.: *St3 e *St4 são ponteiros para estruturas do tipo St3 e St4 respectivamente.

Exercício 2

String.c

#include
#include

int getStrAdr(char *dst[], int max, char * sample, ...);

int main() { int i; int n; const unsigned max = 5; char **dst = (char **) malloc(sizeof(char *) * max); char *sample = "par"; char *str0 = "ac2"; char *str1 = "cache"; char *str2 = "pci"; char *str3 = "parameters"; char *str4 = "usb"; char *str5 = "ram"; char *str6 = "parsing";

n = getStrAdr(dst, max, sample, str0, str1, str2, str3, str4, str5, str6, NULL);

printf("Number of strings started by \"%s\" : %d", sample, n);

printf("\n\n");

printf("string \"%s\" at address 0x%x \n", str0, str0); printf("string \"%s\" at address 0x%x \n", str1, str1); printf("string \"%s\" at address 0x%x \n", str2, str2); printf("string \"%s\"

Relacionados

  • .Net apostila treinamento c#
    29759 palavras | 120 páginas
  • Apostila SolidWorks SENAI
    11574 palavras | 47 páginas
  • Assembly
    3699 palavras | 15 páginas
  • Relogio Digital Assembly
    634 palavras | 3 páginas
  • programaçao
    843 palavras | 4 páginas
  • Linguagem de progamação ASSEMBLY
    4199 palavras | 17 páginas
  • Linguagem de Pogramação
    2164 palavras | 9 páginas
  • Sequenciador de luzes msb-lsb e vice-versa
    506 palavras | 3 páginas
  • Microprocessadores e Microcontroladores
    2738 palavras | 11 páginas
  • Linguagem para Programar Microcontroladores: Assembly, C ou Basic
    4222 palavras | 17 páginas