Labor elmélet 2. Flashcards
Általános célú regiszterek
- AX: számos aritmetikai utasítás cél, ill. forrásregisztere
- BX: memóriacímzésnél használható bázisnak
- CX: ciklusokhoz használható, minden iteráció során eggyel csökken
- DX: I/O utasítások itt tárolják a port számaikat, ill. bizonyos aritmetikai utasítások használják
MOV művelet
•MOV cél,forrás
–a forrásoperandus tartalmát átmásolja a céloperandusba
ADD művelet
•ADD cél, forrás
–két operandus összeadását végzi el, az eredményt a céloperandus helyére írja
•befolyásolt flag-ek A, C, O, P, S, Z
SUB művelet
•SUB cél, forrás
–forrásoperandust kivonja a céloperandusból, és az eredményt a céloperandusba teszi
•befolyásolt flag-ek O, S, Z, P, A, C
CMP utasítás
•CMP cél, forrás
–két operandus összehasonlítása
–kivonja a forrásoperandust a céloperandusból, az operandusok tartalma változatlan marad, azonban a jelzők megváltoznak
•befolyásolt flag-ek O, S, Z, P, A, C
JMP utasítás
•JMP cél
•feltétel nélküli ugrás végrehajtása
–hatására a program vezérlését egy másik utasítás kapja meg anélkül, hogy a visszatérésről bármilyen információt tárolna
–ugrási távolság szegmensen belül bárhová
JZ,JNZ, JC, JNC utasítások
•feltételes ugrás végrehajtása
–J(feltétel)
–feltétel lehet pl. a jelzőbitek
–ugrási távolság -128 -+ 127 bájt
Bináris műveletek
•AND
◦csak akkor 1, ha mindkét bit értéke 1
◦maszkolásra lehet használni
•OR
◦csak akkor 0, ha mindkét bit értéke 0
•XOR
◦csak akkor 1, ha különböznek a bit értékei ◦komplemens képzésre lehet használni
•SHL
◦bitléptetés balra, szorozva 2-vel, belépő bit 0
•SHR
◦bitléptetés jobbra, osztva 2-vel, belépő bit 0
•ROR
◦bitléptetés jobbra, belépő bit a kilépő bit értéke
•ROL
◦bitléptetés balra, belépő bit a kilépő bit értéke
Címzési módok
- Azonnali címzés
- Regisztercímzés
- Közvetlen címzés
- Közvetett regisztercímzés
- Relatív báziscímzés
- Közvetlen indexelt címzés
- Indexelt báziscímzés eltolással vagy anélkül
- 80386-os kiegészítések
Azonnali címzés
-MOV AH,00 MOV AL,04 -MOV AX,0FFFFH ◦betűvel kezdődő hexadecimális szám elé 0-t kell írni -MOV AX,302 ◦előjelkibővítés -MOV AL,-40 ◦előjelkibővítés, nem kettes komplemens!
Regisztercímzés
- legkevesebb gépi ciklus
- MOV DS,AX
- MOV DL,AL
Közvetlen címzés
-MOV AX,OFFSET MYDATA
◦MYDATA címke egy memóriacímke, ahol az adat van
Közvetett regisztercímzés
-forrásoperandus megcímzése egy helyzetcímmel történik, amely a következő regiszterek egyikében található
◦SI, DI, BX (BP)
-MOV BX,OFFSET MYDATA
MOV AX,[BX]
-LEA BX,MYDATA
-jól alkalmazható, amikor az adatokat egy táblázatban tároltuk
-bázisregiszter értékét egy ciklusban növeljük
Relatív báziscímzés
-leggyakrabban összetett adatszerkezeteknél (rekordok) használják
-BX (BP) összegezzük az eltolási értékkel
◦BX (BP): rekord megcímzése◦eltolás: mező megcímzése
-LEA [BX] + 4
-LEA4[BX]
-LEA[BX + 4]
Közvetlen indexelt címzés
-leggyakrabban statikus tömbök elemeinek eléréséhez használják
-az eltolási értéket egy indexregiszterhez (SI vagy DI) adják hozzá
-MOV SI,4
MOVAL,ARAY1[SI]
(MOVAX,ARAY1[SI])