instrukcja inline - TP

0

Mam pewien kłopot z tą instrukcją, tzn. chcę zrobić dla siebie program, który z niej korzysta (jednak nie znam jej, ale wiem, że raczej lepszego rozwiązania nie znajdę...)
Chcę zrobić program, który z danego pliku odczytuje sekwencję kodu maszynowego i wykonuje to co w danym momencie powinien.

W pascalu występuje instukcja inline, która działa w następujący sposób:
procedure FillWord(var Dest; Count: Word; Data: Word);
begin
inline($C4/$7E/<Dest/$8B/$4E/<Count/$8B/$46/<Data/$FC/$F3/$AB);
end;

zadziała tak samo jak:
procedure FillWord(var Dest; Count: Word; Data: Word);
begin
asm
LES DI,Dest[BP]
MOV CX,Count[BP]
MOV AX,Data[BP]
CLD
REP STOSW
end;
end;
czyli wypełni dany adres podaną ilością słów.

Moje pytanie brzmi: skąd mam się dowiedzieć, jaka wartość odpowiada jakiej instrukcji? (w powyższym przykładzie CLD ma wartość 207 =$FC)

0

Można z www.intel.com pobrać ?IA-32 Intel? Architecture Software Developer?s Manual? trzy cegły.

Albo:

Menu start/uruchom debug
a100
les di,44[bp]
mov cx,44[bp]
mov ax,44[bp]
cld
rep stosw
(samo enter)
kiedy zapisujesz inline?a w TP, oczywiście zamiast ?44? wpiszesz to co trzeba

u100
wyświetli wprowadzony kod
d100
też ciekawe

0

Sorki, że tak późno, ale forum jakoś długo mi nie działało... Ale dzięki - nie wiedziałem o takim programie jak debug :) Czyli to co wpiszę (w asemblerze), to on mi wyświetla jako kod maszynowy ta? I wszystkie instrukcje mogę sprawdzić ręcznie :)

Mam nadzieję, że też nauczę się takich ciekawych rzeczy jak ty po studiach, bo na razie same nudy :P.

0

Mam nadzieję, że kiedy pójdę na studia to też nauczę się czegoś ciekawego. Jakoś ostatnio nie miałem czasu ;-)

0

Na studia nie licz. Takich tricków trzeba się nauczyć samemu, bo na ogół wykładowcy nie mają o nich pojęcia - chyba, że sami są prawdziwymi zapaleńcami.

0

Sorry, ale debugowanie to raczej nie jest żąden trick...:P

0

No nie jest, ale jak się czegoś nie zna... W zasadzie nie znam nikogo, kto mógłby powiedzieć, że wiedział o czymś takim.

@mgr Dobrowolski: Myślałem, że mgr to twój tytuł :)

Poza tym, to jeszcze wierzyłem, że jednak może się czegoś nauczę, ale skoro mówicie, że nie to szkoda :)

Pozdrawiam.

0

Ej, no ja wiedziałem, a uczę studentów na PW. :P
I znam też co najmniej 2 innych wykładowców, którzy takie rzeczy mają w jednym palcu. Słyszałem też, że poprawki zaproponowane przez jednego z nich zostały uwzględnione nawet przez AMD w którejś tam wersji ich procesorów...

0

No ale patrz wyżej. Jeśli ktoś lubi to, co robi, interesuje się tym, co coś o tym wie, w końcu to chyba logiczne?

1 użytkowników online, w tym zalogowanych: 0, gości: 1