PIC Assembly Komutları | Programming Tutorial

in #ukrayna7 years ago (edited)

Yer Değiştirme veya Yükleme Komutları

Komut ve Örnekİngilizce TanımıTürkçe Açıklaması
MOVLW kMove Literal to WK sabit değerini W registerine yükler.
MOVLW h'0F'W<-0F
MOVF f,dMove ff registerinin içeriğini W veya f e yükler.
MOVF TEST,0d=0 W<-TEST d=1TEST<-TEST
MOVWF fMove W to fW registerin içeriğini f registerine yükler.
MOVWF PORTAPORTA<-W
Register İçeriğini Değiştirme Komutları
CLRFFClear ff registerinin içeriğini siler (sıfırlar).
CLRFTRISATRISA<-00000000
CLRWClear WW registerin içeriğini siler (sıfırlar).
CLRWW<-00000000
COMFF,dComplement fF registerinin içindeki sayı terslenir. Yani tüm 1'ler 0, 0'lar 1 olur. Sonuç W veya f registerine yüklenir.
COMFSAY, 0SAY= 0011011 ise,d=0 W<-11001010d=l olsaydı SAY<-11001010
DECFf,dDecrement f"F registerinin içerisindeki sayıyı ""1"" eksiltir. Registerin içeriği h'00' ise, ""1"" eksiltildiğinde h'FF' olur. Sonuç W veya f registerine yazılır."
DECFGIT,1"GIT=h'2C"" ise2C-l=2B d=l GIT<-2B d=0 olsaydı W<-2B"
INCFf,dIncrement f"F registerinin içerisindeki sayıyı ""1"" artırır. Registerin içeriği h' FF ise, ""1"" arttırıldığında h' 00' olur. Sonuç W veya f registerine yazılır."
INCFGIT,0GIT=h' 2C ise 2C+1=2D d=0 W<-2D d=l olsaydı GIT< 2D
BCFf,bBit Clear ff registerinin içerisindeki sayının b.ninci bitini sıfirlar.
BCFPORTB,5PORTB b'llllllll'ise, PORTB<-b' 11011111'
BSFf,bBit Set fF registerinin içerisinde sayının b.ninci bitini 1 yapar.
BSFPORTA,3PORTA = b' 00000000' ise, PORTA<-b' 00001000'
RLFf,dRotate Left ff registeri içerisindeki sayıyı bir pozisyon sola kaydırır. Registerden taşarak Carry bayrağına yazılan bit, LSB'ye yazılır. Sonuç W veya f registerine yüklenir.
RLFKAY,O
RRFF,dRotate Right fF registeri içersindeki sayıyı bir pozisyon sağa kaydırır. Registerden taşarak Carry bayrağına yazılan bit, MSB'ye yazılır. Sonuç W veya f registerine yüklenir.
SWAPFf,dSwap nibbles inff registerinin içerisindeki ilk dört bit ile son dört biti yer değiştirir. Sonuç W veya f registerine yüklenir.
SWAPFDEG,lDEG = b' 00101111' ise,d=l olduğundan DEG<-11110010d=0 olsaydı W<-11110010'
Program Akışını Kontrol Etme Komutları
GOTOkGo to addressProgram akışı k adresine dallanır.
GOTODONGUProgram, DONGU etiketinin yazıldığı yere dallanır ve buradan itibaren devam eder.
CALLkCall subroutineProgram akışı k etiketinin bulunduğu yerdeki alt programa dallanır.
CALLTIMERProgram TIMER etiketinin yazıldığı alt program satırlarının başlangıcına dallanır ve buradan itibaren devam eder.
RETURNReturn from subrouitineAlt program komutlarının en sonuna yazılan bu komut, program akışını ana programa geri döndürür.
RETLWReturn with Literal in WProgram akışını alt programdan ana programa döndürür ve W registerine k sabitini yükler.
RETLWH'2F'Alt programdan ana programa döndürür ve W registerine 2F yüklenir.
RETFIEReturn From InterruptProgram akışını interrupt alt programından ana programa döndürür.
BTFSCf,bBit Test F, Skip if Clear"F registerinin b.inci bit'ini test eder. Eğer bu bit ""0""sa program akışı bir sonraki komuta geçer."
BTFSSf,bBit Test F, Skip if Set"F registerinin b.inci bit'ini test eder. Eğer bu bit"" 1 ""se program akışı bir sonraki komuta geçer."
DECFSZf,dDecrement f, Skip if Zero"F registerinin içeriğini ""1"" azaltır. Register içeriği 0'sa bir sonraki komuta atlar. Sonuç W veya f registere yazılır."
DECFSZSAYAÇ,1SAYAC=h'2F' ise 2F-1=2E d=0 olsaydı W<-h' 2E'd=1 olduğundanSAYAC<-h'2E'
INCFSZF,dIncrement f, Skip if Zero"F registerinin içeriğini ""1"" arttırır, register içeriği ""0""sa bir sonraki komuta atlar. Sonuç W veya f registere yazılır."
INCFSZSAYAÇ, 1"SAYAC=h' 2F' ise 2F+1=30 d=l SAYAC<-h' 30' d=0 W<-h'30"""
Mantıksal Komutlar
ANDLWKAND Literal with WW registerin içeriği ile k sabitine AND işlemini uygular. Sonuç W registerine yazılır.
ANDWFf,dAND W with fW registeri ile file register içeriğine AND işlemini uygular. Sonuç W veya f registerine yazılır.
IORLWkInclusive OR Literal withWW registerin içeriği ile k sabitine OR işlemini uygular. Sonuç W registerine yazılır.
IORWFf,dW registeri içeriği ile file registerin içeriğine OR işlemini uygular. Sonuç W veya f registerine yazılır.
XORLWkExclusive OR Literal withWW registerin içeriği ile k sabitine XOR işlemini uygular. Sonuç W registerine yazılır.
XORWFF,dExclusive OR W with fW register ile file register içeriğine XOR işlemini uygular. Sonuç W veya f registerine yazılır.
Mikrodenetleyici Kontrol Komutları
CLRWDTClear Watchdog TimerWatchdog timer'ı sıfırlar.
SLEEPGo into standby modeMikrodenetleyiciyi uyuma moduna geçirerek güç harcamasını azaltır. Microdenetleyici uyuma modundan reset, watchdog timer ve TOCKI girişi vasıtasıyla çıkar.
Aritmetik İşlem Komutları
ADDWFf,dAdd W with fW registerinin içeriğini f registeri ile toplar. Sonuç W veya f registerine yazılır.
ADDLWkAdd Literal andWW registerinin içeriğini k sabit değeri ile toplar. Sonuç W registerine yazılır.
SUBLWkSubtract W from LiteralK sabit değerinden W registeri içeriğini çıkarır. Sonuç W registerine yazılır.
SUBWFf,dSubtract W from file registerf registerinin içeriğinden W registerinin içeriğim çıkarır. Sonuç W veya f registerine yazılır.
İşlem Yapmayan Komut
NOPNo OperationBir komut saykılı süresince hiçbir işlem yapmayan bir komuttur. Bir dahili komut süresinde çalışır. Bu nedenle zaman geciktirme işlemlerinde kullanılır.
Sort:  

Vote verildi geri dönüşlerini rica ediyorum 😊

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 59774.28
ETH 2422.19
USDT 1.00
SBD 2.44