peperonity Mobile Community
Welcome, guest. You are not logged in.
Log in or join for free!
 
New to peperonity.com?
Your username allows you to login later. Please choose a name with 3-20 alphabetic characters or digits (no special characters).

IMPORTANT: Choose your name WISELY as you cannot change it later on! This is due to the fact that we will submit your pages to major search engines so that they can be found properly. 
Please enter your own and correct e-mail address and be sure to spell it correctly. The e-mail adress will not be shown to any other user. 
This password protects your account. To avoid typos it must be entered twice. Please enter 5-20 alphabetic characters or digits (no special characters). Choose a password that is not easy to guess! Never disclose your password to anyone. 
This password protects your account. To avoid typos it must be entered twice. Please enter 5-20 alphabetic characters or digits (no special characters). Choose a password that is not easy to guess! Never disclose your password to anyone. 
Stay logged in
Enter your username and password to log in. Forgot login details?

Username 
CAUTION: Do not disclose your password to anybody! Only enter it at the official login of peperonity.com. We will never ask for your password in a message! 
Login
Stay logged in

Share photos, videos & audio files
Create your own WAP site for free
Get a blog
Invite your friends and meet people from all over the world
All this from your mobile phone!
For free!
Get started!

You can easily invite all your friends to peperonity.com. When you log in or register with us, you can tell your friends about exciting content on peperonity.com! The messaging costs are on us.
Meet our team member Marzus and learn how to create your own mobile site!

Aritmetins komandos - sypsniux



Aritmetins komandos
5.2. Aritmetins komandos

ADD – sudtis
1. registras + registras / atmintis
0000 00dw mod reg r/m [poslinkis]

2. registras / atmintis + betarpi?kas operandas
1000 00sw mod 000 r/m [poslinkis] bet.op.j.b. [bet.op.v.b]

Jeigu s:w = 01, tada betarpi?kas operandas yra imamas i? 16 komandos bit.

Jeigu s:w = 11, tada betarpi?kas operandas yra imamas i? 8 komandos bit ir
i?pleiamas iki 16 bit pagal ?enklo pltimo taisykl: jeigu vyriausiame bite buvo 1,
tada i?pleiame vienetais, o jeigu vyriausiame bite buvo 0, tada i?pleiame nuliais.

Jeigu w = 0, tai s gali bti lygu 0 arba 1 – betarpi?kas operandas bus vieno baito.

3. akumuliatorius + betarpi?kas operandas
0000 010w bet.op.j.b [bet.op.v.b., jei w = 1]


ADC – ADd with Carry – sudtis, skaitant perne?imo bit CF.
Komanda yra analogi?ka komandai ADD, tik papildomai pridedamas CF:
operandas1 + operandas2 + CF

1. registras + registras / atmintis
0001 00dw mod reg r/m [poslinkis]

2. registras / atmintis + betarpi?kas operandas
1000 00sw mod 010 r/m [poslinkis] bet.op.j.b. [bet.op.v.b]

69

Jeigu s:w = 01, tada betarpi?kas operandas yra imamas i? 16 komandos bit.

Jeigu s:w = 11, tada betarpi?kas operandas yra imamas i? 8 komandos bit ir
i?pleiamas iki 16 bit pagal ?enklo pltimo taisykl: jeigu vyriausiame bite buvo 1,
tada i?pleiame vienetais, o jeigu vyriausiame bite buvo 0, tada i?pleiame nuliais.

Jeigu w = 0, tai s gali bti lygu 0 arba 1 – betarpi?kas operandas bus vieno baito.

3. akumuliatorius + betarpi?kas operandas
0001 010w bet.op.j.b [bet.op.v.b., jei w = 1]


INC – INCrement – didinimas vienetu.
1. registras / atmintis
1111 111w mod 000 r/m [poslinkis]

2. registras
01000 reg

?ia komanda inkrementuojami tik ?odiniai registrai.


SUB – SUBtract – atimtis.
1. registras / atmintis ~ registras
Abu operandai gali bti pirmu arba antru operandu. Rezultatas u?ra?omas pirmj.
0010 10dw mod reg r/m [poslinkis]

Nors atimt realizuoja sudtis su prie?ingu ?enklu, bet interpretuojamo lygio komand
kodai turi skirtis, tam kad komanda sudaryt antr operand papildomu kodu, ir tada
pritaikyt aparatrin sudties veiksm.

2. registras / atmintis - betarpi?kas operandas
1000 00sw mod 101 r/m [poslinkis] bet.op.j.b. [bet.op.v.b]

