A Z flag értéke 1, ha az ACC értéke csupa 0 0, ha az ACC értéke nem csupa 0. JNZ - ugrás, ha ACC nem 0 JZ - ugrás, ha ACC 0 JC - ugrás, ha a C flag be van álítva JN - ugrás, ha az N flag be van álítva CMPA után: Z flag 1 -re állítódik, ha az értékek =-ek, különben 0 C flag 1 -re állítódik, ha az ACC-ben lévő érték nagyobb mint a másik, különben 0 DECA után: N flag 1 -re állítódik, ha az eredmény MS bitje 1, különben 0 z flag 1 -re állítódik, ha az eredmény minden bitje 0, különben 0 DECX után: Z flag 1 -re állítódik, ha az eredmény bitjei mind 0-ák, különben 0 INCA után: N flag 1 -re állítódik, ha az eredmény MS bitje 1, különben 0 Z flag 1 -re állítódik, ha minden bit az eredményben 0, különben 0 INCX után: Z értéke 1 -re állítódik, ha minden bit az eredményben 0, különben 0 -------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------- Registers: ACC: Accumulator PC (Program Counter): A következő végrehajtandó utasításét heylét mutatja a memóriában. IR (Instruction Register): Az éppen végrehajtás alatt lévő uts kódját tárolja. Minden uts ami végrehajtódik az az IR-be töltődik, ami megőrzni azt a dekódoláskor, előkészítéskor és végrehajtáskor MAR (Memory Address Register): Memória r/w esetén az r/w kívánt memóriarekesz címét tartalmazza. MDR (Memory Data Register): Memória r/w esetén az r/w kívánt memóriarekesz tartalmát tartalmazza. SR (Status Register): A CPU és a futó prg állapotát leíró információt tárolja. Az SR használja a flageket. X: Index Register SP: Stack Pointer IV: Interrrupt Vector -------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------- LDA: Memóriából az ACC-be tölt adatot. STA: Az ACC-ből átmásolja valahová (memoria,maindisp,sixleds, stb) az adatot. BLDX: A memóriában lévő adatot betölti az index registerbe. BSTX: Az index register tartalmát a memóriába tölti. BLSDP $EFFF: A Stack Pointer kezdőértéket beállítja $EFFF -re SETIM: Megszakítás figyelés bekapcsolása IRQ mask: Engedélyezi, vagy tiltja a megszakítások figyelését Beállítása: SETIM Kikapcsolása: CLRIM BLDIV KECSKE KECSKE: ...uts-ok... RTI Interrupt vektor: A megszakításkezető szubrutin címét tárolja. Beállítása: BLDIV "vmi" Megszakításkor a "KECSKE:" cimke által jelölt memóriaterületen lévő uts sorozatot futtatja végig. Fontos megjegyezni, hogy az Interrupt végénél az RTI (ReTurn from Interrupt) parancsot kell tenni PUSHA: Az ACC tartalmát a verembe rakja POPA: A verem tetejéről leveszi az értéket és az ACC-be rakja PUSHSR: A státuszregiszter tartalmát a verem tetejére írja POPSR: A státuszregiszterbe írja a verem tetején lévő bájtot. -------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------- DMA (Direct Memory Access) Közvetlen Memória Elérés lényege az, hogy amikor az I/O eszköz és a memória között a CPU közreműködése nélkül történhet adatátvitel. Programozott I/O kezelésről akkor beszélünk, haz a I/O eszköz működését a CPU irányítja.