instrukcja inline - TP

Odpowiedz Nowy wątek
2006-10-05 23:21
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)

Pozostało 580 znaków

2006-10-06 03:23
Mgr.Dobrowolski
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

Pozostało 580 znaków

2006-10-24 21:28
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.

Pozostało 580 znaków

2006-10-28 08:30
Mgr.Dobrowolski
0

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

Pozostało 580 znaków

2006-10-28 11:04
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.


<font color="red">Konto porzucone</span>

Dzięki wszystkim forumowiczom za lata wspólnych dyskusji; miłej zabawy w programowanie!
Sławomir 'Szczawik' Włodkowski

Pozostało 580 znaków

2006-11-06 15:05
Xeo
0

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

Pozostało 580 znaków

2006-11-19 18:21
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.

Pozostało 580 znaków

2006-11-21 10:15
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...

Pozostało 580 znaków

2006-11-21 14:57
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?


Mam nadzieję, że pomogłem :)

Łukasz Brodny

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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