x86汇编语言 编写第一个汇编程序hello world
<p></p><div class="toc"><div class="toc-container-header">目录</div><ul><li>一、准备运行环境</li><li>二、编写汇编代码</li><li>三、生成汇编程序并执行</li></ul></div><p></p><h2 id="一准备运行环境">一、准备运行环境</h2>
<p>先准备汇编语言运行环境,在此下载:https://download.csdn.net/download/ljw_study_in_CSDN/12997354</p>
<p>打开<code>DOSBox0.74-win32-installer</code>,安装。</p>
<h2 id="二编写汇编代码">二、编写汇编代码</h2>
<p>在汇编语言中,用分号<code>;</code>表示注释,类似于C/C++的<code>//</code>表示注释。</p>
<p>一个汇编程序的固定语法格式:</p>
<pre><code>;数据段
data segment
;此处定义数据变量类型
data ends
;代码段
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
;------
;此处写需要实现的功能
;------
mov ah,4ch ;4ch表示从用户程序返回操作系统,结束程序
int 21h
code ends
end start
</code></pre>
<p>输出"hello world"的代码:</p>
<pre><code>;数据段
data segment
;定义字节大小(8位)的字符串,变量名为string
;db表示字节
;0dh,0ah表示回车换行
;$表示字符串终止符
string db 'Hello World!',0dh,0ah,'$'
data ends
;代码段
code segment
assume cs:code,ds:data
start:
;push ds
;mov ax,0
;push ax
mov ax,data
mov ds,ax
;------
lea dx,string
mov ah,09h ;ah是ax的高8位,功能号09h表示输出dx指向的字符串string
int 21h ;中断指令,调用用户程序,执行ah中设置的09h号功能
;------
mov ah,4ch ;功能号4ch表示从用户程序返回操作系统,结束程序
int 21h
code ends
end start
</code></pre>
<p>本地可以用notepad++,将语言设置为A-Assembly,支持汇编语言的语法高亮,看着会比较舒服。<br>
<img src="https://img-blog.csdnimg.cn/20201021160035641.png" alt="在这里插入图片描述" loading="lazy"><br>
notepad++文本编辑器显示的语法高亮很好看:<br>
<img src="https://img-blog.csdnimg.cn/20201021165301514.png" alt="在这里插入图片描述" loading="lazy"></p>
<h2 id="三生成汇编程序并执行">三、生成汇编程序并执行</h2>
<p>将第一步中下载的masm5文件夹存于D盘,比如路径为<code>D:\masm5</code>,然后将编写的代码文件保存为<code>hello.asm</code>,存于<code>D:\masm5</code>。<br>
<img src="https://img-blog.csdnimg.cn/20201021164432802.png" alt="在这里插入图片描述" loading="lazy"><br>
打开第一步安装好的<code>DOSBox 0.74</code>,输入命令:</p>
<pre><code class="language-dos">mount c d:/masm5
c:
dir
</code></pre>
<p>如下图:<br>
<img src="https://img-blog.csdnimg.cn/20201021164653754.png" alt="在这里插入图片描述" loading="lazy"><br>
然后输入命令:</p>
<pre><code class="language-dos">masm hello.asm //再按三下回车
link hello.obj //再按三下回车
hello
</code></pre>
<p>结果如下:<br>
<img src="https://img-blog.csdnimg.cn/20201021165706383.png" alt="在这里插入图片描述" loading="lazy"><br>
完成!(用汇编语言写个hello world可真不容易啊...)</p><br><br>
来源:https://www.cnblogs.com/nefu-ljw/p/13850758.html
頁:
[1]