汇编语言开发过程详解

 更新时间:2021年03月26日 11:32:59   作者:BkbK-  
这篇文章主要介绍了汇编语言开发过程详解,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

程序开发过程

在这里插入图片描述

一、逐步开发

在这里插入图片描述

(1)源程序的编辑

  • 源程序文件是无格式文件、纯文本类型
  • 以.ASM为扩展名,可使用任何文本编辑器

►Windows的记事本Notepad
►其他程序开发工具中的编辑环境
►专注于源程序编写的编辑软件,例如UltraEdit32

; eg0000.asm in Windows Console
	include io32.inc
	.data
msg	byte 'Hello World'		; 数据定义
	.code
start:
	mov eax,offset msg	
	call dispmsg
	exit 0

	end start

(2)源程序的汇编

  • 生成目标模块文件(.OBJ)
  • MASM 6.x的汇编程序是ML.EXE
BIN\ML /c /coff eg0101.asm

►参数“/c”(小写字母)实现源程序的汇编
►参数“/coff”(小写字母)生成COFF格式目标模块文件

ML.EXE的参数区别大小写
将源文件放在MASM目录

(3)目标文件的连接

  • 把一个或多个目标文件和库文件合成一个可执行文件
  • 可执行文件以.EXE为扩展名
  • 32位连接程序被更名为LINK32.EXE
BIN\LINK32 /subsystem:console eg0101.obj

►“/subsystem:console”生成Windows控制台(Console)文件
►“/subsystem:windows”生成Windows图形窗口的可执行文件

使用批处理文件方便操作
汇编程序只指出语法错误

(4)可执行文件的运行

  • 进入控制台(或模拟DOS)环境
  • 在命令行提示符下输入文件名(可以省略扩展名)按下回车键运行
eg0101.exe

运行错误,就需要

  • 静态排错:阅读分析源程序
  • 动态排错:利用调试程序

不要在Windows下双击运行

二、列表文件与调试程序

(1)列表文件

列表文件(.LST)含有源程序和目标代码

BIN\ML /c /coff /Fl eg0101.asm

“/Fl”创建列表文件(大写F、小写l,不是数字1)

列表文件有两部分内容

  • 第一部分:源程序及其代码
  • 第二部分:各种标识符

(2)调试程序

  • WinDbg是微软提供的Windows调试程序
  • WinDbg支持源程序级调试,但汇编、连接时要加入参数

汇编时用“/Zi”(大写Z、小写i)参数

BIN\ML /c /coff /Fl /Zi eg0101.asm

连接时用“/debug”参数

BIN\LINK32 /subsystem:console /debug eg0101.obj

三、快速开发

快速开发的批处理文件MAKE32.BAT

@echo off
BIN\ML /c /coff /Fl /Zi %1.asm
if errorlevel 1 goto terminate
BIN\LINK32 /subsystem:console /debug %1.obj
if errorlevel 1 goto terminate
DIR %1.*
:terminate
@echo on

快速开发过程

① 进入MASM目录:双击文件WIN32.BAT
② 生成可执行文件:make32 eg0101

到此这篇关于汇编语言开发过程的文章就介绍到这了,更多相关汇编语言开发过程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在vs2017中编写汇编的实现(图文)

    在vs2017中编写汇编的实现(图文)

    这篇文章主要介绍了在vs2017中编写汇编的实现(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • libAccessibility通知Crash排查记录分析

    libAccessibility通知Crash排查记录分析

    这篇文章主要为大家介绍了libAccessibility通知Crash排查记录分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • iOS汇编入门教程之在Xcode工程中嵌入汇编代码的方法

    iOS汇编入门教程之在Xcode工程中嵌入汇编代码的方法

    在Xcode中嵌入汇编代码主要依赖了C语言支持通过 __asm__ 引入汇编代码的功能。这篇文章主要介绍了iOS汇编入门教程之在Xcode工程中嵌入汇编代码的方法,需要的朋友可以参考下
    2020-02-02
  • 从Go汇编角度解读for循环的问题

    从Go汇编角度解读for循环的问题

    Go常用的遍历方式有两种:for和for-range。这篇文章主要介绍了从Go汇编角度解读for循环的两个疑点,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 图文详解通俗易懂的汇编语言寄存器

    图文详解通俗易懂的汇编语言寄存器

    这篇文章主要为大家介绍了寄存器的内容详解,文中通过精美清晰的图文方式让你一看就通俗易懂,有需要的朋友可以借鉴参考学习下,希望能够有所帮助
    2021-11-11
  • 汇编语言之寄存器详解

    汇编语言之寄存器详解

    这篇文章主要介绍了汇编语言之寄存器详解,需要的朋友可以参考下
    2020-01-01
  • 汇编语言进制转换之16进制转10进制

    汇编语言进制转换之16进制转10进制

    这篇文章主要介绍了汇编语言进制转换之16进制转10进制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 通过汇编看golang函数的多返回值问题

    通过汇编看golang函数的多返回值问题

    这篇文章主要介绍了通过汇编看golang函数的多返回值问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 汇编语言 输入10个数排序并输出的实现

    汇编语言 输入10个数排序并输出的实现

    这篇文章主要介绍了汇编语言 输入10个数排序并输出的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 汇编语言中的各种寄存器介绍

    汇编语言中的各种寄存器介绍

    汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言.这篇文章主要介绍了汇编语言中的各种寄存器介绍,需要的朋友可以参考下
    2020-01-01

最新评论