北京暖心陪诊张姐 發表於 2021-3-26 11:32:59

汇编语言开发过程详解

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>一、逐步开发</li><ul class="second_class_ul"><li>(1)源程序的编辑</li><li>(2)源程序的汇编</li><li>(3)目标文件的连接</li><li>(4)可执行文件的运行</li></ul><li>二、列表文件与调试程序</li><ul class="second_class_ul"><li>(1)列表文件</li><li>(2)调试程序</li></ul><li>三、快速开发</li><ul class="second_class_ul"></ul></ul></div><p>程序开发过程</p>
<p style="text-align: center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202103/2021032611205282.png" /></p>
<p class="maodian"></p><h2>一、逐步开发</h2>
<p style="text-align: center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202103/2021032611205383.png" /></p>
<p class="maodian"></p><h3>(1)源程序的编辑</h3>
<ul>
<li>源程序文件是无格式文件、纯文本类型</li>
<li>以.ASM为扩展名,可使用任何文本编辑器<br />
</li>
</ul>
<p>►Windows的记事本Notepad<br />
►其他程序开发工具中的编辑环境<br />
►专注于源程序编写的编辑软件,例如UltraEdit32</p>
<div class="jb51code">
<pre class="brush:plain;">
; 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</pre>
</div>
<p class="maodian"></p><h3>(2)源程序的汇编</h3>
<ul>
<li>生成目标模块文件(.OBJ)</li>
<li>MASM 6.x的汇编程序是ML.EXE</li>
</ul>
<div class="jb51code">
<pre class="brush:plain;">
BIN\ML /c /coff eg0101.asm</pre>
</div>
<p>►参数“/c”(小写字母)实现源程序的汇编<br />
►参数“/coff”(小写字母)生成COFF格式目标模块文件</p>
<blockquote>
<p>ML.EXE的参数区别大小写<br />
将源文件放在MASM目录</p>
</blockquote>
<p class="maodian"></p><h3>(3)目标文件的连接</h3>
<ul>
<li>把一个或多个目标文件和库文件合成一个可执行文件</li>
<li>可执行文件以.EXE为扩展名</li>
<li>32位连接程序被更名为LINK32.EXE</li>
</ul>
<div class="jb51code">
<pre class="brush:plain;">
BIN\LINK32 /subsystem:console eg0101.obj</pre>
</div>
<p>►“/subsystem:console”生成Windows控制台(Console)文件<br />
►“/subsystem:windows”生成Windows图形窗口的可执行文件</p>
<blockquote>
<p>使用批处理文件方便操作<br />
汇编程序只指出语法错误</p>
</blockquote>
<p class="maodian"></p><h3>(4)可执行文件的运行</h3>
<ul>
<li>进入控制台(或模拟DOS)环境</li>
<li>在命令行提示符下输入文件名(可以省略扩展名)按下回车键运行</li>
</ul>
<div class="jb51code">
<pre class="brush:plain;">
eg0101.exe</pre>
</div>
<p>运行错误,就需要</p>
<ul>
<li>静态排错:阅读分析源程序</li>
<li>动态排错:利用调试程序</li>
</ul>
<blockquote>
<p>不要在Windows下双击运行</p>
</blockquote>
<p class="maodian"></p><h2>二、列表文件与调试程序</h2>
<p class="maodian"></p><h3>(1)列表文件</h3>
<p>列表文件(.LST)含有源程序和目标代码</p>
<div class="jb51code">
<pre class="brush:plain;">
BIN\ML /c /coff /Fl eg0101.asm</pre>
</div>
<blockquote>
<p>“/Fl”创建列表文件(大写F、小写l,不是数字1)</p>
</blockquote>
<p>列表文件有两部分内容</p>
<ul>
<li>第一部分:源程序及其代码</li>
<li>第二部分:各种标识符</li>
</ul>
<p class="maodian"></p><h3>(2)调试程序</h3>
<ul>
<li>WinDbg是微软提供的Windows调试程序</li>
<li>WinDbg支持源程序级调试,但汇编、连接时要加入参数</li>
</ul>
<p>汇编时用“/Zi”(大写Z、小写i)参数</p>
<div class="jb51code">
<pre class="brush:plain;">
BIN\ML /c /coff /Fl /Zi eg0101.asm</pre>
</div>
<p>连接时用“/debug”参数</p>
<div class="jb51code">
<pre class="brush:plain;">
BIN\LINK32 /subsystem:console /debug eg0101.obj</pre>
</div>
<p class="maodian"></p><h2>三、快速开发</h2>
<p>快速开发的批处理文件MAKE32.BAT</p>
<div class="jb51code">
<pre class="brush:plain;">
@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</pre>
</div>
<p>快速开发过程</p>
<p>① 进入MASM目录:双击文件WIN32.BAT<br />
② 生成可执行文件:make32 eg0101</p>
<p>到此这篇关于汇编语言开发过程的文章就介绍到这了,更多相关汇编语言开发过程内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!</p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>奉献个公司计算机系统使用管理条例</li><li>导致计算机系统“死机”的原因及其预防方法</li><li>汇编语言:x86汇编指令大全及其注意事项</li><li>一位数乘法的汇编语言实现方法</li><li>汇编语言有关在屏幕区显示字符的四种方法(推荐)</li><li>计算机系统汇编语言和机器语言深入理解</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: 汇编语言开发过程详解