Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

para LEO y otros / C++ = ASM

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: para LEO y otros / C++ = ASM Responder citando

Porque en ensamblador solo me recoge de 0 a 127
Porque me dice que no lo reconoce = ( ffh = 255 )
compilando desde C++Builder5 ?

void __fastcall TForm1::Button1Click(TObject *Sender)
{
asm
{
mov dx, 378h // direccion puerto LPT1
mov al, 7fh // 7fh = 127
out dx, al // saca por el puerto <al>
}}
//------------------------------------------------------------------------------
Otra = sabes como pasar el valor de una variable de
C++Builder5 a ensamblador ?

void puerto(long valor) // no me funciona de ninguna forma
{
asm
{
mov dx, 378h // direccion puerto LPT1
mov al, valor // variable
out dx, al // saca por el puerto <127>
}}
//------------------------------------------------------------------------------
puerto(127); // llamada
//.................................gracias anticipadas !!
Volver arriba
Mensaje    Asunto: Responder citando

¥ ê ¥.

Mira en la primera pregunta creo que no te reconoce ffh por que lo toma como una etiqueta y lo tienes que agregar un 0 antes del ffh, quedaria de la siguiente manera: 0ffh.

y en la segunda pregunta tambien creo que tienes que declarar la variable valor de tipo byte.

No estoy seguro de lo que digo pero creo que es asi.

Intentalo y despues me dices.

Salu2
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: ASM Responder citando

En la primera pregunta creo que el problema esta en la falta del 0 antes de las letras, esto es un fallo de algunos compiladores en los que un número hexagesimal tiene que empezar por un dígito, de tal forma que quedaría así

mov al,0ffh

La seguna preguna es un problema de tipo, estás intentando asignarle a un Byte (al) un número de 32 bits ( LONG)
En la cabecera debería aparecer un tipo char o unsigned char ( o un BYTE que es lo mismo)

Saludos Manolo
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.