[C con Clase] [Bulk] Problemas con assembler...

Jose Rubiel Castrillón Garcia josecastrillon en gmail.com
Mie Nov 7 01:59:30 CET 2007


Trate de implementar el siguiente codigo pero me saca el error:


could no locate: TASM32.EXE

#include <stdio.h>
#include <conio.h>


void main()
{
  char vec[20];
  int i,let;

  printf("Digite el numero de letras del vector: ");
  scanf("%d",&let);

  for(i=0;i<let;i++)
    {
      printf("Digite las letra %d del vector  ",(i+1));
      scanf("%s",&vec[i]);
    }
  asm{
       lea eax, vec
       mov ebx, let
       mov ecx, 0

       ciclo: mov dl,[eax]
              cmp dl, 65
              jl siga
              cmp dl, 90
              jg siga
              mov [eax], dl
              inc ecx
              add eax, 1
        siga:
             add eax, 1
             loop ciclo
  	  }


}

MUCHISIMAS GRACIAS..


El 6/11/07, Steven Richard Davidson <stevenrichard.davidson en gmail.com> escribió:
> Hola José Rubiel,
>
> On 11/6/07, Jose Rubiel Castrillón Garcia <josecastrillon en gmail.com> wrote:
> >
> > estoy utilizando como compilador el borland c++, primero me gustaria saber
> > si este compilador es apto para combinarlo con el assembler y segundo los
> > ejercicios que he hecho con assembler primero no me han corrido, segundo
> > quisiera saber mas sobre este tema..
> >
>
> Bueno, Zelion te ha respondido, pero quiero agregar a lo dicho.
>
> El estándar del lenguaje C++ acepta código de ensamblador embebido. La
> sintaxis es la siguiente:
>
> asm( <cadena_de_caracteres> );
>
> Por ejemplo,
>
> asm( "mov ax, 0x20\n" );
> asm( "mov bx, 0x2a\n" );
> asm( "add ax, bx\n" );
> asm( "sub bx, 0xa9\n" );
>
> Básicamente, lo que escribas en las cadenas de caracteres será copiado
> al programa generado en ensamblador tal y como está. También podríamos
> haber escrito,
>
> asm( "mov ax, 0x20\n"
>         "mov bx, 0x2a\n"
>         "add ax, bx\n"
>         "sub bx, 0xa9\n" );
>
>
> Si usas Borland C++ 5.xx o anterior, este compilador no está
> actualizado a la última revisión del lenguaje C++. Una de las
> diferencias de la normativa está en que BC++ usa su propio sintaxis
> para ofrecer instrucciones en ensamblador para C y C++. Su sintaxis
> (no estándar) es:
>
> asm <instrucción> <parámetros> <; o nueva_línea>
>
> También puedes usar '_asm' o '__asm'. Lo típico es agrupar todas las
> instrucciones de ensamblador. Para ello, puedes usar llaves {}. Por
> ejemplo,
>
> asm
> {
>   mov ax, 0x20
>   mov bx, 0x2a
>   add ax, bx
>   sub bx, 0xa9
> }
>
> Si tienes Borland Builder C++, por lo que he comprobado, sólo acepta
> la sintaxis de Borland y no la estándar de C++. Es posible que en
> versiones más recientes de Builder, el compilador implemente el
> estándar para este aspecto.
>
>
> Espero que esto te sirva.
>
> Steven
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>




Más información sobre la lista de distribución Cconclase