90 likes | 238 Views
Instrukce procesoru pro přesun (MOV). mov X, Y. Instrukce kopíruje osmibitová data ze zdroje Y do cíle X. mov A, R n mov A , DPH mov A , DPL mov A , SPH mov A , SPL. mov R n , A mov DPH , A mov DPL, A mov SPH, A mov SPL, A. mov A, #Data8 mov R n , #Data8 mov DP TR , #Data16
E N D
Instrukce procesoru pro přesun (MOV) mov X, Y Instrukce kopíruje osmibitová data ze zdroje Y do cíle X mov A, Rn mov A, DPH mov A, DPL mov A, SPH mov A, SPL mov Rn, A mov DPH, A mov DPL, A mov SPH, A mov SPL, A mov A, #Data8 mov Rn, #Data8 mov DPTR, #Data16 mov SP, #Data16 mov A, Adresa8 mov A, @Rn mov @Rn, A mov A, @DPTR mov @DPTR, A mov Adresa8, A Př.: Vyměnit obsahy registrů R0 a R1 mov A, R0 mov R2, A mov A, R1 mov R0,A mov A, R2 mov R1, A Př.: Do paměti, na adresu AAh vložit hodnotu 123 mov A, #123 mov 0AAH, A Př.: Do paměti, na adresu AAAAh vložit hodnotu 123 mov A, #123 mov DPTR, #0AAAAH mov @DPTR, A Jako vedlejší efekt program také změní obsah registru Acc. Jako vedlejší efekt program také změní obsahy registrů Acc a DPTR. Jako vedlejší efekt program také změní obsahy registrů R2 a Acc.
Instrukce procesoru pro vstup a výstup (IN, OUT) Instrukce zkopíruje osmibitová data z adresou vybraného vstupního portu do akumulátoru Acc. in A, Adresa8 Instrukce zkopíruje osmibitová data z akumulátoru Acc na adresou vybraný výstupní port. out Adresa8, A Vstupní porty nemají vlastnost registru. Jejich obsah je v každém okamžiku dán děním mimo počítač. Instrukce „in“ jednorázově, jen v momentu svého vykonávání, zkopíruje obsah portu do akumulátoru Acc Výstupní porty mají vlastnost registru. Jejich obsah je dán posledním provedením instrukce „out“.
Instrukce procesoru pro logické operace (CPL, ANL, ORL, XRL) cpl A Instrukce neguje všech osm bitů akumulátoru Acc. 0 1 Acc 0 1 1 1 0 0 1 1 Acc 1 0 0 0 1 1 0 0 1 0 Instrukce provede po bitech logický součin obsahu akumulátoru Acc a druhého operandu X a výsledek uloží do akumulátoru Acc. Operace součin se provede na dvojicích stejnolehlých bitů obou operandů. anl A, X anl A, Rn anl A, #Data8 anl A, @Rn Acc 0 1 1 1 0 0 1 1 0 1 0 1 anl A, Adresa8 0 0 1 1 X 0 1 0 0 1 1 0 1 Acc 0 1 0 0 0 0 0 1 0 0 0 1
Instrukce procesoru pro logické operace (CPL, ANL, ORL, XRL) Instrukce provede po bitech logický součet obsahu akumulátoru Acc a druhého operandu X a výsledek uloží do akumulátoru Acc. orl A, X orl A, Rn orl A, #Data8 Acc 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 orl A, @Rn X 0 1 0 0 1 1 0 1 orl A, Adresa8 Acc 0 1 1 1 1 1 1 1 0 1 1 1 Instrukce provede po bitech exkluzivní součet obsahu akumulátoru Acc a druhého operandu X a výsledek uloží do akumulátoru Acc. xrl A, X xrl A, Rn xrl A, #Data8 Acc 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 xrl A, @Rn X 0 1 0 0 1 1 0 1 xrl A, Adresa8 Acc 0 0 1 1 1 1 1 0 0 1 1 0
Instrukce procesoru pro rotacev akumulátoru (RR, RRC, RL, RLC) Instrukce rotují jednotlivé bity doprava (RR a RRC) nebo doleva (RL a RLC). Rotace se účastní bity akumulátoru Acc (RR a RL) nebo bity akumulátoru Acc spolu s jednobitovým registrem C. rr A Acc 0 1 1 1 0 0 1 1 Acc 1 0 1 1 1 0 0 1 rrc A C Acc 0 0 1 1 1 0 0 1 1 C Acc 1 0 0 1 1 1 0 0 1 rl A Acc 0 1 1 1 0 0 1 1 Acc 1 1 1 0 0 1 1 0 rlc A C Acc 0 0 1 1 1 0 0 1 1 C Acc 0 1 1 1 0 0 1 1 0
Instrukce procesoru pro aritmetické operace(INC, DEC, ADD, SUBB) Instrukce provede inkrementaci (zvýšení o 1) operandu X. inc X inc A inc Rn inc DPTR Instrukce provede dekrementaci (snížení o 1) operandu X. dec X dec A dec Rn Obě instrukce INC a DEC nemají vliv na jednobitový registr C.
Instrukce procesoru pro aritmetické operace(INC, DEC, ADD, SUBB) Instrukce provede aritmetický součet obsahu akumulátoru Acc a druhého operandu X a výsledek uloží do akumulátoru Acc. add A, X add A, Rn add A, #Data8 add A, @Rn add A, Adresa8 Instrukce provede aritmetický součet obsahu akumulátoru Acc, druhého operandu X a jednobitového registru C a výsledek uloží do akumulátoru Acc. addc A, X addc A, Rn addc A, #Data8 addc A, @Rn addc A, Adresa8 Obě instrukce ADD a ADDC počítají výsledek na 9 bitů. Devátý bit výsledku se ukládá do jednobitového registru C.
Instrukce procesoru pro aritmetické operace(INC, DEC, ADD, SUBB) Instrukce provede aritmetický rozdíl obsahu akumulátoru Acc, druhého operandu X a jednobitového registru C. Výsledek se uloží do akumulátoru Acc. subb A, X subb A, Rn subb A, #Data8 subb A, @Rn subb A, Adresa8 Vykonání instrukce SUBB ovlivňuje obsah jednobitového registru C. Je-li výsledek odčítání nezáporný, je C=0, je-li výsledek záporný, je C=1.
Instrukce procesoru pro skoky v programu (JMP, JZ, JNZ, JC, JNC) Instrukce zajistí, že jako další se bude provádět instrukce na uvedené adrese. Instrukce nepodmíněného skoku. jmp Adresa16 Místo uvedení číselné hodnoty adresy se doporučuje používat adresu symbolickou (návěští). Návěští je definováno uvedením před vybranou instrukcí v programu (návěští je od instrukce odděleno dvojtečkou). Návěští může být definováno v jednom programu nejvýše jednou. Př.: dynamický STOP mov A, #55H LOOP: jmp LOOP Př.: nekonečná smyčka mov A, #0 LOOP: inc A out 0AAH jmp LOOP Př.: dynamický STOP mov A, #55H jmp $