Mikroprocesoriaus komandos
5 (100%) 1 vote

Mikroprocesoriaus komandos

Tūrinys

1. Įvadas. Užduoties analizė. 3

2. Komandų paskirtis ir operandų adresavimas. Komandų formatai. 4

2.1. Pagrindiniai adresavimo būdai: 4

2.2. Komanda mul. Paskirtis ir adresavimo būdai. 7

2.3. Komanda imul. 9

3. Komandų šešioliktainiai kodai. 11

4. Eksperimentinė dalis. 11

5. Išvados 13

Literatūra: 14



1. Įvadas. Užduoties analizė.

Kažkada asembleris buvo kalba, be kurios buvo neįmanoma priversti kompiuterį kažką padaryti. Laikui bėgant situacija keitėsi. Atsirasdavo naujos programavimo kalbos, kurios buvo patogesnės bendraujant su kompiuteriu – tokios kaip C, Basic, Delphi… Tačiau asembleris, skirtingai nuo kitų programavimo kalbų, nemirė, tuo labiau jis iš principo negalėjo mirti. Kodėl? Todėl, kad asembleris – tai mašininio kodo simbolinė išvaizda. Visi procesai kompiuteryje vykdomi tik mašininio kodo komandomis (instrukcijomis). Todėl visi aukšto lygio kalbų kompiliatoriai turi išėjimo į asemblerio lygio programavimo galimybę arba turi ryšio priemones tarp savu ir asemblerio modulių. Kompiuteriui asemblerio kalba yra suprantamiausia, todėl efektyviausia programa gali būti parašyta tik asembleriu. Tačiau tai sunkus ir labai didelis, reikalaujantis daug atidumo darbas. Todėl realiai asembleriu rašomos tik programos, kurios turi veikti labai greitai ir neužimti daug atminties. Kartais asembleriu rašoma tik programos dalis, o paskui ji suderinama su likusia kodo dalimi parašyta aukšto lygio programavimo kalba.

Mes aptarsime dvi asemblerio programavimo kalbos komandas – mul ir imul, jų paskirtį, operandų adresavimo būdus ir pateiksime jų taikymo pavyzdžius.2. Komandų paskirtis ir operandų adresavimas. Komandų formatai.

2.1. Pagrindiniai adresavimo būdai:

Tiesioginis adresavimas:

Tai paprasčiausias adresavimo būdas. Šiuo atveju efektyvusis adresas yra pačioje komandoje. Duomenų apdorojimo komandose tiesioginis adresas nurodomas po adresavimų einančiu poslinkiu

7 1 7 0 7 0 7 0

COP d W 00 Reg 110 Disp L Disp H

1 pav. Komandos su tiesioginiu adresavimu formatas

Bitas „d“ rodo duomenų perdavimo kryptį. Jeigu d=1, operandas perduodamas į registrą, nustatomą lauke Reg, t. y. kai d=1– registras yra imtuvas, kai d=0 – registras yra siųstuvas.

Tiesioginis adresas besąlyginės tarpsegmentinės pereigos ir kreipimosi į paprogramius komandose formuojamas iš 16 bitų poslinkio Disp ir 16 bitų segmento adreso Seg (4 pav.).

7 0 7 0 7 0 7 0 7 0

COP Disp L Disp H Seg L Seg H

2 pav. Besąlyginės pereigos ir kreipimosi į paprogramius

komandų formatas, kai adresavimas tiesioginis

Komandos vykdymo metu poslinkis perduodamas į komandų skaitiklį IP, o segmento adresas – į registrą CS. Šiuo atveju komandos ilgis yra 5 baitai. Jeigu pereiga vykdoma segmento viduje, baitai Seg L ir Seg H netaikomi, o esant artimai pereigai tampa nereikalingas ir baitas Disp H. Tokiu atveju efektyvusis pereigos adresas apskaičiuojamas pagal formulę: ,

čia FA – fizinis adresas, prie kurio reikia pereiti; (IP) – komandų skaitiklyje nurodytas einamosios komandos paskutiniojo baito adresas.Registrinis adresavimas:

Komandose su registriniu adresavimu operandas yra viename iš bendrosios paskirties registrų. Kadangi registrams adresuoti pakanka 2–3 komandos kodo skilčių, tai tokių komandų kodai yra neilgi (1–2 baitai). Be to, jiems vykdyti reikalingas minimalus kompiuterio laikas, nes operandai yra procesoriaus viduje.

Galimi tokie komandų formatai:

1) registro adresas nurodomas operacijos kodo baite;

7 3 2 0

COP Reg

2) registro (registrų) adresas nurodomas adresavimo baite;

7 1 0 7 6 5 3 2 0

COP d W Mod Reg R/M

