Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Delphi y las interrupciones de Ensamblador (https://www.clubdelphi.com/foros/showthread.php?t=49694)

aeff 27-10-2007 01:31:00

Delphi y las interrupciones de Ensamblador
 
saludos,

mire, aún no logro entender por que Delphi no permite que en nuestros porgramas nos "expresemos libremente con el lenguaje Ensamblador",

cuando trato de llamar alguna interrupción en alguna línea de codigo en Delphi el programa al ejecutarla emite errores,

por ejemplo, usando la interrupción de video de la BIOS, 10h

un ejemplo de de un programa hecho en consola para posicionar el cursor del "DOS" en x; y que querramos,

Código Delphi [-]
program Project1;
{$APPTYPE CONSOLE}
uses
  SysUtils;
begin
asm
 mov ah, 02h
 mov al, 5  //fila
 mov dl, 5  //columna
 int 10h
end;
  readln;
end.

sería el caso, poner el cursor en x= 5 & y=5; pero no funciona, ¿por qué?

alguien puede tirar algo aquí,

saludos!

cHackAll 27-10-2007 02:22:57

Bueno, me hice la misma pregunta en algun momento; si quieres hacer lo que mostraste en tu anterior post tendras que hacerlo con Turbo Pascal.

las interrupciones solo estan disponibles para el HAL (Hardware Abstract Layer), ring 0 (anillo mayormente privilegiado) del Güindos... lastimosamente si quieres hacer algo realmente de bajo nivel deberás meterte con la DDK del Güindos.

Saludos de bajo nivel.

aeff 27-10-2007 02:27:56

hmm! no entendi, solo un 1% de lo que acabas de decirme es lo que entiendo, ¿me explicas mejor?

cHackAll 27-10-2007 02:28:04

Me olvidaba: usa SetConsoleCursorPosition

cHackAll 27-10-2007 02:36:39

Cita:

Empezado por aeff (Mensaje 241622)
hmm! no entendi solo un 1% de lo que acabas de decirme, ¿me explicas mejor?

NT
Interrupciónes
anillo 0
HAL

DDK

Seguridad y control

PD: Si algún link no te funciona me avisas para que te copie un trozo de la pagina.
Edito: DDK

Saludos.

aeff 27-10-2007 02:43:56

y donde está es funcion implementada, en que Unit, yo uso Delphi 5

saludos! los link si me funcionan, esos si! Wikipedia, hmm! ahi si puedo llegar, gracias hermano,

aeff!

aeff 27-10-2007 02:52:11

ahhh! ya, Windows.pas, pero amigo, el codigo que puse arriba de ASM era solo de ejemplo, no tenia interes de hacer esto hasta ahora que me lo acabas de despertar,

¿como se usa esta función despues de todo?

gracias!

cHackAll 27-10-2007 02:56:37

Cita:

Empezado por aeff
y donde está es funcion implementada, en que Unit, yo uso Delphi 5...

Te refieres a SetConsoleCursorPosition ??? supongo que si, en tal caso la definición de esa API debería estar en la unidad Windows (como la mayoria de las APIs básicas)

pero porsiacaso:

Código Delphi [-]
function SetConsoleCursorPositionhConsoleOutput: THandle; dwCursorPosition: TCoord): BOOL; stdcall; external kernel32;

Espero la tengas definida porque si no tendras mucho trabajo:

Código:

SetConsoleCtrlHandler()
 SetConsoleCursorPosition()
 SetConsoleMode()
 SetConsoleOutputCP()
 SetConsoleScreenBufferSize()
 SetConsoleTextAttribute()
 SetConsoleTitle()
 SetConsoleTitleA()
 SetConsoleTitleW()
 SetConsoleWindowInfo()
 SetConsoleCursorPosition()
 
ETC, ETC....


cHackAll 27-10-2007 02:59:08

Cita:

Empezado por aeff (Mensaje 241629)
...¿como se usa esta función despues de todo?...

RTFM (ese ya es otro tema)

Saludos.

aeff 27-10-2007 03:09:08

en eso mismo estaba yo pensando, me estoy adaptando a que me respondan mis questiones aqui en el Club y no me pongo a investigar, je je je,

saludos cHackAll!


La franja horaria es GMT +2. Ahora son las 05:53:53.

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