М. З. Якубова техника ғылымдарының кандидаты, доцент


PUSH командасы (операндты стекке енгізу)



бет81/141
Дата26.09.2023
өлшемі3.68 Mb.
#478578
1   ...   77   78   79   80   81   82   83   84   ...   141
КОМПЬЮТЕРЛІК ЖҮЙЕЛЕР АРХИТЕКТУРАСЫ

PUSH командасы (операндты стекке енгізу)
Push командасы SP стекке сілтеуіштің мәнін екіге азайтып отырады және осы жаңа шыңға екі байттық шығарушы операнд- ты енгізеді (стекке жаңа мәлімет қосады). Стекке тек бүтін сөз- дерді (байттарды емес) қосуға болады. Программа стекке енгізу- дің әр push командасына кері шығару pop командасы сәйкес келуін қатаң бақылап отыруы керек. Егер кейбір мәліметтерді уақытша сақтау үшін қолданылатын болса, стектен оларды сақ- талуына кері ретпен шығарып алады. Қабылдаушы операнд ре- тінде кез келген 16 разрядты регистр (сегменттікті де қосуға бо- лады) немесе жады ұяшығы пайдаланылады. Push командасы процессордың флагтарына әсер етпейді. Push – pop командалар жұбы мәліметтерді стек арқылы регистрден регистрге жөнелту шін қолданылады.
158
159
  • мысал

  • push ES: mem; мәліметтерді сақтау push DS; mem жадыдан сөзді
    push BP; қосымша сегмент, сонымен қатар DS және ВР реги-
    стрлері
    pop PP; стектен қалыпқа келтіру pop DS; үш операнд
    pop ES: mem; кері ретпен
  • мысал

  • push DS; DS стек арқылы жөнелту pop ES; енді ES=DS
    Байттың мәнін ондық санау жүйесінде баспаға беру есебінің
    қарапайым шешілу жолы
    Мысал:

org 100h

; СОМ-файлдың басталуы

1

2

begin:

; программа кодының басталу белгісі

mov dh, 33

; dh регистріне 33 санын енгіземіз

mov al, dh

; al регистріне 33 санын енгіземіз

xor ah, ah

; ah нөлге айналдыру

mov bl, 10

; bl регистріне 10 санын жазамыз

xor cx, cx

; сх санағышын нөлге теңестіру (санағыш)

@1:

; @1 белгісін орнатамыз

div bl

; таңбасыз бүтін санды (ах регистрін) санға бөлеміз (bl ре- гистрі)

push ax

; ax регистрін стек арқылы тасымалдаймыз

inc cx

; сх регистрін1-ге арттырамыз (санағыш)

xor ah, ah

; ah нөлге айналдыру

or ax, ax

; өз-өзіне логикалық (бит бойынша) қосу

jnz @1

; егер zf флагы нөл емес болса, онда @1 белгісіне көшеміз

@2:

; үзуді шақыру, символды шақыру;

pop ax

; al регистріне 10 санын жазамыз



Достарыңызбен бөлісу:
1   ...   77   78   79   80   81   82   83   84   ...   141




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет