• ASM调用子过程,传参方式


    1。寄存器传值

     1     page 60,132
     2 TITLE 堆栈传值
     3 ;------------------------------------
     4         .MODEL     SMALL
     5         .STACK    64
     6 ;------------------------------------
     7 .DATA
     8 BCX        DW    65535    ;被乘数
     9 MULS    DW    2        ;乘数
    10 ;------------------------------------
    11         .CODE        
    12 MAIN    PROC    FAR
    13         MOV AX,@data
    14         MOV DS,AX
    15         
    16         PUSH BCX
    17         PUSH MULS
    18         
    19         CALL MYMUL
    20                 
    21         MOV        AX,4C00H
    22         INT     21H
    23 MAIN    ENDP        ;过程结束
    24 
    25 MYMUL     PROC NEAR
    26         PUSH BP
    27         MOV BP,SP
    28         MOV AX,SS:[BP+6]
    29         MUL WORD PTR SS:[BP+4]
    30         
    31         POP BP
    32         RET 4
    33 MYMUL     ENDP
    34 
    35         END MAIN    ;程序结束
    36         

    2。堆栈传值。

     1     page 60,132
     2 TITLE 堆栈传值
     3 ;------------------------------------
     4         .MODEL     SMALL
     5         .STACK    64
     6 ;------------------------------------
     7 .DATA
     8 BCX        DW    65535    ;被乘数
     9 MULS    DW    2        ;乘数
    10 ;------------------------------------
    11         .CODE        
    12 MAIN    PROC    FAR
    13         MOV AX,@data
    14         MOV DS,AX
    15         
    16         PUSH BCX
    17         PUSH MULS
    18         
    19         CALL MYMUL
    20                 
    21         MOV        AX,4C00H
    22         INT     21H
    23 MAIN    ENDP        ;过程结束
    24 
    25 MYMUL     PROC NEAR
    26         PUSH BP
    27         MOV BP,SP
    28         MOV AX,SS:[BP+6]
    29         MUL WORD PTR SS:[BP+4]
    30         
    31         POP BP
    32         RET 4
    33 MYMUL     ENDP
    34 
    35         END MAIN    ;程序结束
    36         

    3。寄存器传引用

     1     page 60,132
     2 TITLE 寄存器传引用
     3 ;------------------------------------
     4         .MODEL     SMALL
     5         .STACK    64
     6 ;------------------------------------
     7 .DATA
     8 BCX        DW    65535    ;被乘数
     9 MULS    DW    2        ;乘数
    10 ;------------------------------------
    11         .CODE        
    12 MAIN    PROC    FAR
    13         MOV AX,@data
    14         MOV DS,AX
    15         LEA BX,BCX
    16         LEA SI,MULS
    17         
    18         CALL MYMUL
    19                 
    20         MOV        AX,4C00H
    21         INT     21H
    22 MAIN    ENDP        ;过程结束
    23 
    24 MYMUL     PROC NEAR
    25         MOV AX,[BX]
    26         MUL WORD PTR [SI]
    27         RET
    28 MYMUL     ENDP
    29 
    30         END MAIN    ;程序结束
    31         


    4。堆栈传引用

     1     page 60,132
     2 TITLE  堆栈传引用
     3 ;------------------------------------
     4         .MODEL     SMALL
     5         .STACK    64
     6 ;------------------------------------
     7 .DATA
     8 BCX        DW    65535    ;被乘数
     9 MULS    DW    2        ;乘数
    10 ;------------------------------------
    11         .CODE        
    12 MAIN    PROC    FAR
    13         MOV AX,@data
    14         MOV DS,AX
    15         
    16         LEA AX, OFFSET BCX
    17         PUSH AX
    18         LEA AX, OFFSET MULS
    19         PUSH AX
    20         CALL MYMUL
    21                 
    22         MOV        AX,4C00H
    23         INT     21H
    24 MAIN    ENDP        ;过程结束
    25 
    26 MYMUL     PROC NEAR
    27         
    28         PUSH BP
    29         MOV BP,SP
    30         MOV BX,[BP+6]
    31         MOV SI,[BP+4]
    32         MOV AX,[BX]
    33         MUL WORD PTR [SI]
    34         
    35         POP BP        
    36         RET 4
    37         
    38 MYMUL     ENDP
    39 
    40         END MAIN    ;程序结束
    41         
  • 相关阅读:
    VMWARE虚拟机提示 "您正在运行的此虚拟机已启用侧通道缓解。侧通道缓解可增强安全性,但也会降低性能""
    appSettings 配置节中不存在项"formldStr"
    PVC圆管直接跑MPS计划需求单的部件材料用量为空
    [转]Linux安装tomcat
    mysql磁盘满
    Linux开机自启动
    mysql主从配置
    tar解压与压缩
    ubuntu中的root用户
    mysql二进制日志
  • 原文地址:https://www.cnblogs.com/wucg/p/2447096.html
Copyright © 2020-2023  润新知