peperonity.net
Welcome, guest. You are not logged in.
Log in or join for free!
 
Stay logged in
Forgot login details?

Login
Stay logged in

For free!
Get started!

Text page


sypsniux.peperonity.net

registras SF

4.11. Po?ymi registras SF

Po?ymi registras SF (Status Flag) neturi numerio, nra adresuojamas, o jo
panaudojimas yra susietas su konkreiomis komandomis. Tai yra paskutinis i?
nagrinjam registr, jis yra 16 bit, i? kuri ne visi yra naudojami. Visas registras
dalyvauja tik dviejose operacijose: dti SF stek ir paimti SF i? steko, o visos kitos
komandos operuoja su atskirais registro SF bitais, kurie turi individualius vardus ir
yra vadinami po?ymiais. Kai kurie i? bit fiksuoja vykdyt komand slygos kodus,
pagal kuriuos organizuojamas slyginis valdymo perdavimas, kiti bitai parodo
einamj procesoriaus bsen.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x x x OF DF IF TF SF ZF x AF x PF x CF

Po?ymius jaunesniuose bituose nustato aritmetins logins komandos.

CF Carry Flag perne?imo po?ymis
PF Parity Flag lyginumo po?ymis
AF Auxiliary Carry Flag papildomo perne?imo po?ymis
ZF Zero Flag nulio po?ymis
SF Sign Flag ?enklo po?ymis
TF Trap Flag “spast” po?ymis
IF Interrupt Flag pertraukimo leidimo po?ymis
DF Direction Flag krypties po?ymis
OF Overflow Flag perpildymo po?ymis

59

Registras SF:

0-inis bitas

CF – Carry Flag – perne?imo po?ymis, naudojamas didesnio tikslumo aritmetiniuose
veiksmuose. Paprastai aritmetiniai veiksmai atliekami su duomenimis 8 arba 16 bit.
16
Taiau kartais reikia apdoroti skaiius, didesnius u? 2
. Didesni skaiiai gali bti
saugomi keliuose ?od?iuose, specialiai suformuojant tokius skaiius keliuose
?od?iuose. Aritmetiniai veiksmai su didesniais skaiiais atliekami irgi specialiais
veiksmais programiniu bdu, remiantis veiksm su ?od?iais komandomis. Sudedant
du 16 bit ?od?ius, rezultatas gali netilpti 16- bit, nes jo saugojimui gali reikti 17
bit. Tokio, 17-tojo bito, vaidmen atlieka po?ymis CF. Be to yra specialus ADD
komandos variantas ADC, kuriuo prie operand susumuoja CF bito reik?m ir taip pat
formuoja po?ym CF.

Po?ymis CF yra naudojamas ir atimties komandoje SUB tam, kad atspindti
“pasiskolinimo“ fakt, jeigu pirmasis operandas 16-oje bit yra ma?esnis u? antr
operand. Komanda SBB atima ne tik antr operand i? pirmojo, bet dar atima ir
po?ym CF, taip skaitant “pasiskolinim”.
Po?ymis CF galt bti naudojamas reik?mi palyginimui jas atimant. Toks
palyginimo po?ymis tinka skaiiams be ?enklo. Skaiiams su ?enklu palyginti
reikalingi papildomi po?ymiai.

1-as bitas

Nenaudojamas

2-as bitas

PF parodo rezultato vienetini bit skaiiaus lyginum. PF = 1, jei rezultato vienetini
bit skaiius yra lyginis.

3-as bitas

Nenaudojamas

4-as bitas

AF – Auxiliary Carry Flag – papildomo perne?imo po?ymis, naudojamas atliekant
aritmetinius veiksmus su de?imtainiais skaiiais. ?is po?ymis negali bti panaudotas
slyginio valdymo perdavimo komandose.

De?imtain aritmetika pana?i arba tiesiog atitinka simbolin informacij, kuria
operuoja ?mogus, kuri jis veda kompiuter ir priima i? kompiuterio. Todl
taikymuose, kur skaiiavimai yra nesudtingi, netikslinga eikvoti laik ir resursus
pervedimui i? simbolinio formato fiksuoto kablelio dvejetain vidin format ir
atvirk?iai.

Be to, de?imtainiai skaiiai gali bti naudojami kaip alternatyva slankaus kablelio
skaiiams, kai neleistinas netikslumas, atsirandantis dl dvejetains sistemos
nesugebejimo tiksliai i?reik?ti de?imtaines reik?mes. ?inoma, t pat bt galima
atlikti ir fiksuoto kablelio skaiiais, pervedant trupmeninius skaiius sveik skaii

60

mstel. Tai atliekama padauginant trupmenin skaii i? 10
trupmeniniame skaiiuje skaitmen po kablelio skaiius. Tada programoje kablelis
tegali bti menamas, programos turimas „omeny”.

Aritmetiniams veiksmams su de?imtainio formato skaiiais naudojamos tos paios
fiksuoto kablelio skaii komandos. Taiau j pagalba gautas rezultatas gali bti
nekorekti?kas de?imtaini skaii formato prasme. Vis pirma, pusbaityje gali gautis
?e?ioliktain reik?m, netenkinanti formato (A – F). Tokiu atveju tam, kad gauti
korekti?k rezultat, reikia pridti 6.

Atliekant sudties veiksm, rezultate gali vykti perne?imas i? jaunesniojo pusbaiio
vyresnyj. To perne?imo svoris yra 16 (sistemos pagrindas), o tuo tarpu de?imtainje
sistemoje perne?imo svoris yra 10. Todl tam, kad perne?im btu galima traktuoti
kaip de?imtain, turime pridti 6. Taigi jei buvo perne?imas per pusbait, tai reikia
pridti 6, o jei nebuvo, tada nebereikia nieko pridti. Perne?imo per pusbait fakt ir
fiksuoja papildomo perne?imo po?ymis AF.

