Autor ::Roman Bórik Poslaná :: 14.07.2009 09:07:39 Predmet ::Re: Popis instrukci
Tabuľka pre DAA je tiež dopredu vygenerovaná a v kóde je ako pole wordov:
// Tabulka pre instrukciu DAA.
// bity 7:0 indexu predstavuju hodnotu z A pred vykonanim DAA
// bit 8 indexu je CY pred vykonanim DAA
// bit 9 indexu je AC pred vykonanim DAA
// vyssi byte hodnoty predstavuje hodnotu A po vykonani DAA
// nizsi byte hodnoty predstavuje nastavenie priznakov (F) po vykonani DAA
//
// Tabulka bola vytvorena nasledujucim algoritmom
/*
int ii;
WORD af;
BYTE byte;
for (ii = 0; ii < 0x400; ii++) {
byte = (ii & 0xFF);
af = 0;
if ((ii & 0x200) || (byte & 0x0F) > 9) { // AC
if ((byte & 0x0F) > 9)
af |= FLAG_AC;
byte += 6;
}
if ((ii & 0x100) || (byte & 0xF0) > 0x90) { // CY
byte += 0x60;
af |= FLAG_CY;
}
af |= ((byte << 8) | sz53p1Table[byte]);