Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
BulgaraCeha slovacaCroataEnglezaEstonaFinlandezaFranceza
GermanaItalianaLetonaLituanianaMaghiaraOlandezaPoloneza
SarbaSlovenaSpaniolaSuedezaTurcaUcraineana

įstatymaiįvairiųApskaitosArchitektūraBiografijaBiologijaBotanikaChemija
EkologijaEkonomikaElektraFinansaiFizinisGeografijaIstorijaKarjeros
KompiuteriaiKultūraLiteratūraMatematikaMedicinaPolitikaPrekybaPsichologija
ReceptusSociologijaTechnikaTeisėTurizmasValdymasšvietimas

Aritmetinės ir loginės komandos

kompiuteriai



+ Font mai mare | - Font mai mic



DOCUMENTE SIMILARE

Aritmetinės ir loginės komandos

Komandos skirtos aritmetinės sudėties, atimties, loginės daugybos, sumos, išskirtinio “ARBA”, duomenų palyginimo, dešimtainė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¹rašas 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 – išskirtinis “ARBA”;

- CMP, CPI – duomenų palyginimas;

- DAA – dešimtainė korekcija;

- RLC, RAL – postūmis į kairź;

- RRC, RAR – postūmis į dešinź;

- INR, INX – didinimas 1 (inkrementavimas);

- DCR, DCX – mažinimas 1 (dekrementavimas).

2 lentelė. Mikroprocesoriaus I8085 aritmetinės ir loginės komandos

Eil.

Nr.

Komandos

mnemonika

Požymiai

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 dešimtainė 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ų žodžiais (DW). Visos komandos keičia požymius, išskyrus 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 betarpiškai įrašytas komandoje. Taigi šiose komandose naudojamas tiesioginis, netiesioginis registrų ir betarpiškas 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 požymį.

Atliekant aritmetinės sudėties ADD komand¹, kai sudedami du baitai pateikti paprast¹jame dvejetainiame dešimtainiame (2/10 – kodas, BCD – angl. Binary Code Decimal kodas) kode, gautojo A registre rezultato dešimtainei korekcijai naudojama DAA komanda. Ši komanda tikrina CY, AC požymius ir koreguoja rezultat¹ taip, kad būtų gautas teisingas 2/10 kodo skaičius. DAA komanda įrašoma programoje po ADD komandos. Duomenų apdorojimas tiesiogiai skaitmeniniame 2/10 kode dažnai taikomas sistemose, naudojančiose dešimtainių skaičių įvedimo ir išvedimo įtaisus (pvz. staklių skaitmeninio programinio valdymo sistemose), nes nereikalauja tarpinių transformacijų 2/10 kodo į dvejetainį ir atvirkščiai.

Dvejetainis dešimtainis kodas turi du formatus:

paprast¹jį (suglaust¹);

išplėstinį.

Paprast¹jame dvejetainiame dešimtainiame formate bet kuriam dešimtainiam 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 dešimtainius skaičius nuo 00 iki 99. Didesniems dešimtainiams skaičiams reikia daugiau baitų (1 baitas dviem skaitmenims).

Išplėstiniame dvejetainiame dešimtainiame formate kiekvienam dešimtainiui skaičiui skirtas vienas baitas, kuriame panaudota tik jaunesnioji tetrada. Baito vyresnioji tetrada nenaudojama, jos kodas yra 0000B. Išplėstinis formatas, palyginus su paprastuoju, reikalauja dvigubai didesnės atminties dvejetainiams dešimtainiams skaičiams saugoti. Tačiau šis formatas labai gerai derinasi su tekstiniu ASCII (angl. American Standart Code for Informacion Interchange) kodu, kuris naudojamas išoriniams mainams tarp asmeninio kompiuterio ir įšorinių įrenginių (pvz. skaitmeninės sistemos). Pastarasis kodas gaunamas išplėstinio 2/10 kodo vyresniojoje tetradoje įrašius skaitmens požymį – 0011B (3H) koda.

Dvejetainiai dešimtainiai skaičiai gali turėti ženkl¹. Dvejetainių dešimtainių skaičių ženklui žymėti naudojama atskira tetrada (paprastasis 2/10 kodas) arba baitas (išplėstinis 2/10 kodas), išdėstomi skaičiaus pradžioje. “ + “ ženklas koduojamas 0000B, o “– “– 1001B bitų kombinacijomis.

Postūmio komandos skirtos akumuliatoriaus turiniui paslinkti per vien¹ bit¹ į kairź arba dešinź RLC, RAL postūmio į kairź komandų veikim¹ galima pavaizduoti grafiškai, kaip parodyta

39 pav.

39 pav. RLC, RAL postūmio į kairź komandų veikimas

RRC, RAR postūmio į dešinź komandų veikim¹ galima pavaizduoti grafiškai, kaip parodyta

40 pav.

40 pav. RRC, RAR postūmio į dešinź komandų veikimas

Postūmio komandose keičiamas tik CY požymis. 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 aštuoni (A7 A0) akumuliatoriaus bitai).

INR, DCR ir INX, DCX komandos labai patogios, organizuojant ciklų skaitiklius, kurie dažnai 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 mažina) registrų poros (BC, DE, HL ir registro SP) turinį ir gali būti taikomos adresui modifikuoti.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 874
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved