Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/01/2011, 07:14
frankito5
 
Fecha de Ingreso: enero-2011
Mensajes: 2
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: C con MMX ensamblador

Hola,

yo también estoy intentando aprender como va MMX. Si alguien pudiera ayudarme lo agradeceria mucho. Tengo que hacer un programa que cuente el numero de veces que aparece un caracter en una cadena. La cadena y el caracter se introducen por la entrada estandar. Ejemplo:

Cadena: hola mundo
Caracter: o
Aparece 2 veces.

Lo tengo hecho en x86 pero debo pasarlo a MMX y no se como. Adjunto el código en x86 por si sirve de ayuda. Mil gracias de antemano!

section .text
global countchr

countchr:
push ebp
mov ebp, esp
mov edx, [ebp+8]
mov ecx, 0

lop1: mov al,[edx]
test al,al
jz fin
cmp al, [ebp+12]
jne no
add ecx, 1

no: inc edx
jmp lop1

fin: mov eax, ecx
mov esp, ebp
pop ebp
ret

Aqui adjunto el programa en C para leer los parámetros:

#include <stdio.h>
#include <string.h>

int countchr(char *str, char c);

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

char cad[100];
char car;
int res;

printf("String: ");
fgets(cad,100,stdin);
printf("Character: ");
scanf("%c",&car);

res=countchr(cad,car);
printf("%d\n",res);

return 0;