汇编语言开发过程详解
程序开发过程
一、逐步开发
(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
到此这篇关于汇编语言开发过程的文章就介绍到这了,更多相关汇编语言开发过程内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!
相关文章
- 这篇文章主要介绍了vscode搭建STM32开发环境的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-02
- 下面我们一起来看一篇关于 安卓开发之Intent传递Object与List的例子,希望这个例子能够为各位同学带来帮助。 Intent 不仅可以传单个的值,也可以传对象与数据集合...2016-09-20
- 这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
- 在日常开发中,总会接触到各种接口,前后端数据传输接口,第三方业务平台接口,下面这篇文章主要给大家介绍了关于如何设计一个安全的API接口的相关资料,需要的朋友可以参考下...2021-08-12
- 在微信公众号平台开发者那里,在“账号管理”那里,有一项功能是“生成带参数的二维码”,通过这儿生成的二维码,只要通过微信扫一扫之后,会把事件自动推送到微...2016-05-19
- 从这一节开始,我们将从零开始打造我们的chrome插件工具库,第一节我们将讲一下插件开发的基础知识并构建一个简单但却很实用的插件,在构建之前,我们先简单的了解一下插件以及插件开发的基础知识...2020-10-03
Cocos2d-x UI开发之CCControlColourPicker控件类使用实例
这篇文章主要介绍了Cocos2d-x UI开发之CCControlColourPicker控件类使用实例,本文代码中包含大量注释来讲解CCControlColourPicker控件类的使用,需要的朋友可以参考下...2020-04-25- 这篇文章主要给大家分享我对JS插件开发的一些感想和心得的相关资料,需要的朋友可以参考下...2016-02-09
- 这篇文章主要为大家介绍了Java开发SpringBoot如何集成接口文档的实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步...2021-10-28
- 前页我们讲了 Drupal8模块开发之路由、控制器和菜单链接教程 ,现在我们将学习进一步开发Drupal8模块,区块和表单。 上一教程:Drupal8模块开发之路由、控制器和菜单链...2016-11-25
- 这篇文章主要介绍了24个ES6方法解决JS实际开发问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-01
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
这篇文章主要介绍了详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现的相关资料,需要的朋友可以参考下...2017-03-13- 这篇文章主要介绍了汇编语言MUL指令无符号数乘法的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-04
Android 组件开发之带label的文本输入框(EditText)
文章给大家介绍Android 组件开发之带label的文本输入框(EditText),有需要了解的朋友可参考,希望此教程对各位有所帮助。 在Android开发中,我们的Activity都不免要用...2016-09-20.Net WInform开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用
中午没事,把去年刚毕业那会画的几张图翻出来了,大概介绍Winform应用程序运行的过程,以及TCP协议在Winform中的应用。感兴趣的朋友可以了解下;如果有Windows消息机制等基础,很好理解这两张...2020-06-25Unity3D游戏开发数据持久化PlayerPrefs的用法详解
在本篇文章里小编给大家整理了关于Unity3D游戏开发之数据持久化PlayerPrefs的使用的相关知识点内容,需要的朋友们参考下。...2020-06-25基于React-Dropzone开发上传组件功能(实例演示)
这篇文章主要介绍了基于React-Dropzone开发上传组件,主要讲述的是在React-Flask框架上开发上传组件的技巧,需要的朋友可以参考下...2021-08-16- 这两天项目开发中,需要实现一些比较实用的功能,用了两个使用的sql,总结一下,怕下次忘记了。 1. 检索数据库中跟提交的内容相匹配的内容 比如:提交的数据是“游...2016-11-25
- win7下搭建nginx+php的开发环境,需要的朋友可以参考下...2016-05-22
- ASP.Net开发常见的一些问题总结,需要的朋友可以参考一下...2021-09-22