Forum

From PMD 85 Infoserver

Jump to: navigation, search
:: back to start of topic :: back to topic list ::
Message
Author  Author ::  Roman Bórik
Posted  Posted ::  2009-07-14 09:07:39 AM
Subject  Subject ::  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]);

    daaTable[ii] = af;
  }
*/
WORD ChipCpu8080::daaTable[0x400] = { ... };

Pochopiteľne, jednotlivé inštrukcie sú spracovávané osobitne a predošlé tabuľky sú používané pre spoločné "vlastnosti".
:: back to start of topic :: back to topic list ::