![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#2
|
||||
|
||||
así se programa en ensamblador desde delphi?? se meten sentencias de esamblador?? como va eso?.Gracias román.
__________________
:) |
|
#3
|
||||
|
||||
|
Mira este ejemplo:
Código:
implementation
{$R *.DFM}
function Base10(Base2:Integer) : Integer; assembler;
asm
cmp eax,100000000 // check upper limit
jb @1 // ok
mov eax,-1 // error flag
jmp @exit // exit with -1
@1:
push ebx // save registers
push esi
xor esi,esi // result = 0
mov ebx,10 // diveder base 10
mov ecx,8 // 8 nibbles (10^8-1)
@2:
mov edx,0 // clear remainder
div ebx // eax DIV 10, edx mod 10
add esi,edx // result = result + remainder[i]
ror esi,4 // shift nibble
loop @2 // loop for all 8 nibbles
mov eax,esi // function result
pop esi // restore registers
pop ebx
@exit:
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(InTtostr(base10(41)));
end;
__________________
Guía de Estilo de los Foros Cita:
|
![]() |
|
|
|