CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
DOCUMENTE SIMILARE |
|
Aritmetinės ir loginės komandos
Komandos skirtos aritmetinės sudėties, atimties, loginės daugybos, sumos, iskirtinio ARBA, duomenų palyginimo, deimtainės korekcijos, postūmių, inkrementavimo ir dekrementavimo operacijoms atlikti. Aritmetinių ir loginių komandų grupė yra gausiausia. J¹ sudaro 26 bazinės komandos. Visas komandų s¹raas pateiktas 2 lentelėje. Atskiros komandos vykdo ias operacijas:
- ADD, ADC, ADI, ACI, DAD aritmetinės sudėtis;
- SUB, SBB, SUI, SBI aritmetinės atimtis;
- ANA, ANI loginė daugyba (loginis IR);
- ORA, ORI loginė suma (loginis ARBA);
- XRA, XRI iskirtinis ARBA;
- CMP, CPI duomenų palyginimas;
- DAA deimtainė korekcija;
- RLC, RAL postūmis į kairź;
- RRC, RAR postūmis į deinź;
- INR, INX didinimas 1 (inkrementavimas);
- DCR, DCX mainimas 1 (dekrementavimas).
2 lentelė. Mikroprocesoriaus I8085 aritmetinės ir loginės komandos
Eil. Nr. |
Komandos mnemonika |
Poymiai |
Baitai |
Taktai |
Komandos komentaras |
S Z AC P CY |
|||||
ADD R / M |
+ + + + |
A ← A+R / A ← A+M[HL] |
|||
ADC R / M |
+ + + + |
A ← A+R+CY/A ← A+M[HL]+CY |
|||
SUB R / M |
+ + + + |
A ← A-R / A ← A-M[HL] |
|||
SBB R / M |
+ + + + |
A ← A-R-CY/A ← A-M[HL]-CY |
|||
ANA R / M |
+ 0 + 0 |
A ← A AND R / A ← A AND M[HL] |
|||
ORA R / M |
+ 0 + 0 |
A ← A OR R / A ← A OR M[HL] |
|||
XRA R / M |
+ 0 + 0 |
A ← A XOR R / A ← A XOR M[HL] |
|||
CMP R / M |
+ + + + |
A R / A M[HL] |
|||
ADI D8 |
+ + + + |
A ← A+D8 |
|||
ACI D8 |
+ + + + |
A ← A+D8+CY |
|||
SUI D8 |
+ + + + |
A ← A-D8 |
|||
SBI D8 |
+ + + + |
A ← A-D8-CY |
|||
ANI D8 |
+ 0 + 0 |
A ← A AND D8 |
|||
ORI D8 |
+ 0 + 0 |
A ← A OR D8 |
|||
XRI D8 |
+ 0 + 0 |
A ← A XOR D8 |
|||
CPI D8 |
+ + + + |
A-D8 |
|||
DAD RP |
─ ─ ─ ─ + |
HL ← HL RP |
|||
DAA |
+ + + + |
sudėties deimtainė korekcija |
|||
RLC |
─ ─ ─ ─ + |
CY←A7 ← A6 A1 ← A0 ←A7 |
|||
RRC |
─ ─ ─ ─ + |
A0 →A7 → A6 A1 → A0 → CY |
|||
RAL |
─ ─ ─ ─ + |
CY←A7 ← A6 A1 ← A0 ← CY |
|||
RAR |
─ ─ ─ ─ + |
CY →A7 → A6 A1 → A0 → CY |
|||
INR R / M |
+ + + ─ |
R ← R+1/ M[HL] ←M[HL]+1 |
|||
DCR R / M |
+ + + ─ |
R ← R-1/ M[HL] ←M[HL]-1 |
|||
INX RP |
─ ─ ─ ─ ─ |
RP ← RP+1 |
|||
DCX RP |
─ ─ ─ ─ ─ |
RP ← RP-1 |
Dauguma komandų atlieka veiksmus su duomenų baitais (DB), tačiau DAD, INX, DCX komandos vykdo operacijas su duomenų odiais (DW). Visos komandos keičia poymius, iskyrus dvi komandas: INX, DCX.
Visose aritmetinėse ir loginėse baitinėse operacijose naudojamas akumuliatorius, kaip vienas operando altinis ir rezultato imtuvas, o antrasis operandas yra nurodytas registras (A, B, C, D, E, H, L), pseudoregistras M (atminties lastelė, kurios adresas nurodytas HL registrų poroje) arba duomenų baitas betarpikai įraytas komandoje. Taigi iose komandose naudojamas tiesioginis, netiesioginis registrų ir betarpikas adresavimo būdai.
Dvibaitėje aritmetinės sudėties DAD komandoje akumuliatoriaus funkcijas atlieka HL registrų pora, kurios turinys sudedamas su nustatytos registrų poros (BC, DE, HL ir registro SP) turiniu, įsimenant rezultat¹ HL RP. DAD komanda keičia tik CY poymį.
Atliekant aritmetinės sudėties ADD komand¹, kai sudedami du baitai pateikti paprast¹jame dvejetainiame deimtainiame (2/10 kodas, BCD angl. Binary Code Decimal kodas) kode, gautojo A registre rezultato deimtainei korekcijai naudojama DAA komanda. i komanda tikrina CY, AC poymius ir koreguoja rezultat¹ taip, kad būtų gautas teisingas 2/10 kodo skaičius. DAA komanda įraoma programoje po ADD komandos. Duomenų apdorojimas tiesiogiai skaitmeniniame 2/10 kode danai taikomas sistemose, naudojančiose deimtainių skaičių įvedimo ir ivedimo įtaisus (pvz. staklių skaitmeninio programinio valdymo sistemose), nes nereikalauja tarpinių transformacijų 2/10 kodo į dvejetainį ir atvirkčiai.
Dvejetainis deimtainis kodas turi du formatus:
paprast¹jį (suglaust¹);
iplėstinį.
Paprast¹jame dvejetainiame deimtainiame formate bet kuriam deimtainiam skaičiui nuo 0 iki 9 yra skirtos 4 skiltys (tetrada) dvejetainio kodo, turinčio nuo 0000B iki 1001B vertes, o kodai 1010B 1111B nenaudojami. Viename dvejetainio kodo baite galima koduoti 2 deimtainius skaičius nuo 00 iki 99. Didesniems deimtainiams skaičiams reikia daugiau baitų (1 baitas dviem skaitmenims).
Iplėstiniame dvejetainiame deimtainiame formate kiekvienam deimtainiui skaičiui skirtas vienas baitas, kuriame panaudota tik jaunesnioji tetrada. Baito vyresnioji tetrada nenaudojama, jos kodas yra 0000B. Iplėstinis formatas, palyginus su paprastuoju, reikalauja dvigubai didesnės atminties dvejetainiams deimtainiams skaičiams saugoti. Tačiau is formatas labai gerai derinasi su tekstiniu ASCII (angl. American Standart Code for Informacion Interchange) kodu, kuris naudojamas ioriniams mainams tarp asmeninio kompiuterio ir įorinių įrenginių (pvz. skaitmeninės sistemos). Pastarasis kodas gaunamas iplėstinio 2/10 kodo vyresniojoje tetradoje įraius skaitmens poymį 0011B (3H) koda.
Dvejetainiai deimtainiai skaičiai gali turėti enkl¹. Dvejetainių deimtainių skaičių enklui ymėti naudojama atskira tetrada (paprastasis 2/10 kodas) arba baitas (iplėstinis 2/10 kodas), idėstomi skaičiaus pradioje. + enklas koduojamas 0000B, o 1001B bitų kombinacijomis.
Postūmio komandos skirtos akumuliatoriaus turiniui paslinkti per vien¹ bit¹ į kairź arba deinź RLC, RAL postūmio į kairź komandų veikim¹ galima pavaizduoti grafikai, kaip parodyta
39 pav.
39 pav. RLC, RAL postūmio į kairź komandų veikimas
RRC, RAR postūmio į deinź komandų veikim¹ galima pavaizduoti grafikai, kaip parodyta
40 pav.
40 pav. RRC, RAR postūmio į deinź komandų veikimas
Postūmio komandose keičiamas tik CY poymis. RLC ir RAL, kaip RRC ir RAR komandos skiriasi tik tuo, kad RLC ir RRC komandose stumiami 8 akumuliatoriaus bitai, o RAL ir RAR komandose postūmio cikle dalyvauja 9 bitai (CY vyresnysis ir atuoni (A7 A0) akumuliatoriaus bitai).
INR, DCR ir INX, DCX komandos labai patogios, organizuojant ciklų skaitiklius, kurie danai naudojami programavimo praktikoje. INR, DCR komandomis inkrementuojami ir dekrementuoji registrai arba atminties lastelelės, naudojant tiesioginį arba netiesioginį registrų adresavimo būd¹. INX, DCX komandos keičia (1 didina ar maina) registrų poros (BC, DE, HL ir registro SP) turinį ir gali būti taikomos adresui modifikuoti.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 921
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved