x86汇编语言 编写第一个汇编程序hello world

it2023-10-18  71

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

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

文章目录

一、准备运行环境二、编写汇编代码三、生成汇编程序并执行

一、准备运行环境

先准备汇编语言运行环境,在此下载:https://download.csdn.net/download/ljw_study_in_/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

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

本地可以用notepad++,将语言设置为A-Assembly,支持汇编语言的语法高亮,看着会比较舒服。 notepad++文本编辑器显示的语法高亮很好看: 顺便吐槽一句,什么时候能支持汇编语言的语法高亮?上次写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可真不容易啊…)

最新回复(0)