Assembler + C
-
hallo kann mir jemand sagen was ich falsch gemacht habe
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
WORD Get()
{
WORD value3 = 0;
DWORD value4 = 0;
__asm
{
mov ax,0ffffh
mov ds,ax
mov si,0eh
mov ax,ds:si //aufgrund dieser zeile bekomme ich eine fehlermeldung
mov value3,ax
}
double inhalt=value3;
return (WORD)inhalt;
}int main(int argc, char* argv[])
{
printf("%i",(int)Get());
return 0;
}
-
Wirst wohl eine eckige Klammer um si brauchen. Aber dass das unter Windows nicht funktionieren kann, ist dir hoffentlich schon klar, oder?
-
ne das war mir nicht klar
mov ax,0ffffh
mov ds,ax
mov si,0eh
mov eax,ds:[esi]
mov value4,eaxdas gibt keine fehlermeldung beim kompilieren
sag mir doch bitte wie ich es schaffe diese addresse unter windows unter der benutzung des msvc 6.0 auszulesen
-
weil windoof u.a. mit virtuellen adressen arbeitet. vielleicht hilft dir das hier weiter: http://www.phrack.org/phrack/59/p59-0x10.txt
-
hi,
man kann unter windows nicht einfach ds ändern!
Sollte einen GPF schmeißen, da protected-mode.