Jeigu s:w = 01, tada betarpi?kas operandas yra imamas i? 16 komandos bit.

Jeigu s:w = 11, tada betarpi?kas operandas yra imamas i? 8 komandos bit ir
i?pleiamas iki 16 bit pagal ?enklo pltimo taisykl: jeigu vyriausiame bite buvo 1,
tada i?pleiame vienetais, o jeigu vyriausiame bite buvo 0, tada i?pleiame nuliais.

Jeigu w = 0, tai s gali bti lygu 0 arba 1 – betarpi?kas operandas bus vieno baito.

3. akumuliatorius - betarpi?kas operandas
0010 110w bet.op.j.b. [bet.op.v.b.,w = 1]


SBB – SuBtraction with Borrow – atimtis su pasiskolinimu
Komanda yra analogi?ka komandai SUB, tik papildomai atimamas CF:
operandas1 - operandas2 –
CF

70

1. registras / atmintis ~ registras
Abu operandai gali bti pirmu arba antru operandu. Rezultatas u?ra?omas pirmj.
0001 10dw mod reg r/m [poslinkis]

2. registras / atmintis - betarpi?kas operandas
1000 00sw mod 011 r/m [poslinkis] bet.op.j.b. [bet.op.v.b]

Jeigu s:w = 01, tada betarpi?kas operandas yra imamas i? 16 komandos bit.

Jeigu s:w = 11, tada betarpi?kas operandas yra imamas i? 8 komandos bit ir
i?pleiamas iki 16 bit pagal ?enklo pltimo taisykl: jeigu vyriausiame bite buvo 1,
tada i?pleiame vienetais, o jeigu vyriausiame bite buvo 0, tada i?pleiame nuliais.

Jeigu w = 0, tai s gali bti lygu 0 arba 1 – betarpi?kas operandas bus vieno baito.


3. akumuliatorius - betarpi?kas operandas
0001 110w bet.op.j.b. [bet.op.v.b., w = 1]


DEC – DECrement – suma?inimas vienetu.
1. registras / atmintis
1111 111w mod 001 r/m [poslinkis]

2. registras
01001 reg

?ia komanda dekrementuojami tik ?odiniai registrai.


CMP – CoMPare – palyginimas.
Komanda naudojama po?ymi formavimui, veikia pana?iai kaip ir komanda SUB,
taiau nesimena rezultato.

Po?ymi formavimas:


Jeigu operandai yra skaiiai be ?enklo:


OF SF ZF CF
op.1 > op.2 N N 0 0
op.1 = op.2 N N 1 0
op.1 < op.2 N N 0 1

op. – operandas;
N – nesvarbu.

Jeigu operandai yra skaiiai su ?enklu:


71


KOMPIUTERI ARCHITEKTRA


OF SF ZF CF
op.1 > op.2 0 / 1 0 / 1 0 N
op.1 = op.2 0 0 1 N
op.1 < op.2 0 / 1 0 / 1 0 N


op. – operandas;
N – nesvarbu.
0 / 1 – 0 arba 1, priklausomai, nuo konkrei lyginam reik?mi.



Skaii su ?enklu palyginimas, diapazone -128 – 127 :


SF OF
0 < A – B <= 127 0 0
A – B > 127 1 1
-128 <= A – B < 0 1 0
A – B < -128 0 1


Taigi A > B, kai : 1. OF = 0; SF = 0 ,t.y., kai OF lygu SF
2. OF = 1; SF = 1

A < B, kai : 1. OF = 1; SF = 0 ,t.y., kai OF nelygu SF
2. OF = 0; SF = 1

Algoritmas po?ymiui OF nustatyti:


jeigu sudties operacijos at?vilgiu operand ?enklo bitai skiriasi arba operand ir
rezultato ?enklo bitai yra vienodi, tai OF = 0;
jeigu operand ?enklo bitai yra vienodi, bet rezultato ?enklo bitas skiriasi, tai OF = 1.


Pavyzd?iai:


1. 10 - 5
(10)
= (1010)
10 2
(5) = (101) , 0000 0101
10 2


1111 1010
+

1
1111 1011 = (-5)
10

0000 1010
+

1111 1011
10000 0101 OF = 0, SF = 0


72

2. 100 - (-101)
= (1100100)
(100)
10 2
(101) = (1100101)
10 2


0110 0100
+

0110 0101
1100 1001 OF = 1, SF = 1



3. -3 - (7)
(3)
= (11) 0000 0011
10 2,


