e411_07.asm

来自「汇编的大作业源代码 包括基本和进阶的汇编语言的运用 对初学者很有帮助 内有更详细」· 汇编 代码 · 共 66 行

ASM
66
字号
STACK   SEGMENT STACK
        DW      100H DUP(?)
STACK   ENDS

DATA    SEGMENT PARA
S1      DB      'IN PROC P1',0DH,0AH,'$'
S2      DB      'IN PROC P2',0DH,0AH,'$'
S3      DB      'IN PROC P3',0DH,0AH,'$'
DATA    ENDS

CODE1   SEGMENT PARA
        ASSUME  CS:CODE1,SS:STACK

MAIN    PROC    FAR
        MOV     AX,DATA
        MOV     DS,AX

        CALL    P1

        CALL    NEAR PTR P1

        CALL    FAR PTR P1                      ;虽然也可以调用 但因为是在段内 最好不要这样写

        CALL    FAR PTR P2
;       CALL    P2                              ;不可以这样调用 因为P2在CODE2中 不在CODE1中

        MOV     AX,SEG P3
        PUSH    AX                              
        CALL    FAR PTR P3

        MOV     AX,4C00H
        INT     21H
MAIN    ENDP

P1      PROC    NEAR
        PUSH    DX
        LEA     DX,S1
        MOV     AH,9
        INT     21H
        POP     DX                              ;此处少写一弹出栈
        RET
P1      ENDP

P3      PROC    FAR
        PUSH    DX
        LEA     DX,S3
        MOV     AH,9
        INT     21H
        POP     DX
        RET
P3      ENDP
CODE1   ENDS


CODE2   SEGMENT PARA
        ASSUME  CS:CODE2
P2      PROC    FAR
        PUSH    DX
        LEA     DX,S2
        MOV     AH,9
        INT     21H
        POP     DX
        RET
P2      ENDP
CODE2   ENDS
        END     MAIN

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?