参考文章:用汇编语言编写程序输出“Hello World!”

本文同步更新于博客园,由于CSDN不支持汇编语言的语法高亮,为了更好的阅读体验,欢迎来访:nefu_ljw 博客园
@

一、准备运行环境

先准备汇编语言运行环境,在此下载:https://download.csdn.net/download/ljw_study_in_CSDN/12997354

打开DOSBox0.74-win32-installer,安装。

二、编写汇编代码

在汇编语言中,用分号;表示注释,类似于C/C++的//表示注释。

一个汇编程序的固定语法格式:

;数据段
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

输出"hello world"的代码:

;数据段
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

因为CSDN博客的Markdown不支持x86asm格式的代码块高亮,所以我贴的代码都没有颜色(强迫症很不爽!)

本地可以用notepad++,将语言设置为A-Assembly,支持汇编语言的语法高亮,看着会比较舒服。
在这里插入图片描述
notepad++文本编辑器显示的语法高亮很好看:
在这里插入图片描述
顺便吐槽一句,CSDN什么时候能支持汇编语言的语法高亮?上次写Matlab语言也不支持,多向人家博客园学习吧!

三、生成汇编程序并执行

将第一步中下载的masm5文件夹存于D盘,比如路径为D:\masm5,然后将编写的代码文件保存为hello.asm,存于D:\masm5
在这里插入图片描述
打开第一步安装好的DOSBox 0.74,然后输入命令:

mount c d:/masm5
c:
dir

如下图:
在这里插入图片描述
然后输入命令:

masm hello.asm //再按三下回车
link hello.obj //再按三下回车
hello

结果如下:
在这里插入图片描述
完成!(用汇编语言写个hello world可真不容易啊...)