1111 1100
+

1
1111 1101 = (-3)
10

= (111) 0000 0111
(7)
10 2,


1111 1000
+

1
1111 1001 = (-7)
10

1111 1101
+

1111 1001
11111 0110 OF = 0, SF = 1

4. -101 - (100)
(101)
= (1100101) 0110 0101
10 2


1001 1010
+

1
1001 1011 = (-101)
10


(100)
= (110010) 0110 0100
10 2


1001 1011
+

1
1001 1100 = (-100)
10


1001 1011
+

1001 1100
10011 0111 OF = 1, SF = 0


1. registras / atmintis ~ registras
Abu operandai gali bti pirmu arba antru operandu.
0011 10dw mod reg r/m [poslinkis]




73


KOMPIUTERI ARCHITEKTRA

2. registras / atmintis - betarpi?kas operandas
1000 00sw mod 111 r/m [poslinkis] bet.op.j.b. [bet.op.v.b.]

Jeigu s:w = 01, tada betarpi?kas operandas yra imamas i? 16 komandos bit.

Jeigu s:w = 11, tada betarpi?kas operandas yra imamas i? 8 komandos bit ir
i?pleiamas iki 16 bit pagal ?enklo pltimo taisykl: jeigu vyriausiame bite buvo 1,
tada i?pleiame vienetais, o jeigu vyriausiame bite buvo 0, tada i?pleiame nuliais.

Jeigu w = 0, tai s gali bti lygu 0 arba 1 – betarpi?kas operandas bus vieno baito.

3. akumuliatorius - betarpi?kas operandas
0011 110w bet.op.j.b. [bet.op.v.b., w = 1]


MUL – MULtiply – skaii be ?enklo daugyba
1111 011w mod 100 r/m [poslinkis]

Jeigu dauginami baitai, tai:
registre AL esanti reik?m · operandas 2 registras AX

Jeigu dauginami ?od?iai, tai:
registre AX esanti reik?m · operandas 2 registrai [DX, AX]

Jeigu daugybos ruzultato vyresnioji pus yra nulin, tada CF = 0 ir OF = 0, prie?ingu
atveju CF = 1 ir OF = 1.


IMUL – Integer MULtiply – skaii su ?enklu daugyba
1111 011w mod 101 r/m [poslinkis]

Jeigu dauginami baitai, tai:
registre AL esanti reik?m · operandas 2 registras AX

Jeigu dauginami ?od?iai, tai:
registre AX esanti reik?m · operandas 2 registrai [DX, AX]

Jeigu daugybos rezultato vyresniosios puss kiekvieno bito reik?m lygi jaunesniosios
puss vyriausiam bitui, t.y., daugybos rezultato vyresnioji pus yra tik jaunesniosios
puss ?enklo i?pltimas, tada rezultatas tilpo jaunesniojoje pusje, todl CF = 0 bei
OF = 0. Prie?ingu atveju, CF = 1 ir OF = 1.

DIV – DIVide – skaii be ?enklo dalyba.
1111 011w mod 110 r/m [poslinkis]

Jeigu w = 0, tada daliklis yra baitas, ir:
registre AX esanti reik?m : operandas 2 dalmuo registre AL liekana registre AH


Jeigu w = 1, tada daliklis yra ?odis, ir:

74

dalmuo registre AX
registruose[DX, AX] esanti reik?m : operandas 2
liekana registre DX

Jeigu dalmuo netelpa registre AL (kai w = 0) arba AX (kai w = 1), tada generuojamas
pertraukimas – dalyba i? nulio.


IDIV – Integer DIVide – skaii su ?enklu dalyba.
1111 011w mod 111 r/m [poslinkis]

Jeigu w = 0, tada daliklis yra baitas, ir:
registre AX esanti reik?m : operandas 2 dalmuo registre AL
liekana registre AH

Jeigu w = 1, tada daliklis yra ?odis, ir:
registruose[DX, AX] esanti reik?m : operandas 2 dalmuo registre AX
liekana registre DX

Dalybos i? nulio pertraukimas kyla tada, kai dalmuo-baitas netelpa diapazone: -128 –
127 , arba dalmuo-?odis netelpa diapazone: -32768 – 32767.


NEG – NEGative – ?enklo keitimas
1111 011w mod 011 r/m [poslinkis]

Rezultatas yra analogi?kas rezultatui, kur gautume atlik tok veiksm:
0 - operandas operandas

Fakti?kai, pritaikius komand NEG, operand gauname papildomu kodu.


This page:





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