Zmiňovat zrovna i386 u porovnání orthogonality instrukční sady nebyl úplně dobrý nápad ;) 8086 či 80286 na tom byly hodně špatně, ale s příchodem i386 většina instrukcí už akceptovala téměř jakoukoli kombinaci (s výjimkou adresace EIP, což se u PIC ukázalo jako dost problematické).
A jedna gramatická – lidí, kteří se podílelI (že by tam bylo původně osobností?).
Jinak samozřejmě děkuju za článek či spíše celou sérii, tyhle historické pohledy je radost číst.
Opravte me prosim jestli si to pamatuji presne (dnes uz asm na i386 nepouzivam), ale spousta instrukci IMHO ma stale implicitni registry, se kterymi pracuje.
Namatkou: AAA, AAM, DAA (uprava vysledku po aritmetickych operacich na ASCII nebo BCD tvar), ale take MOVS, MOVZX atd. – implicitni registry pouzite pro source a destination. Minimalne jeste na 486 a Pentiich tyto instrukce byly bezparametricke, tudiz neortogonalni.
Nehlede na to, ze ty dalsi kombinace se vytvari (opet AFAIK a FIXME) pomoci prefixovych opkodu, kdezto u PDP-11 je to vse v jednom slove (pekne oddelene tak, ze se da provadet rucni zpetny preklad z objektoveho kodu), podobne jako napriklad u MIPSu.
Spousta bych nepsal. Letmo jsem prolítnul dokumentaci a kromě zmíněných adjust BCD/DEC instrukcí (ale ty nikoho nezajímaly už v době vzniku, takže se jimi logicky Intel u i386 ani nezabýval) to je ještě XLAT (tam jsou asi stejné důvody), dále násobení/dělení (poněkud překvapivě pouze signed MUL zorthogonalizovaná byla). Ostatní jsou spíš speciality – IN/OUT, řetězové operace (zmíněný MOVS apod.), load/save flags, u kterých důvodem pro nerožšíření byl asi buď prostor a nebo jsou tak specificky využívané, že to nemělo smysl. Takže jediné, co bych i386 vytknul, by byly asi ty (I)DIV/MUL. V době Pentia pak vznikla ještě lehce neorthogonální CMPXCHG (jeden ze tří operandů je pevný), ale opět jde o dost specifickou věc. MOVZX a MOVSX vznikly až na i386 a orthogonální jsou.
Nové prefixy se AFAIK používaly pouze k rozlišení 16bit/32bit adresace a velikosti operandů (dva různé – daly se kombinovat), ale krk na to nedám ;)