<< Előző oldal Vissza a tartalomjegyzékhez Következő oldal >>
11.4.6. Maszkolás
Assembly programozás tartalomjegyzék
Egyes bitek kiválasztása/"0"-ra állítása
Egyes bitek "1"-re állítása
Egyes bitek ellentétesre változtatása
Egyes bitek kiválasztása/"0"-ra állítása:
Egy általános adatregiszter vagy W tartalmának egyes kiválasztott bitjei nullázhatók az ANDWF, illetve ANDLW utasítások segítségével. A kívánt bitek törlése egy előre meghatározott bitmaszk segítségével hajtható végre, a bitmaszk és a módosítani kívánt 8 bites adat közötti ÉS művelettel. A bitmaszk "0" értékeinél a kiinduló adat is nullázódik.
Ezen a módon oldható meg a 8 bites adatból egyes bitek kiválasztása, vagyis a szükséges bitek meghagyása, a többi nullázása. (Például a felső négy bit törlése.)
A W munkaregiszter alsó négy bitjének nullázása:
... ... andlw 0xF0 ;W = W "és" B'11110000' ...
Egyes bitek "1"-re állítása:
Egy általános adatregiszter vagy W tartalmának egyes kiválasztott bitjei logikai "1"-re állíthatóak az IORWF, illetve IORLW utasítások segítségével. A kívánt bitek "1"-re állítása egy előre meghatározott bitmaszk segítségével hajtható végre, a bitmaszk és a módosítani kívánt 8 bites adat közötti VAGY művelettel. A bitmaszk "1" értékeinél a kiinduló adat is "1"-re áll be.
A W munkaregiszter alsó négy bitjének "1"-re állítása:
... ... iorlw 0x0F ;W = W "vagy" B'00001111' ...
Egyes bitek ellentétesre változtatása
Egy általános adatregiszter vagy W tartalmának egyes kiválasztott bitjei ellentétjükre változtathatóak az XORWF, illetve XORLW utasítások segítségével. A kívánt bitek ellentétesre változtatása egy előre meghatározott bitmaszk segítségével hajtható végre, a bitmaszk és a módosítani kívánt 8 bites adat közötti Kizáró-VAGY művelettel. A bitmaszk "1" értékeinél a kiinduló adat ellentétesre változik.
A W munkaregiszter alsó négy bitjének ellentétesre változtatása:
... ... xorlw 0x0F ;W = W "kizáró-vagy" B'00001111' ...
Tudomány és Technika (test@t-es-t.hu)
<< Előző oldal Vissza a tartalomjegyzékhez Vissza a lap tetejére Következő oldal >>