博客
关于我
对汇编中一些基础知识的理解
阅读量:662 次
发布时间:2019-03-16

本文共 1110 字,大约阅读时间需要 3 分钟。

IA-32处理器和32位汇编语言入门

指令格式

IA-32处理器使用可变长度指令格式,这使得指令代码结构极为复杂。一般指令格式如下:

  • 指令前缀:0-4字节,由操作前缀和操作码组成。
  • 操作码:确定具体的操作类型。
  • ModR/M或SIB:指示操作数的位置。
  • 位移量或立即数:根据指令类型,可能是位移操作或直接的立即数值。

指令前缀主要分为四组,根据具体指令类型有所不同。ModR/M或SIB用于指定操作数的位置,其类型和作用取决于具体的指令。

汇编语句格式

汇编语句分为两种:执行性语句说明性语句

  • 执行性语句格式
  • 标号: 硬指令助记符 操作数; 注释
    - 标号:符合作高级语言的标示符。- 硬指令助记符:实际要执行的机器指令。- 操作数:常数或标号的位置。- 注释:必须前置,用于说明。
    1. 说明性语句格式
    2. 名字: 伪指令助记符 参数; 注释
      - 名称:符合作高级语言的变量或函数名。- 伪指令助记符:描述性语句的类型。- 参数:常数或表达式。- 注释:必须前置,用于说明。

      需要注意的是,标号和名字必须符合高级语言的命名规则,硬指令和伪指令均需指定详细信息。

      源程序框架

      IA-32汇编程序的结构由代码段、数据段和堆栈段组成。建议将执行性语句放入代码段。常见格式如下:

      include inc.32  ; 包含伪指令文件.data          ; 数据段开始  var1 db 0    ; 数据定义.dataend.code  Start:    ; 代码段实现  exit 0end Start
      • include用于包含伪指令文件。
      • .data.code是标准的汇编段标识符。
      • startend用于定义程序入口和结尾。

      总之,IA-32汇编程序的组织便于使用内存和逻辑分割,同时需注意符号规则和关键字正确使用。

      开发流程

    3. 编辑:使用汇编编辑软件(如MASM6.x)编辑源文件,保存为.asm格式。

    4. 编译:使用ML.EXE进行汇编,命令如:

    5. bin\ml /c/coff eg0201.asmbin\ml -c-coff eg0201.asm
      1. 连接:生成可执行文件,使用bin\link32工具,命令如下:
      2. bin\link32 /console eg0201.obj
        - 若需图形窗口可执行文件,可改为`windows`。
        1. 执行:在命令提示符输入.exe文件名称即可运行。

        2. 扩展输出:使用列表文件生成说明,命令如:

        3. bin\ml /c/coff /Fl eg0201.asm
          - 生成`.lst`文件,包含源代码解释和标注。

          通过对这些工具和命令的掌握,可以完成功能开发IA-32程序,形成完整的开发流程。

    转载地址:http://irjqz.baihongyu.com/

    你可能感兴趣的文章
    adb通过USB或wifi连接手机
    查看>>
    JDK9-15新特性
    查看>>
    TreeSet、TreeMap
    查看>>
    JVM内存模型
    查看>>
    可变长度参数
    查看>>
    3、条件查询
    查看>>
    cordova打包apk更改图标
    查看>>
    GitHub上传时,项目在已有文档时直接push出现错误解决方案
    查看>>
    文件系统的层次结构
    查看>>
    vue(渐进式前端框架)
    查看>>
    vscode设置eslint保存文件时自动修复eslint错误
    查看>>
    Remove Extra one 维护前缀最大最小值
    查看>>
    Linux操作系统的安装与使用
    查看>>
    C++ 继承 详解
    查看>>
    OSPF多区域
    查看>>
    Docker入门之-镜像(二)
    查看>>
    去了解拉绳位移编码器的影响因素
    查看>>
    无法初始化Winsock2.2处理
    查看>>
    vMotion 操作失败进度卡在14% ,报错: Operation Timed out
    查看>>
    重置UAG Application admin密码
    查看>>