Lista rozkazów asemblera ST7
Transkrypt
Lista rozkazów asemblera ST7
Lista rozkazów asemblera ST7 Mnemonika Opis ADC d,s ADD d,s AND d,s BCP s,d BRES d,b BSET d,b BTJF d,b,rel BTJT d,b,rel Dodaj z przeniesieniem s do d, wynik w d Dodaj bez przeniesienia s do d, wynik w d Iloczyn logiczny d i s Porównanie bitowe A i d Wyzerowanie bitu numer b w słowie d Ustawienie bitu numer b w słowie d Skok, jeśli bit b w słowie d jest 0 Skok, jeśli bit b w słowie d jest 1 CALL d Wywołanie podprogramu o adresie absolutnym CALLR rel Wywołanie podprogramu o adresie względnym CLR d CP d,s CPL d DEC d HALT INC d IRET JP d JRA rel JRT rel JRF rel Wyzerowanie rejestru d Porównanie arytmetyczne Logiczne zanegowanie d Zmniejszenie o 1 zawartości d Wstrzymanie pracy CPU Zwiększenie o 1 zawartości d Powrót z procedury obsługi przerwania Skok absolutny Względny skok „zawsze” Skok względny, jeśli prawda Względny skok „nigdy” JRIH rel Skok względny, jeśli wejście przerwania=1 JRIL rel Skok względny, jeśli wejście przerwania=0 pamięć pamięć pamięć pamięć – – – – Ustawiane flagi H,N,Z,C H,N,Z,C N,Z N,Z – – C C Tryby adresowania 2,3,4,5,s,w 2,3,4,5,s,w 2,3,4,5,s,w 2,3,4,5,s,w 3,4,5,s 3,4,5,s 3,4,5,s 3,4,5,s pamięć – – 3,4,5,s,w pamięć – – 3,4,5,s rejestr, pamięć rejestr rejestr, pamięć rejestr, pamięć – rejestr, pamięć – pamięć pamięć pamięć pamięć – pamięć – – – – – – – – – N=0, Z=1 N,Z,C N,Z,C=1 N,Z I=1 N,Z H,I,N,Z,C – – – – 1,3,4,5,s 2,3,4,5,s,w 1,3,4,5,s 1,3,4,5,s 1 1,3,4,5,s 1 3,4,5,s,w 3,5,6 3,5,6 3,5,6 pamięć – – 3,5,6 pamięć – – 3,5,6 PC=PC+rel, jeśli H=1 pamięć – – 3,5,6 PC=PC+rel, jeśli H=1 pamięć – – 3,5,6 PC=PC+rel, jeśli I=1 PC=PC+rel, jeśli I=0 PC=PC+rel, jeśli N=1 PC=PC+rel, jeśli N=0 PC=PC+rel, jeśli Z=1 PC=PC+rel, jeśli Z=0 PC=PC+rel, jeśli C=1 PC=PC+rel, jeśli C=0 PC=PC+rel, jeśli < PC=PC+rel, jeśli PC=PC+rel, jeśli > PC=PC+rel, jeśli d <– s d:s <– d * s d <– (d XOR FFh)+1 NOP d <– d OR s d <– (SP), SP=SP+1 (SP) <– d, SP=SP–1 C=0 PC <– (SP), SP=SP+2 I=0 pamięć pamięć pamięć pamięć pamięć pamięć pamięć pamięć pamięć pamięć pamięć pamięć rejestr, pamięć A,X,Y rejestr, pamięć – A rejestr, CC – – – – – – – – – – – – – – – – rejestr, pamięć A,X,Y – – pamięć – rejestr, CC – – – – – – – – – – – – – – – N,Z H=0,C=0 N,Z,C – N,Z H,I,N,Z,C – C=0 – I=0 3,5,6 3,5,6 3,5,6 3,5,6 3,5,6 3,5,6 3,5,6 3,5,6 3,5,6 3,5,6 3,5,6 3,5,6 1,2,3,4,5,s,w 1 1,3,4,5,s,w 1 2,3,4,5,6,s,w 1 1 1 1 1 Funkcja Cel Skąd d <– d+s+C d <– d+s d <– d AND s {N, Z} <– s AND d d.b <– 0 d.b <– 1 PC=PC+rel, jeśli d.b=0 PC=PC+rel, jeśli d.b=1 (SP) <– PC, SP=SP–2 PC=d (SP) <– PC, SP=SP–2 PC=PC+rel d <– 0 {N,Z,C} <– test(d,s) d <– d XOR FFh d <– d–1 – d <– d+1 pop CC,A,X,PC PC=d PC=PC+rel PC=PC+rel NOP,NOP PC=PC+rel, jeśli INTx=1 PC=PC+rel, jeśli INTx=0 A A A A pamięć pamięć pamięć pamięć JRM rel JRNM rel JRMI rel JRPL rel JREQ rel JRNE rel JRC rel JRNC rel JRULT rel JRUGE rel JRUGT rel JRULE rel LD d,s MUL d,s NEG d NOP OR d,s POP d PUSH d RCF RET RIM Skok względny, jeśli flaga przeniesienia połówkowego H=1 Skok względny, jeśli flaga przeniesienia połówkowego H=0 Skok względny, jeśli flaga I=1 Skok względny, jeśli flaga I=0 Skok względny, jeśli flaga znaku ujemnego N=1 Skok względny, jeśli flaga znaku ujemnego N=0 Skok względny, jeśli flaga zera Z=1 Skok względny, jeśli flaga zera Z=0 Skok względny, jeśli flaga przeniesienia C=1 Skok względny, jeśli flaga przeniesienia C=0 Skok względny, jeśli mniejsze Skok względny, jeśli większe lub równe Skok względny, jeśli większe Skok względny, jeśli mniejsze lub równe Załadowanie s do d Mnożenie arytmetyczne d i s Dopełnienie jedynkowe d (negacja d) Instrukcja „pusta” Suma logiczna d i s Pobranie d ze stosu Odłożenie d na stos Wyzerowanie bitu przeniesienia C Powrót z podprogramu Wyzerowanie bitu I RLC d Przesunięcie w lewo z przeniesieniem rejestr, pamięć – N,Z,C 1,2,4,5,w RRC d Przesunięcie w prawo z przeniesieniem rejestr, pamięć – N,Z,C 1,2,4,5,w RSP Wyzerowanie wskaźnika stosu SBC d,s SCF SIM Odjęcie s od d z przeniesieniem Ustawienie flagi przeniesienia Ustawienie flagi zezwolenia na obsługę przerwań SLA d JRH rel JRNH rel SP=<wartość po reset> d <– d–s–C C=1 I=1 SP – – 1 A CC CC pamięć – – N,Z,C C=1 I=1 2,3,4,5,s,w 1 1 Arytmetyczne przesunięcie w lewo rejestr, pamięć – N,Z,C 1,2,4,5,w SLL d Logiczne przesunięcie w lewo rejestr, pamięć – N,Z,C 1,2,4,5,w SRA d Arytmetyczne przesunięcie w prawo rejestr, pamięć – N,Z,C 1,2,4,5,w SRL d Logiczne przesunięcie w prawo rejestr, pamięć – N,Z,C 1,2,4,5,w SUB d,s SWAP d TNZ d TRAP WFI XOR d,s Odjęcie s od d bez przeniesienia Zamiana połówek bajtu Testowanie warunków N i Z Pułapka programowa Oczekiwanie na przerwanie Logiczne wyłącznie–lub d z s A rejestr, pamięć rejestr, pamięć – – A pamięć – – – – pamięć N,Z,C N,Z N,Z I=1 I=0 N,Z 2,3,4,5,s,w 1,3,4,5,s 1,2,4,5,s 1 1 2,3,4,5,s,w d <– d–s d(7:4) D d(3:0) {N,Z} = test(d) – – d <– d XOR s Uwagi: • Tryby adresowania: 1 – prosty, 2 – natychmiastowy, 3 – bezpośredni, 4 – za pomocą rejestru indeksowego, 5 – pośredni, 6 – relatywnie do PC, s – krótki (adres 8–bitowy), w – długi (adres 16–bitowy) • Flagi: H – przeniesienia połówkowego, I – zezwolenia na obsługę przerwań, N – znaku ujemnego, Z – wyniku zerowego, C – przeniesienia