Vissza a főoldalra    Vissza a PIC főoldalra

<< Előző oldal   Vissza a tartalomjegyzékhez   Következő oldal >>

 


11.4.9. Összehasonlítás


Assembly programozás tartalomjegyzék

Adatregiszter és konstans egyezőségének vizsgálata
Két adaregiszter egyezőségének vizsgálata
Adatregiszter és konstans összehasonlítása
Két adatregiszter összehasonlítása
Adatregiszter tartományon belül esésének vizsgálata
Két bit egyezőségének vizsgálata


      Adatregiszter és konstans egyezőségének vizsgálata:

      A következő programrészlet az ADAT azonosítójú általános adatregiszter és egy konstans egyezőségét vizsgálja úgy, hogy közben az ADAT regiszter értéke nem változik:

... ...    
  movlw 0x0A ;W = 10d, a konstans megadása
  subwf ADAT,0 ;W = ADAT - 10d
  btfsc STATUS,2 ;a Z zérusjelző-bit vizsgálata
  goto IGEN ;ugrik, ha Z = 1, vagyis, ha ADAT = 10d
  ... ... ;itt folytatódik, ha Z = 0
  ...    

Vissza a lap tetejére


      Két adatregiszter egyezőségének vizsgálata:

      A következő programrészlet az ADAT1 és ADAT2 azonosítójú általános adatregiszterek értékének egyezőségét vizsgálja úgy, hogy közben egyik regiszter értéke sem változik:

... ...    
  movf ADAT2,0 ;W=ADAT2
  subwf ADAT1,0 ;W=ADAT1-ADAT2
  btfsc STATUS,2 ;a Z zérusjelző-bit vizsgálata
  goto IGEN ;ugrik, ha Z=1, vagyis, ha ADAT1=ADAT2
  ... ... ;itt folytatódik, ha Z = 0
  ...    

Vissza a lap tetejére


      Adatregiszter és konstans összehasonlítása:

      A következő programrészlet az ADAT azonosítójú általános adatregiszter és egy konstans viszonyát vizsgálja úgy, hogy közben az ADAT regiszter értéke nem változik:

... ...    
  movlw 0x0A ;W=10d, a konstans megadása
  subwf ADAT,0 ;W=ADAT-10d
  btfsc STATUS,2 ;a Z zérusjelző-bit vizsgálata
  goto EGYENLO ;ugrik, ha Z=1, vagyis, ha ADAT=10d
  btfsc STATUS,0 ;a C túlcsordulás jelzőbit vizsgálata
  goto NAGYOBB ;ugrik, ha C=1, vagyis ha ADAT>10d
  ... ... ;itt folytatódik, ha C=1, vagyis ha ADAT<10d
  ...    

      A programrészlet tulajdonképpen egy, a két adat viszonyától függő hármas elágazást valósít meg.

Vissza a lap tetejére


      Két adatregiszter összehasonlítása:

      A következő programrészlet az ADAT1 és ADAT2 azonosítójú általános adatregiszterek egymáshoz való viszonyát vizsgálja úgy, hogy közben egyik regiszter értéke sem változik:

... ...    
  movwf ADAT2,0 ;W=ADAT2
  subwf ADAT,0 ;W=ADAT1-ADAT2
  btfsc STATUS,2 ;a Z zérusjelző-bit vizsgálata
  goto EGYENLO ;ugrik, ha Z=1, vagyis, ha ADAT1=ADAT2
  btfsc STATUS,0 ;a C túlcsordulás jelzőbit vizsgálata
  goto NAGYOBB ;ugrik, ha C=1, vagyis ha ADAT1>ADAT2
  ... ... ;itt folytatódik, ha C=0, vagyis ha ADAT1<ADAT2
  ...    

      A programrészlet tulajdonképpen egy, a két adat viszonyától függő hármas elágazást valósít meg.

Vissza a lap tetejére


      Adatregiszter tartományon belül esésének vizsgálata:

      A következő programrészlet (Dr. Kónya László: PIC mikrovezérlők alkalmazástechnikája) az ADAT azonosítójú általános adatregiszter tartalmáról dönti el, hogy például a 10d és 20d által kijelölt tartományban van-e. A művelet közben az adatregiszter értéke nem változik:

... ...    
  movf ADAT,0 ;W=ADAT
  addlw 0xEB ;W = W + (255d-20d=EBh)
  addlw 0x0B ;W = W + (20d-10d+1=0Bh)
  btfsc STATUS,0 ;a C túlcsordulás jelzőbit vizsgálata
  goto IGEN ;ugrik, ha W túlcsordul (ha 20d>=ADAT>=10d)
  ... ... ;itt folytatódik, ha a tartományon kívül van
  ...    

      Az adatregiszter tartalma a tartományba esik akkor is, ha valamelyik határértékkel megegyezik.

Vissza a lap tetejére


      Két bit egyezőségének vizsgálata:

      A következő programrészlet (Tudomány és Technika) az ADAT1 regiszter 3. bitjének és az ADAT2 regiszter 5. bitjének egyezőségét vizsgálja úgy, hogy közben egyik regiszter értéke sem változik:

... ...    
  clrw   ;W=0
  btfsc ADAT1,3 ;az ADAT1 3. bitjének vizsgálata
  movlw 0x20 ;W = B'0010 0000', az 5. bit maszkja
  xorlw ADAT2,0 ;W = ADAT2 "kizáró-vagy" W
  btfsc STATUS,2 ;a Z zérusjelző-bit vizsgálata
  goto EGYEZIK ;ugrik, ha Z=1
  ... ... ;itt folytatódik, ha Z=0
  ...    

      A program először megvizsgálja az ADAT1 regiszter 3. bitjét. Ha a 3. bit "0", akkor "0", ha "1", akkor "1" kerül a W munkaregiszter 5. bitjébe. Az egyezőség ezután már eldönthető egy ADAT2 és W közötti "Kizáró-VAGY" művelettel. Egyezőség esetén a "Kizáró-VAGY" művelet eredménye "0", egyébként "1".

  Tudomány és Technika (test@t-es-t.hu)


 

<< Előző oldal   Vissza a tartalomjegyzékhez   Vissza a lap tetejére   Következő oldal >>

Vissza a főoldalra    Vissza a PIC főoldalra