Re: ASM - Typ procesora

Autor: Pawel Komos (cmos_at_szc.ternet.pl)
Data: Fri 11 Apr 1997 - 22:40:28 MET DST


TABOR <tabor_at_infoserv.ii.uj.edu.pl> napisał(a) w artykule
<5il71j$m75$2_at_info.cyf-kr.edu.pl>...
> Ponizsza funkcja assemblerowa rozpoznaje typ procesora. Znam na tyle
> assembler, ze rozumiem poszczegolne operacje, ale sensu calosci
> zupelnie nie "jarze" (tzn. zdaje sobie sprawe, ze operacje te maja zmusic
> procesor do popelnienia jakiegos charakterystycznego bledu, czyli
powiedzenia
> "Jam jest", ale jest tu tego tak duzo, ze potrafie sie domyslic z jakich
> "kruczkow" skorzystano).

Jak sobie przypominam (ostroznie: dawno sie tym nie zajmowalem) to:
- w 8086 4 najwyzsze bity flag byly nie wykorzystane
- w 286 sprawdzalo sie czy bit real/protected mode we flagach nie daje sie
zmieniac
- od 386 identyfikacja modelu CPU pojawia sie po resecie w rejstrze EDX -
czyta go BIOS ale wartosc chyba nie przetrwa do bootstrapu.
- w jakims momencie (chyba od 486) pojawily sie specjalne rejestry, w
ktorych byla identyfikacja modelu CPU i rozkaz CPUID (kod 0f, A2). Ale
uwaga: nie wszyscy producenci implemetowali ten rozkaz - trzeba przed
wykonaniem przechwycic INT6.

> Interesuja mnie rowniez informacje o kodach rozkazow:
> xadd dx, dx
> setb ah
> smsw dx

Te ostatni to Store Machine State Word - wrzuca flagi do podanego rejestru.
A moze pod DS:Rejestr? - wypadlem juz zupelnie z zaawansowanego
programowania w assemblerze a dokumentacji nie mam pod reka :-(.

Pozdrowienia
--------------
Pawel Komos
cmos_at_szc.ternet.pl



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 16:01:55 MET DST