Assembler äëÿ íà÷èíàþùèõ


         

Ìîæíî èçâëå÷ü òî, ÷òî


 
 
                                         PAGE    ,132
                                         TITLE   Ôèã. 4.7 Îïåðàöèè ñî ñòåêîì
            0000                   CODE    SEGMENT
                                         ASSUME  CS:CODE,DS:CODE
            0000                   EXWORD  LABEL   WORD
 
            0000  50                           PUSH    AX        ; Ïîìåñòèòü ðåãèñòð â ñòåê
            0001  56                           PUSH    SI
            0002  0E                           PUSH    CS        ; Ìîæíî ïîìåñòèòü â ñòåê ñåãìåíòíûé ðåãèñòð
            0003  FF 36 0000 R                 PUSH    EXWORD          ; Ìîæíî òàêæå ïîìåñòèòü â ñòåê ÿ÷åéêó ïàìÿòè
 
            0007  8F 06 0000 R                 POP     EXWORD          ; Ìîæíî èçâëå÷ü òî, ÷òî â ïîìåùåíî â ñòåê
            000B  07                           POP     ES        ; Ìîæíî èçâëå÷ü â äðóãîå ìåñòî
            000C  5F                           POP     DI
            000D  5B                           POP     BX
 
            000E  9C                           PUSHF             ; Äðóãàÿ ìíåìîíèêà äëÿ ôëàãîâ
            000F  9D                           POPF
 
                                   ;-----  Ïðèìåð, äåìîíñòðèðóþùèé ïåðåäà÷ó ïàðàìåòðîâ
 
            0010  50                           PUSH    AX
            0011  53                           PUSH    BX
            0012  51                           PUSH    CX
            0013  52                           PUSH    DX
            0014  E8 0017 R                    CALL    SUBROUTINE      ; Ïåðåäà÷à óïðàâëåíèÿ
                                   ;           ...               ; Ïðîäîëæåíèå ïðîãðàììû
 
            0017                   SUBROUTINE      PROC    NEAR
 
            0017  8B EC                  MOV     BP, SP          ; Çàíåñåíèå â BP àäðåñà ñòåêà
            0019  8B 46 02                     MOV     AX, [BP+2]      ; Âûáîðêà ïîñëåäíåãî ïàðàìåòðà (DX)
            001C  8B 5E 04                     MOV     BX, [BP+4]      ; Âûáîðêà òðåòüåãî ïàðàìåòðà (CX)

Ñîäåðæàíèå  Íàçàä  Âïåðåä