Veiksmai su de?imtainiais skaiiais atliekami po vien bait. Paprastos bait sudties
korekcij de?imtainio formato prasme atlieka komanda DAA, kuri prideda 6, jeigu
po?ymis AF = 1, arba jeigu pusbaityje yra gautas ?e?ioliktainis skaiius,
netenkinantis formato (A – F).

Atimties atveju po?ymis AF yra formuojamas “pasiskolinimo” atveju, o komanda
DAS atlieka de?imtains atimties korekcij – pagal nustatyt po?ym atima 6.
ia buvo kalbama apie supakuotus de?imtainius skaiius, kuomet viename baite
saugomi du de?imtainiai skaitmenys. Po?ymis AF taip pat naudojamas i?pakuot
de?imtaini de?imtaini skaii sudties ir atimties operacij fiksuoto kablelio
komandomis gaut rezultat koregavimui. Tokios komandos yra AAA (sudiai) ir
AAS (atimiai). ?iomis komandomis formuojami skaiiai diapazone 0 – 9, viename
baite, t.y., 30H – 39H ASCII kodais.

5-tas bitas

Nenaudojamas

6-tas bitas

ZF – Zero Flag – parodo, ar paskutins operacijjos rezultatas yra nulinis. ZF = 1, jei
rezultatas = 0.


7-tas bitas

SF – Sign Flag – parodo, koks yra paskutins operacijos rezultato vyriausias bitas
(po?ymis nustatomas po aritmetini ir logini operacij).


8-tas bitas

TF – Trap Flag – ?ingsninio komand vykdymo (spst) po?ymis. Jeigu jis yra
nustatytas, tai po kiekvienos komandos (i?skyrus tuos atvejus, kai pertraukimas
leid?iamas tik vykd?ius kit, toliau esani komand, t.y., prefiksini komand ir
komand, keiiani segmento registr reik?mes; plaiau tai yra apra?yta skyrelyje

61


KOMPIUTERI ARCHITEKTRA

apie pertraukim sistem) vyksta pertraukimas su kodu 1. ?is po?ymis negali bti
tiesiogiai valdomas komandomis.


9-tas bitas

IF – Interrupt Flag – pertraukimo po?ymis. Jeigu IF = 1, tai yra leid?iami i?oriniai
maskuojami pertraukimai. Nemaskuojams i?orinis pertraukimas su kodu 2 kyla dl
operatyviosios atminties klaid. Jeigu IF = 0, tada i?oriniai pertraukimai neleid?iami.
Po?ymis IF veikia i? karto visus i?orini rengini maskuojamus pertraukimus.
renginiai yra pajungti prie pertraukim kontrolerio, kuris yra i?orinis renginys
mikroprocesoriaus at?vilgiu. Galima sisti informacij i? mikroprocesoriaus
pertraukimo kontrolerio portus mikroprocesoriaus komandomis OUT. Pertraukimo
kontroleris yra tais portais susijs su renginiais, kurie gali pasisti pertraukimo
signal. Jeigu reikia maskuoti tik kai kuri rengini pertraukimus, tai pertraukimo
leidim arba draudim galima valdyti per pertraukimo kontrolerio port, kuris sieja t
konkret rengin su pertraukim kontroleriu. Tokiu atveju pertraukimas nuo
konkretaus renginio yra u?maskuojamas pertraukimo kontrolerio lygyje, t.y., jis nra
perduodamas mikroprocesori. Pastebsime, kad prastu atveju pertraukimo
maskavimas yra atliekamas mikroprocesoriuje, t.y., pertraukim kontroleris perduoda
mikroprocesoriui pertraukimo signal, kur gauna i? renginio, o tada
mikroprocesorius, priklausomai nuo po?ymio IF reik?ms, j reaguoja arba ne.


10-bitas

DF – Destination Flag – krypties po?ymis yra naudojamas eilutinse komandose,
indeksini registr reik?mi keitimui. Jeigu DF = 0, tai indeksiniai registrai yra
didinami vienetu arba dviem, priklausomai nuo to, ar operuojame baitais ar ?od?iais.
Jeigu DF = 1, tai indeksiniai registrai yra ma?inami vienetu arba dviem, priklausomai
nuo to, ar operuojame baitais ar ?od?iais. Ar indeksinius registrus reikia didinti ar
ma?inti, nusprend?iame pagal situacij. Pavyzd?iui.:


Jeigu taip, inkrementuodami,
?altinis (source)
kopijuosime, sugadinsime ?altin.

Tikslas (destination)








?altinis (source)

Taip kopijuojant ir dekrementuojant
?altinis nepa?eid?iamas.







Tikslas (destination)

62


11-tas bitas

OF – Overflow Flag – perpildymo po?ymis. Tai yra vienintelis bitas vyresniajame
po?ymi registro baite, formuojamas aritmetinse komandose. Perpildymo bitas
naudojamas skaiiams su ?enklu (papildomu kodu), pana?iai kaip perne?imo bitas CF
yra naudojamas de?imtainio formato skaiiams.

Tiek skaiiams be ?enklo, tiek skaiiams su ?enklu, aritmeti?kai sudti naudojama ta
pati komanda, kuri abiem atvejais duoda teisinga rezultat, i?skyrus t atvej, kai
sudedant du skaiius su ?enklu, gautas rezultatas netelpa skaii su ?enklu diapazone:
-128 – 127 arba -32768 – 32767.

12-tas, 13-tas, 14-tas, 15-tas bitai

Nenaudojami


This page:




Help/FAQ | Terms | Imprint
Home People Pictures Videos Sites Blogs Chat
Top
.