P000 Architektura počítačů

Obsah
Předchozí:
Podmíněné skoky

Zásobník

PUSH Uložení 16bitového objektu do zásobníku:
1) SP:=SP-2
2) [SS:SP]:=operand_16bitový
PUSH m16
PUSH r16
PUSH segment
PUSH slovo
PUSH AX
PUSH CS
POP Výběr 16bitového objektu ze zásobníku:
1) pomocná:=[SS:SP]
2) SP:=SP+2
3) operand_16bitový:=pomocná
POP m16
POP r16
POP segment
POP slovo
POP BX
NELZE: POP CS !!!
POP SS zakazuje přerušení na dobu provedení této a následujcí instrukce

8086:     SP=6 !!!             80286,...   SP=6 !!!
PUSH SP   SP:=6-2=4            PUSH SP     SP:=6-2=4
          [4]:=4                           [4]:=6
POP  SP   POM:=[4]=4           POP  SP     POM:=[4]=6
          SP:=4+2=6                        SP:=4+2=6
          SP:=POM=4                        SP:=POM=6
          SP=4 !!!                         SP=6 !!!
            
V 8086 dává posloupnost        V 80286,...  "PUSH SP" ukládá SP
instrukcí "PUSH SP" a          do zásobníku nesnížené o 2 !!
"POP SP" špatný výsledek !!
sledující: Volání a návrat z podprogramu
Obsah

Michal Brandejs brandejs@informatics.muni.cz