Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > ASM y Microcontroladores
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-10-2008
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 17
TOPX Va camino a la fama
Hola,

Ahora yo, con mi interpretación de la cuestión; que espero no estar enredando las cosas.

Pues, ya que este hilo está en "ASM y Microcontroladores", es posible que trate de Assembler "en línea" y que lo que busque esté aquí.
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #2  
Antiguo 16-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por TOPX Ver Mensaje
Hola,

Ahora yo, con mi interpretación de la cuestión; que espero no estar enredando las cosas.

Pues, ya que este hilo está en "ASM y Microcontroladores", es posible que trate de Assembler "en línea" y que lo que busque esté aquí.
Pues como digo, tal vez me equivoque con el requerimiento de mario2000, pero esto funciona en delphi con ASM.

Código Delphi [-]
procedure WritePort(Port: word; Value: byte);
asm
 push word ptr Port
 mov al, Value
 pop dx
 out dx, al
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  WritePort(1016,ord('A'));
  WritePort(1016,65);
  WritePort($3F8,65);
  WritePort($3F8,$41);
end;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #3  
Antiguo 16-10-2008
mario2000 mario2000 is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
mario2000 Va por buen camino
Hola amigos gracias por sus respuestas, acerca de la representacion numerica en delphi lo que quiero es hacer esto:

Por ejemplo si tengo una variable asi:

var
dat:byte;
begin
dat:=$0f;
end;

con representacion binaria quedaria si fuese con el signo digamos % como en mikropascal claro pero en delphi asi :
var
dat:byte;
begin
dat:=%00001111;
end;

asi si por ejemplo quiero cambiar un bit solo tengo que cambiar el bit sin preocupaciones de esta manera digamos que es el bit 2 de 1 a 0 asi:

var
dat:byte;
begin
dat:=%00001011;
end;

ya me entienden es por comodidad ya que estoy trabajando con puertos y nesesito que la cosa no se me complique

Gracias por vuestros comentarios espero que ahora si puedan alludarme
Responder Con Cita
  #4  
Antiguo 16-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por mario2000 Ver Mensaje
Hola amigos gracias por sus respuestas, acerca de la representacion numerica en delphi lo que quiero es hacer esto:

Por ejemplo si tengo una variable asi:

var
dat:byte;
begin
dat:=$0f;
end;

con representacion binaria quedaria si fuese con el signo digamos % como en mikropascal claro pero en delphi asi :
var
dat:byte;
begin
dat:=%00001111;
end;

asi si por ejemplo quiero cambiar un bit solo tengo que cambiar el bit sin preocupaciones de esta manera digamos que es el bit 2 de 1 a 0 asi:

var
dat:byte;
begin
dat:=%00001011;
end;

ya me entienden es por comodidad ya que estoy trabajando con puertos y nesesito que la cosa no se me complique

Gracias por vuestros comentarios espero que ahora si puedan alludarme
Hola Mario.
Estas trabajando con puertos y no te quieres complicar.Una pregunta ¿tu lo que quieres es a la hora de programar poder visualizar los pines del puerto?
¿Es por eso que quieres ponerlos en binario?

Un Saludo.
Responder Con Cita
  #5  
Antiguo 16-10-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola Mario.

No se porque llamas complicarte trabajar con hex.

La metrica es muy simple y un programador de micros debe dominarla sin mucho problema:

Binarios: 0 0 0 0 1 0 1 0 b

Decimal: 10

Hex: 0A

Si partimos de binarios : 00001010b los separamos en dos grupos de 4 tenemos 0 0 0 0 1 0 1 0 b

sus valores decimal son 128 64 32 16 8 4 2 1 es lo que valen

estos bits su suma total = 255 Dec

Los Hex son los mas nobles de todos: son dos caracteres 0A en el caso del ejemplo 00001010 Bin > 10 Dec > 0A Hex

Separamos los hex en dos 0 A cada uno de ellos tiene 4 bits 1010b

0 0 0 0 estos son los menos significativos bits de un byte su valor minimo "0" su valor maximo 15 si los tenemos todos a 1 1 1 1 = 15 dec = A hex

solo son 16 a memorizar y si nos fijamos en elgo el bit 0 solo estara a 1 si el numero es none (impar) nunca estara seteando en los numeros pares.

porque decimos que 1 0 1 0 = 10 dec y A hex muy facil solo estan dos de los 4 bits seteados a 1 el que vale 8 y el que vale 2 , 8+2=10 dec despues del 9 en hex tenemos la A .

A = 10
B = 11
C = 12
D = 13
E = 14
F = 15

Un hex como decia esta compuesto por dos caracteres "0A"

si los miras asi 5AH los separas en tu mente y dices 5 tiene el primero seteado porque impar ya sabes que tienes el primero "1" uno mas 4 es 5 bingo! 0 1 0 1 tienes los 4 mas significativos bit del byte.
entonces tenemos A que es 10 dec el primero no estara seteado porque es pare. entonces tenemos que 8 y 2 son 10=Ah 1 0 1 0 bingo!

0101 1010 = 5AH


Cuando dominas esta metrica no tienes problemas en con una pasadita de vista decir tal o mas cual.


Un Saludo.


PD: Para programar micros no hace falta aprenderte esta metrica.Pero si la dominas muchas cosas podras ver dentro de los files Intelhex, Hex y Binarios.
Responder Con Cita
  #6  
Antiguo 17-10-2008
mario2000 mario2000 is offline
Miembro
 
Registrado: abr 2007
Posts: 109
Poder: 18
mario2000 Va por buen camino
Eso ya lo sabia, pero por las respuestas parese que no existe esa representacion en delphi, de todas maneras si alguien sabe si se puede muchas gracias.
Responder Con Cita
  #7  
Antiguo 17-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por mario2000 Ver Mensaje
Eso ya lo sabia, pero por las respuestas parese que no existe esa representacion en delphi, de todas maneras si alguien sabe si se puede muchas gracias.
Insisto, tu puedes convertir un valor hexadecimal o decimal a Binario, lo que no entiendo es para que quieres enviarlo forzosamente como binario si al final lo que envias al puerto siempre es un byte.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
error con consulta numerica raulmm26 SQL 32 04-10-2008 13:30:00
Una duda numérica jafl1965 Humor 36 07-11-2007 00:55:59
Consulta numerica alcides SQL 4 05-08-2005 15:50:20
Extraer referencia numerica de un texto asegurpe Varios 4 13-06-2005 13:39:43
Crear secuencia numerica con un procedimiento almacenado DobleSiete SQL 9 15-04-2005 22:28:25


La franja horaria es GMT +2. Ahora son las 06:09:43.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi