szerelési útmutató
További információk a szerelési útmutató.
Bit, a váltás logikai, aritmetikai, és ciklikus.
Megjegyzés: A legtöbb alábbi példák használ 8 bites számok, akkor kerül sor annak érdekében, hogy segítsen megérteni, hogyan működik.
shift funkció (váltás logikai operandus bal / jobb)
SHL operandus kolichestvo_sdvigov
SHR operandus kolichestvo_sdvigov
SHL és SHR eltolódott operandus (regisztrálja / memória), hogy a bal vagy a jobb egy kicsit, ill.
A fent említett lépéseket megismételjük, hogy hányszor értékével egyenlő a második operandus.
; Al = 01011011 (bináris)
SHR al, 3
; bl = 11100101 (bináris)
shl bl, 2
A parancs után nyilvántartás BL 10010100 (bináris). Az utolsó két bitet nullákkal töltjük fel, a carry flag be van állítva, mert az utolsó bit kiterjesztett balra volt 1
Van még két másik műveleti kód (operandus aritmetikai bal / jobb)
SAL operandus kolichestvo_sdvigov
SAR operandus kolichestvo_sdvigov
SAL csapat ugyanaz, mint SHL, de a SAR nem egészen ugyanaz, mint SHR. SAR parancs valamint SHR és jobbra eltolódik minden bit az operandus egy kicsit, ahol a kihúzható jobb bit lesz az értéke a carry flag vö Megjegyzés: a bal operandus betoljuk egy nem nulla bit SHR, és az értéke az első bit az operandus. például:
Al = 10100110
sar al, 3
Al = 11110100
sar al, 2
Al = 11111101
bl = 00100110
sar bl, 3
bl = 00000010
rol operandus kolichestvo_sdvigov; ciklikus eltolás balra operandus
ror operandus kolichestvo_sdvigov; operandus jobb ciklikus eltolás
rcl operandus kolichestvo_sdvigov; ciklikus eltolás operandus balra át a carry flag
rcr operandus kolichestvo_sdvigov; ciklikus eltolás operandusok egészen carry flag
A ciklikus eltolás ofszet emlékezteti előadott a biteket szorult vissza a másik oldalról:
Példa: ror parancsot (jobb oldali gyűrűs eltolási)
Amint a fenti ábrán, a biteket forgatjuk, azaz minden egyes bit amelyek ismét megnyomjuk behelyezve a másik kezével. cf carry flag értékét tartalmazza az utolsó bit eltolódott.
RCL és RCR változó összes bitet balra operandus (az RCL) vagy jobbra (az RCR) egy kicsit, míg az idősebb (az RCL) vagy kisebb (az RCR) értékké válik cf kicsit átutalás zászló; egyidejűleg át a régi érték a zászló cf szorult az operandus a jobb oldalon (az RCL) vagy balra (az RCR) és értékké válik Jr. (az RCL) vagy idősebb (az RCR) bit operandus. Ezeket a lépéseket addig hányszor értékével egyenlő a második operandus.
ROL és ROR változó összes bitet az operandus balra (a ROL) vagy jobbra (a ROR) egy kicsit, míg az idősebb (a ROL) vagy kisebb (a ROR) operandus bit szorult az operandus a jobb oldalon (a ROL) vagy balra (a ROR ), és lesz egy értéket Jr. (a ROL) vagy idősebb (az ROR) bites operandus; egyidejűleg kihúzható bit lesz az értéke a carry flag vö Ezeket a lépéseket addig hányszor értékével egyenlő a második operandus.
Veremműveletekhez.
Néha, amikor hívni bizonyos rutinok szeretné menteni a regiszterek helyes működését a program a jövőben. Ehhez, akkor következetesen egy olyan nyilvántartás verem és kivonat pontosan ugyanúgy:
Nyomja eax
Nyomja ebx
Nyomja ecx
[Minden más regiszterek]
......
[Előveszi a maradék regiszterek]
Pop ecx
Pop ebx
Pop eax
Ez a megközelítés nagyon nehézkes erre a célra is létrehozott pushad csapat. Ez megőrzi az összes terjeszteni regisztereket a verem. Ennek parancs popad kell letölteni a köteg nyilvántartásokban.
Van is egy parancs, hogy mentse a fiatalabb regiszterek pushaw és popaw. Ezek megegyeznek a parancsokat PUSH AX, CX, DX, BX, SP, BP, SI, DI és POP DI, SI, BP, BX, DX, CX, AX.
Néha szükség van, hogy megőrizze az értékeket a zászlók után egy műveletet végez. Ez megköveteli a csapat pushf és popf. Ezek a parancsok vannak tárolva a verem értéke a zászlók regisztráljon, vagy visszaállíthatja onnan.
Megváltoztatása a processzor zászlókat.
CLC telepítési CF = 0
CLD telepítési DF = 0
CLI telepítés Ha = 0
LAHF loading regisztrálja AH regiszter zászlók: beállítja bit 7, 6, 4, 2 és 0 az értékek a zászlók SF ZF AF PF CF.
SAHF felvétel regiszterbe AH regiszter zászlók: beállítja a zászlók SF ZF AF PF CF bitek 7, 6, 4, 2 és 0 AH regiszter.
STC beállítás CF = 1
STD telepítés DF = 1
STI beállítást, ha = 1
Ebben a leckében tanult többet a szerelési útmutató. A következő lecke, én megmondom, mi az adat egység működését. Mi nem pihenni, olvasni a következő lecke.