Hola ya hacia tiempo que no me surgia una duda con mis trabajos en c y asm, bueno tengo una duda, estoy tratando de resolver el siguiente problema:
"Autogenerar el codigo de un alumno tomando como datos los dos primeros caracteres del apellido paterno y el segundo y tercer caracter del apellido paterno"
esto es algo mas o menos asi:
Suponiendo que la entrada es esta:
Death Hell Arise
el codigo a generar quedaria de la siguiente manera:
Heri
y pues lo estaba haciendo muy tranquilo hasta que me surgio este error para ser precisos en el bloque de asm "combinacion invalida de opcode y operandos"
el codigo que estoy construyendo es el siguiente:
#include <conio.h>
#include <stdio.h>
void main (void)
{
clrscr();
int aux;
char nombre[40], ap_p[15], ap_m[15];
printf("Nombre?n");
gets(nombre);
printf("Apellido Paterno?n");
gets(ap_p);
printf("Apellido Materno?n");
gets(ap_m);
printf("Tu nombre es:%s ",nombre);
printf("%s ",ap_p);
printf("%s ",ap_m);
Ap_Pat:
asm mov cx,1
asm{
mov si,0
mov ax,ap_p[si]
<-- Aqui me aparece el error T_T
inc si
push cx
}
asm pop cx
asm loop Ap_Pat
getch();
}
y no se por que, se supone que lo que quiero hacer es mover el indice si a la posicion 0 que seria la posicion del primer caracter del apellido paterno y de hay mandarla a ax, creo que el problema esta en que ax no guarda letras o no se, si me pueden hechar una mano se los agradecere, el programa no esta terminado pro pues hay me trabe por que ya no puedo continuar, no pido que lo terminen solo me gustaria que me dijeran como puedo destrabarlo por asi decirlo jeje, salu2 y gracias de antemano