zoukankan      html  css  js  c++  java
  • Win32汇编_基础

    Win32汇编_基础

    包含全部段的源程序结构:
    .386
    .model flat, stdcall
    Option casemap:none
    ;<
    一些include语句>
    .stack [
    堆栈段的大小]
    .data
    ;<
    一些初始化过的变量定义>
    .data?
    ;<
    一些没有初始化过的变量定义>
    .const
    ;<
    一些常量定义>
    .code
    ;<
    代码>
    ;<
    开始标号>
    ;  <
    其它语句>
    end 
    开始标号


    调用API:
    push uType
    push lpCaption
    push lpText
    push hWnd
    call MessageBox

    ;MASM
    编译器的伪指令
    invoke MessageBox, NULL, offset szText, offset lpCaption, MB_OK

    函数的返回值:
    一般放在eax.如果返回的内容不是一个eax所能容纳的,一般是eax中返回一个指向返回数据的指针,或者用参数提供一个缓冲区地址,数据直接返回到缓冲区中去.

    函数的声明:
    函数名 proto [距离] [调用方式] [参数1]: 数据类型, [参数2]: 数据类型, …
    参数名可以省略.

    标号:
    当在程序使用一条跳转指令的时候,可以用标号来表示跳转的目的地,在编译的时候会把它替换成地址,标号既可以定义在目标指令同一行的头部,也可以在目标指令前一行单独用一行定义.

    标号: 目标指令    ;方法1
    标号:: 目标指令   ;方法2
    方法1(一个冒号),作用域是当前子程序,方法2(一个冒号),作用域是整个程序

    @@:
    当用@@做标号时,可以用@F@B来引用它,@F表示本条指令后的第一个@@标号,@B表示本条指令前的第一个@@标号,程序中可以有多个@@标号,@F@B只寻找匹配最近的一个.

  • 相关阅读:
    枚举和字符串转换
    JavaScript string.format
    Jquery 中toggle的用法举例
    JQuery 实现倒计时
    找位置
    图算法
    文件操作总结
    动态规划——总结
    回文字符串
    a+b_1
  • 原文地址:https://www.cnblogs.com/w413133157/p/1803398.html
Copyright © 2011-2022 走看看