DEC, INC parancsok működése

DEC, INC parancsok működése
2018-01-17T21:02:44+01:00
2018-01-17T21:57:12+01:00
2022-10-15T21:31:33+02:00
Emendre
Sziasztok!

Kipróbálni most nem tudom, és infót nem igazán találok arról, hogy Commodore-on a DEC / INC parancsok pontosan hogyan működnek.
Igazából az érdekelne, hogy amikor a megadott memóriacím értékét megnöveli, vagy csökkenti, akkor az új adat bekerül-e az X, vagy Y regiszterbe? Vagy a parancs lefutása után marad az X, Y regiszter, így az ALU is a parancs előtti értékeken?

Bónusz kérdés, hogy tudtok-e ennyire mélyre szántó szakirodalmat ebben a témában?
A legjobb amit én találtam az a C64 Wiki, de sajnos ennyire az sem részletezi a parancsok működését.
Mutasd a teljes hozzászólást!
Hali!

Igazából az érdekelne, hogy amikor a megadott memóriacím értékét megnöveli, vagy csökkenti, akkor az új adat bekerül-e az X, vagy Y regiszterbe?

Nem, az INC/DEC közvetlenül a megcímzett memória tartalmát növeli/csökkenti eggyel. Az „index-regiszterek” (X, Y) növelésére/csökkentésére INX/DEX és INY/DEY való. Az akkumulátorra nincs ilyen lehetőség.

Vagy a parancs lefutása után marad az X, Y regiszter, így az ALU is a parancs előtti értékeken?

Igen, nem változtatja az X és Y regisztert, és az akkumulátort sem (ha ALU alatt azt értetted). Bizonyos flag-eket viszont változtathat.

Bónusz kérdés, hogy tudtok-e ennyire mélyre szántó szakirodalmat ebben a témában?

A következő Data-Becker-kiadásban megjelent könyveket ajánlom (akár fizikai, akár digitális formában):
- A Commodore 64-es belső felépítése
- Gépi kódú programozás a Commodore 64-esen
- Gépi kódú programozás haladóknak C64 & PC128
- További tippek és trükkök a Commodore 64-eshez

Gyakorláshoz pedig: CBM .prg Studio

Mutasd a teljes hozzászólást!

  • A növelés/csökkentés mindig arra a regiszterre vagy memóriára vonatkozik, ami az utasítás (magyarul: instruction) operandusa.
    Bónusz válasz: '6502 instruction set'-re keress. (Vagy 6510, ha precízkedni akarunk.)
    Mutasd a teljes hozzászólást!
  • Hali!

    Igazából az érdekelne, hogy amikor a megadott memóriacím értékét megnöveli, vagy csökkenti, akkor az új adat bekerül-e az X, vagy Y regiszterbe?

    Nem, az INC/DEC közvetlenül a megcímzett memória tartalmát növeli/csökkenti eggyel. Az „index-regiszterek” (X, Y) növelésére/csökkentésére INX/DEX és INY/DEY való. Az akkumulátorra nincs ilyen lehetőség.

    Vagy a parancs lefutása után marad az X, Y regiszter, így az ALU is a parancs előtti értékeken?

    Igen, nem változtatja az X és Y regisztert, és az akkumulátort sem (ha ALU alatt azt értetted). Bizonyos flag-eket viszont változtathat.

    Bónusz kérdés, hogy tudtok-e ennyire mélyre szántó szakirodalmat ebben a témában?

    A következő Data-Becker-kiadásban megjelent könyveket ajánlom (akár fizikai, akár digitális formában):
    - A Commodore 64-es belső felépítése
    - Gépi kódú programozás a Commodore 64-esen
    - Gépi kódú programozás haladóknak C64 & PC128
    - További tippek és trükkök a Commodore 64-eshez

    Gyakorláshoz pedig: CBM .prg Studio

    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd