100 likes | 273 Views
AVR Classic MK-l ərinin əmrlər sistemi. Mövzuda nəzərdən keçirilən əsas məsələlər. AVR Classic M K-lərin əmrlər sisteminin əsas xüsusiyyətləri: Əmrlərin tipləri Əmr kodlarının uzunluğu Əmrlərdə verilənlərin ünvanlaşdırılma üsulları
E N D
Mövzuda nəzərdən keçirilən əsas məsələlər • AVR Classic MK-lərin əmrlər sisteminin əsas xüsusiyyətləri: • Əmrlərin tipləri • Əmr kodlarının uzunluğu • Əmrlərdə verilənlərin ünvanlaşdırılma üsulları • PC registri nədir və onun məzmunu necə dəyişdirilə bilər ? • Məntiqi və hesabi əmrlərin daxili strukturu • Bit və bayt üzərində əməliyyatlar üçün əmrlərin daxili strukturu • Proqramın idarəsi əmrləri–JUMP • Proqramın idarəsi əmrləri– CALL,RETURN,TEST-SKIP • Birbaşa ünvanlaşma üsulunun 1 və2-ünvanlı əmrlərdə tətbiqi
AVR Classic MK-lərin əmrlər sisteminin əsas xüsusiyyətləri AVR Classic MK-lərin əmrlər sistemi 118 ədəd müxtəlif əmrlərdən ibarət olub aşağıdakı qruplara bölünür: Məntiqi,hesabi əməliyyatlar, bit və bayt üzərindəəməliyyatlar, Proqramın idarəsivə sistemli idarəetməəməliyyatlar. AVR əmrlərinin əksəriyyəti daxili strukturu 16 bitlidir və 1 ədəd proqram oyuğunda saxlanıla bilir Bəzi AVR əmrlərinin daxili strukturu 32 bitli olduğundan yadda saxlanılması üçün 2 ədəd proqram oyuğunu tələb edir
AVR Classic MK-lərin əmrlərində istifadə edilən ünvanlaşma üsulları və proqramın idarəsi • Əmrlərdə 2 tip ünvanlaşma üsulu istifadə edilir :birbaşa və dolayı • birbaşaünvan kimi GPR-lər,IO registrləri ,yaxud birbaşa RAM ünvanı əmrlərdə göstərilir • dolayı ünvan kimi 16 bitli X,Y,Z registrləri göstərilir • PC(Program Counter) icra edilən proqramda cari əmrin ünvanını göstərdiyindən,adətən sayğac rejimində işləyir • Lakin PC-nin məzmunu proqramın idarəsi əmrləri vasitəsi də yenidən təyin edilə bilər • proqramın idarəsi əmrləri kimi JUMP,CALL,RETURN,TEST-SKIPistifadə edilir • JUMPəmrinin şərtsiz və şərti tipləri vardır
Hesabi əmrlər Məntiqi əmrlər Icra edilmə müddəti =1 ƏD (Əmr dövrü) 8 bitli 16 bitli Əmrlərin daxili struktur ibarətdir: COP-əməliyyat kodu , Oprn-operandlar ünvanı Icra müddəti =1 ƏD Icra müddəti =2 ƏD (R / d) / K COP (R / d) pair COP R / d K ADIW ADD AND GPR SBIW ADC OR misal:AND Rd,Rr; ANDİ Rd,K; EOR Rd,Rr;COM Rd; CLR Rd; SER Rd; TST Rd;SWAP Rd. Flags:Z,N,V-overflow,C,H-half carry bayraqları bu əməliyyatlardan sonra avtomatik dəyişdirilə bilər Rd,Rr—təyinat və mənbəni göstərən GPR-lər; K-bilavasitə operand. ANDI- bilavasitə AND; COM- tamamlayıcı kodun alınması ; CLR-registri sıfırlama;SER-set registri 1 etmə;TST- registrin 0/mənfi olmasını yoxlamaq; olzero/negative, SWAP-registrdə tetradalaın yerini dəyişmə SUB misal:ADD Rd,Rr; SUB Rd,Rr; DEC Rd; ASR Rd;INC Rd; ADİW Rd,K;Rd=R24/26/28/30; ADIW R24,63; R25:R24=R25:R24 +63 SBIW Rd,K;SBIW R27:R28,56; R27:R26=R27;R26 +56; Flags:Z,N,V,C,H.S bayraqları bu əməliyyatlardan sonra avtomatik dəyişə bilər; ASR –sağasürüşmə ; ADİW–registrlər cütü və bilavasitə operandın toplanması SBIW-registrlər cütündən bilavasitə operandın çıxılması EOR SUBI COM DEC NEG ANDİ ASR ORİ COP Oprn1 Oprn2 Məntiqi və hesabi əmrlərin daxili strukturu
Bitlər üzərində əməliyyat Bayt üzərində əməliyyat Icra müddəti =1 ƏD Icra müddəti =1-3 ƏD GPR/ IO reg. COP COP b(k) Oprn1 Oprn2 Misal :CBR Rd,K--Rd.K=0; SBR Rd,K-- Rd.K=1; CBİ A,b-- A.K=0 ;SBİ A,b; BCLR s—SREG.s=0; BSET s;BLD Rd,b(SREG-dən yüklə)—Rd.b=SREG.b;BST Rr,b—SREG.b=Rr.b;CLC(carry)—SREG.C=0;CLN—SREG.N=0;SEZ—SREG.Z=1; CBR-registrdə bitin sıfırlanması, SBR-registrdə bitin 1 edilməsi, CBI/SBI- İO registrində biti 0/1 etBCLR/ BSET –SREG registrindəbiti 0/1 et BLD- SREG-dən bitin yüklənməsi BST- biti SREG-də saxla CLC/CLN- SREG reg-də C/N bitini sıfırla SEZ-SREG reg-də Z bitini 1 et Flags(s bit):SREG reg-də Z,N,V,C,İ, bayraqları bu əməliyyatlardan sonra dəyişə bilər GPR/İO reg./RAM IN CBR OUT SBR CBI PUP SBI PUSH BCLR GPR GPR MOV GPR I/O BSET LDI BLD GPR RAM misale : MOVRd,Rr-dən Rr Rd-ə ötür; IN Rd,A -İO registri A-dan Rd-ə daxil et; Push Rr- Rr reg-dən stekə yüklə Pup Rd- stekdən çıxarıb Rd-ə yüklə; LD Rd,X- dolayı X ünvanı üzrə RAM-dan Rd-ə yüklə ;LDI Rd,K—bilavasitə K operandını Rd-ə yüklə ;LDS Rd,K-K ünvanlı RAM-dən Rd-ə yüklə; ST X,Rr -Rd-nin məzmununu dolayı X ünvanı üzrə RAM-da saxla; LD BST ST CLC CLN SEZ Bitlər və bayt üzərində əməliyyatlar
Followinng branches are maked dependent on flags in SREG status register BRBC s,k Jump to k if SREG.s=0 Şərtsiz Şərti BRCS k Jump to k if SREG.c=1 Jump to (PC) BRVS k Jump to k if SREG.v=1 Nisbi RJMP Dolayı İJMP 0ffset K COP COP Index reg Z COP 0ffset K Z + + 1 1 0 15 ... PC PC example: İJMP Offsset K-offsset address of RAM instruction address is defined as summer of incremented PC and K Index regZ-defines indirect address of RAM instruction address is defined as content of Z register Program FLASH Program FLASH ... ... 15 15 ... ... 0 0 16 bit 16 bit Proqramın idarəsi əmrləri -JUMP JUMP
TEST-SKIP CALL RETURN CPSE Rd,Rr-compare for equal and make SKIP SKIP ifRd=Rr PC-nin Stekə ötür Stekdən PC-ə ötür Nisbi RCALL Dolayı İCALL SBRC Rr,b Make SKIP if Rr.b=”0” PC=PC+/-K RET İRET PC=(İndex reg.Z) SBİC A,b Make SKIP if A.b=”0” A -IO register RCALL k ICALL Makes SREG.İ=”1” SBİS A,b Make SKIP if A.b=”1” Sistemli idarə WDR-makes WDT off NOP SLEEP Proqramın idarəsi əmrləri– CALL,RETURN,TEST-SKIP
1 ünvanlı əmrlərdə 1 GPR birbaşa verilir R0-R31 registerlər 2 ünvanlı əmrlərdə 2 GPR birbaşa verilir R0-R31 registerlər 15 15 2 GPR directly are indicated in MOV,ADD,SUB COP Rd r d COP Reg.file Reg.file R0 R0 ... ... ... ... ... R31 ... R31 example: Push Rr-load to Stack from Rr reg; Pup Rd- load into Rd from Stack ;İNC Rd; DEC Rd 1 və 2 ədəd GPR lə birbaşa ünvanlaşdırma
In 2 addresses instruction GPR və İ/O reg. direct In 2 address instructions GPR and directRAM address 15 16 0 31 COP r/d p 16 bit offset addr. 0 İ/O reg. r/d COP Reg.file 0 R0 0 15 RAM ... Reg.file 0000H ... R0 ... ... ... 63 R31 ... ... example İN Rd,A; OUT A,Rr R31 FFFFH example: LDS Rd,K; STS K,Rr K-16bits direct address of RAM GPR,I/O və birbaşa RAMünvanı göstərilməklə birbaşa ünvanlaşdırma