• invoke和call的区别


    INVOKE 的语法如下:

    INVOKE expression [,arguments]

    expression 既可以是一个函数名也可以是一个函数指针。参数由逗号隔开。


    INVOKE是编译器支持的伪指令,会检查参数.  

    CALL会直接去栈里取参.   INVOKE最后也会变成 PUSH PUSH ... CALL 的形式



    所以最好用invoke 调用函数,编译器会帮你检查参数是否传对。

    .386   ;指令集
    .model flat,stdcall ;工作模式
    option casemap:none   ;格式

    ;include文件定义
    include windows.inc
    include user32.inc
    includelib user32.lib
    include kernel32.inc
    includelib kernel32.lib

    ;数据段
    .data ;用来放已经定义并且初始化了的变量
    szCaption db 'A MessageBox !',0
    szText db 'Hello World !',0
    .data? ;用来放未定义的变量
    .const  ;放定义完的常量

    ;代码段定义
    .code
    start:
    push NULL
    push offset szText
    push offset szCaption
    push MB_OK

    call MessageBox

    invoke ExitProcess,NULL
    end start  

  • 相关阅读:
    jQuery 入门 -- 事件 事件绑定与事件委托
    原生js实现视差风格音乐播放器
    jQuery 入门
    一些开放的免费接口【已失效】
    php mysqli操作数据库
    DOM 相关
    面向对象
    对象
    博客园添加鼠标点击特效
    正则表达式
  • 原文地址:https://www.cnblogs.com/nanfengnan/p/13894380.html
Copyright © 2020-2023  润新知