Kai Mod=11, abu operandai yra registruose, kuriuos nurodo laukai Reg ir R/M. Bitų d ir W paskirtis tokia pati kaip ir tiesioginio adresavimo atveju, t. y. kai d=1, registras, nurodytas lauke Reg, yra informacijos imtuvas, kai W=1, operacijos vykdomos su 16 bitų operandais.

Šalutinis registrinis adresavimas:

Komandose su šalutiniu registriniu adresavimu 16 bitų vykdymo (efektyvusis) adresas EA yra viename iš registrų, kurį nustato adresavimo baito laukas R/M. Šiam tikslui gali būti panaudotas vienas iš registrų BX, SI arba DI

7 1 0 7 6 5 3 2 0

COP d W 00 Reg R/M



15 0

BX/SI/DI EA

Toks adresavimo būdas naudojamas besąlyginių perėjimų ir kreipimosi į paprogrames komandose.

Bazinis ir indeksinis adresavimas:

Esant baziniam adresavimui vykdymo adresas EA gaunamas sudedant registrų BX arba BP turinius su 8 arba 16 skilčių poslinkiu.

7 1 0 7 6 5 3 2 0 7 0 7 0

COP d W Mod Reg R/M Disp L Disp H

7 0

BX / BP / SI / DI

Jeigu poslinkis yra 8 skilčių, tai jis pateikiamas papildomuoju kodu iš skaičių intervalo nuo –128 iki +127.

Kai adresavimas bazinis, galima dirbti su duomenimis, esančiais įvairiose atminties vietose.

Indeksinis adresavimas skiriasi nuo bazinio tik tuo, kad vietoje bazinio registro BX ir bazės rodiklio BP panaudojami indeksų registrai SI ir DI. Toks adresavimo būdas patogus apdorojant duomenų masyvus, kai poslinkis rodo bazinį masyvo adresą,
o indeksų registro turinys – masyvo elemento indeksą.

Bazinis-indeksinis adresavimas:

7 1 0 7 6 5 3 2 0 7 0 7 0

COP d W Mod Reg R/M Disp L Disp H

15 0

BX / BP

15 0

SI / DI

Šiuo atveju vykdymo adresas EA formuojamas sumuojant bazinio ir indeksų registrų turinius su postūmiu:

8 skilčių postūmis pateikiamas papildomuoju kodu iš skaičių diapazono –128 … +127.

Šio tipo adresavimas naudojamas dirbant su sudėtingos struktūros duomenimis, nes leidžia vienu metu keisti dvi adreso komponentes.Santykinis adresavimas:

Esant šiam adresavimui vykdymo adresas EA apskaičiuojamas

sumuojant komandų skaitiklio IP einamąjį turinį (pirmojo kitos komandos baito adresas) su postūmiu, nurodytu komandoje.

7 0 7 0 7 0

COP Disp L Disp H

15 0

IP

8 arba 16 skilčių postūmis imamas iš skaičių su ženklu diapazonuose –128 …+127 arba –32768 …+32767:

Santykinis adresavimas taikomas tik pereigų, kreipinių į paprogramius ir ciklų valdymo komandose.

2.2. Komanda mul. Paskirtis ir adresavimo būdai.

Komanda mul skirta dviems sveikiems operandams sudauginti neatsižvelgiant į ženklą.

Komandos sintaksė:Komandos formatas:

Komanda atlieka daugybos operacija neatsižvelgiant į ženklą. Algoritmas priklauso nuo komandos operando formato ir reikalauja tiksliai nustatyti tik vieną operandą, kuris gali būti atmintyje arba registre. Antro operando radimosi vieta iškarto nusakyta, o jo dydis priklauso nuo pirmo operando:

• Jeigu operandas, esantis komandoje – baitas, tai antras daugiklis turi būti laikomas registre al;

• Jeigu operandas, esantis komandoje – žodis, tai antras daugiklis turi būti laikomas registre ax;

• Jeigu operandas, esantis komandoje – dvigubas žodis, tai antras daugiklis turi būti laikomas registre eax.

Daugybos rezultatas įrašomas į kaupiklį:

Šiuo metu Jūs matote 50% šio straipsnio.
Matomi 928 žodžiai iš 1845 žodžių.
Peržiūrėkite iki 100 straipsnių per 24 val. Pasirinkite apmokėjimo būdą:
El. bankininkyste - 1,45 Eur.
Įveskite savo el. paštą (juo išsiųsime atrakinimo kodą) ir spauskite Tęsti.
SMS žinute - 2,90 Eur.
Siųskite sms numeriu 1337 su tekstu INFO MEDIA ir įveskite gautą atrakinimo kodą.
Turite atrakinimo kodą?
Po mokėjimo iškart gausite atrakinimo kodą, kurį įveskite į laukelį žemiau:
Kodas suteikia galimybę atrakinti iki 100 straispnių svetainėje ir galioja 24 val.