Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

[Inline Assenbler] LDT Base / Limit - Programmabsturz

  Alt 16. Sep 2007, 10:21
Hey,

ich versuche die LDT Base und das LDT Limit über inline Assembler zu ermitteln. Folgenden Code habe ich gefunden:

Delphi-Quellcode:
asm
  sgdt fword ptr [gdtr]
  sldt [ldtr]
  mov eax, dword ptr[gdtr+2]
  mov [gdt],eax // GDT Base

  movzx ebx, word ptr [ldtr]
  and bl,11111000b
  add ebx,eax // Addr. des LDT Deskriptors

  mov ax,[ebx]
  mov [ldt_limit],ax // LDT Limit (die unteren 16 bits reichen)

  mov ah,[ebx+7]
  mov al,[ebx+4]
  shl eax,16
  mov ax,[ebx+2]
  mov [ldt],eax
end;
Dieser lässt sich allerdings nur bis mov ax,[ebx] ausführen. Danach verabschiedet sich das Testprogramm ohne jedliche Exception.

Hat jemand ne Idee woran das liegen könnte?

Gruß
  Mit Zitat antworten Zitat