Prawdopodobnie pytanie zostało już zadane i za to wielkie sorki, ale wyszukiwanie odpowiedzi na nie w google'u i tym forum, po jednym dniu czytania wieelu postów i tekstów nic nie dało. (jak znajdziesz mi na nie odpowiedziedź to możesz się czepiać ;) )
Przeczytałem superłopatologiczny tutorial o asm, kompilowany jako 'asm ... end;' w pascalu. Chciałem spróbować w Delphi zamiast tego. 'asm ... end;' jest, ale prawie nic w nim nie działa..
Skopiowałem programik wrzucający cośtam do pamięci- błąd.
Program ten-
"
program Project1;
{$APPTYPE CONSOLE} //Konsolowy program (nieGUI, żeby wykrzyknik sie wyświetlił)
uses
SysUtils;
begin
asm //skopiowane z tutoriala
mov ax, $B800
mov es, ax
mov al, 33
mov es:0, al
end; //powinien przenieść 33 do $B800 w pamięci= wyświetlić wykrzyknik.
end.
"
Program ten- powiesił najpierw siebie, potem pokolei wszystkie inne... (oprócz Opery i Winampa ?- ) w tym bezpowrotnie exploder'a.. (jakiśtam błąd kernela [?]- więcej chyba wywnioskujecie z samego programu niż z numerku błędu.)
Pytanie 1. jakie są ograniczenia w używaniu ASM w Delphi? W help'ie coś było, ale nic co mogło by wytłumaczyć te błędy
Pytanie 2. Jakiego ASM'a używać do nauki? Przeczytałem cały artykuł o tym, najlepszy jest chyba do tego HLA, ewentualnie MASM... Ale ja chce ASM'a w Delphi ;-( (właśnie- jaki ASM jest 'wbudowany' w Delphi??)