Professional Documents
Culture Documents
6.-) Dado un vector A de enteros positivos de longitud N, crear un nuevo vector que
contenga los nmeros de dicho vector que sean mltiplos de 3.
15.-) Dado dos arreglos A y B de enteros con signo de la misma longitud N, crear
un nuevo arreglo C donde C[i] = A[i] + B[i]
16.-) Dado dos arreglos A y B de enteros con signo de la misma longitud N, crear
un nuevo arreglo C donde C[i] = A[i] / 2 + 2*B[i]
19.-) Definir las variables inicializadas: 0x80, 0x40 a nivel de byte y las siguientes
variables 0x2000, 0x8000 a nivel de word y realizar un programa que realice las
siguientes multiplicaciones sea considerando en un caso como nmeros sin signo
(SS) y en otro como nmeros con signo (CS):
a) 0x80 * 0x40
b) 0x8000 * 0x2000
c) 0x80 * 0x8000
20.-) Definir las variables inicializadas: 0x80, 0x16 a nivel de byte y las siguientes
variables 0x2000, 0x10, 0x1000 a nivel de word y realizar un programa que
realice las siguientes divisiones, sea considerando en un caso como nmeros sin
signo (SS) y en otro como nmeros con signo (CS):
a) 0x2000 / 0x40
b) 0x80 / 0x16
c) 0x100000 / 0x2000
d) 0x2000 / 0x1000
PROGRAMAS EN LENGUAJE C
a) Traducir los siguientes programas escritos en lenguaje C a lenguaje
Esamblador:
1-)
// cdigo en lenguaje C
#include <stdio.h>
int a, b, c;
a=27;
b=541;
main()
{
c= a+b;
b=a;
}
2-)
#include <stdio.h>
// cdigo en lenguaje C
int a, b, c;
a= 27;
b= 541;
c= 32;
main()
{
c= (a+b)/c;
}
3-)
#include <stdio.h>
//cdigo en lenguaje C
unsigned a = 1;
unsigned b = 2;
unsigned c = 3;
main() {
a = b + c;
if (a == 4)
b = 3;
else
c = a & b;
while (a > 0) a--;
}
4-)
#include <stdio.h>
// cdigo en lenguaje C
int a, i;
a = 0;
main()
{
for(i=0; i<10; i++);
a = a + 1;
}
5-)
#include <stdio.h>
// cdigo en lenguaje C
//-------funcion---------
int f(int a, int b, int c)
{
return a*b + c;
}
//-------main------------
int main()
{
f(1, 2, 3);
return 0;
}
6-)
// cdigo en lenguaje C
#include <stdio.h>
void main()
{
f(5, 10, &suma, &producto);
};
gcc o P1 P1.c
Una vez que el compilador creo el programa ejecutable P1.exe, cargar dicho
programa ejecutable en el OllyDbg y comparar el programa ensamblador creado
por el compilador de lenguaje C gcc, con el programa escrito en forma manual
del primer punto.