Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi'de asm kullanımı yardım
#1
Bu codu delphide nasıl calıştırırm.. Nasm de obj link olarak calışıyor fakat delphi  hata veriyor..  
mov   [esi],dword @ReturnToPM   //  <----- HATA VEREN KISM

procedure JumpToRM(); stdcall;
var
  save_ss:Word;
  save_esp:Integer;
  save_cr3:Integer;
  save_cr0:Integer;
begin
 asm
   pusha
   pushf


   call  _IDT_RemapIRQRM
   mov   al,$FF
   out   $A1,al
   out   $21,al

   mov   ax,ss
   mov   [save_ss],ax
   mov   eax,esp
   mov   [save_esp],eax
   mov   eax,cr3
   mov   [save_cr3],eax
   mov   eax,cr0
   mov   [save_cr0],eax
   and   eax,$7FFFFFFF
   mov   cr0,eax
   mov   esi,$7CFC
   mov   [esi],dword @ReturnToPM   //  <----- HATA VEREN KISIM
   mov   ax,$30
   mov   ds,ax
   mov   es,ax
   mov   fs,ax
   mov   gs,ax
   db $EA
   dd $7D00, $28

@@ReturnToPM:

   mov   ax,$10
   mov   ds,ax
   mov   es,ax

   mov   ax, [save_ss]
   mov   ss,ax
   mov   eax,[save_esp]
   mov   esp,eax
   mov      eax,[save_cr3]
   mov   cr3,eax
   mov      eax,[save_cr0]
   mov   cr0,eax


   call  _IDT_RemapIRQPM
   call  _IDT_RestoreIRQs
   mov   al,$20
   out   $A0,al
   out   $20,al

   popf
   popa
   ret


 end;


end;

codun orjinali

EXTERN _IDT_RemapIRQPM
EXTERN _IDT_RemapIRQRM
EXTERN _IDT_RestoreIRQs



global BIOS_JumpToRM
BIOS_JumpToRM:
pusha
pushf

; Disable all IRQs
call _IDT_RemapIRQRM
mov al,0xFF
out 0xA1,al
out 0x21,al

mov ax,ss
mov [save_ss],ax ; Save SS
mov eax,esp
mov [save_esp],eax ; Save ESP
mov eax,cr3
mov [save_cr3],eax ; Save CR3
mov eax,cr0
mov [save_cr0],eax ; Save CR0
and eax,0x7FFFFFFF ; Disable PG.
mov cr0,eax

; Store the address of return code to 0x7CFC
mov esi,0x7CFC
mov [esi],dword .ReturnToPM

; Setup 16bit protected mode registers
mov ax,0x30
mov ds,ax
mov es,ax
mov fs,ax
mov gs,ax

jmp 0x28:0x7D00

.ReturnToPM:
; Restore protected-mode registers
mov ax,0x10
mov ds,ax
mov es,ax

mov ax, [save_ss]
mov ss,ax
mov eax,[save_esp]
mov esp,eax
mov eax,[save_cr3]
mov cr3,eax
mov eax,[save_cr0]
mov cr0,eax

; Enable all IRQs
call _IDT_RemapIRQPM
call _IDT_RestoreIRQs
mov al,0x20
out 0xA0,al
out 0x20,al

popf
popa
ret

save_cr0:
dd 0
save_cr3:
dd 0
save_esp:
dd 0
save_ss:
dw 0
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi virus gibi deutsch1988 11 389 12-04-2024, Saat: 17:36
Son Yorum: deutsch1988
  functionda yardim editleme deutsch1988 0 137 08-04-2024, Saat: 22:38
Son Yorum: deutsch1988
  Delphi 7 Unrar mcuyan 12 651 19-03-2024, Saat: 10:30
Son Yorum: frmman
Lightbulb Delphi 7zip Password lü Dosya Sıkıştırma ve Açma + Bonus RAR5 Desteği frmman 6 306 16-03-2024, Saat: 17:55
Son Yorum: delphi.developer
  yardim HEX file deutsch1988 1 449 07-03-2024, Saat: 06:45
Son Yorum: emozgun



Konuyu Okuyanlar: 1 Ziyaretçi