汇编语言 写 Hello World
博主菜鸟一枚,纯属个人摸索,不喜勿喷。t_t
- 1.DOS,是 磁盘操作系统 的缩写,是个人计算机上的一类操作系统。
- 2.汇编语言运行在基于DOS操作系统的环境下
-
3.masm是针对汇编的工具组。(博主将以下4个文件放入本地的e:\compile\home)
masm.exe是编译程序,可以将汇编代码.asm编译成.obj文件
link.exe是链接程序,用于将.obj文件生成.exe可执行文件
debug.exe是调试工具,可用于打断点
edit.com是编辑程序,提供对汇编代码的编译
- 4.因为我的电脑是WIN10,下载了一个dos模拟环境工具:dosbox,但是这个软件是16位的
5.操作步骤:
- 5.1 打开dosbox
- 5.2 输入mount c e:\compile\home (意思是将e:\compile\home设置为dos系统(c)盘)
因为这样的话可以不用配环境变量,用于识别masm,link,debug,edit指令 但是仅当次有效
- 5.3最好提前准备好编辑好的.asm文件(可用任何编辑器编辑,事先准备是因为edit.com相对 于别的编辑器不易操作) 放在3.2中指定的文件目录下,然后键入命令:masm hello.asm 若出现Object filename
:(不管它,按回车) 若出现Source listing :(不管它,按回车) 若出现Cross-reference
:(不管它,按回车) 若出现 0 Warning Errors 《表示没有错误警告》 0 Server
Errors 《表示没有服务器错误》 则表示成功编译了hello.asm 为 hello.obj
此时目录下会有个新文件叫做hello.obj
- 5.4 键入 link hello.obj (意思是将此文件生成hello.exe可执行文件) 若出现Run File :(不管它,按回车) 若出现List File :(不管它,按回车) 若出现Libraries :(不管它,按回车) 若出现Link
:warning L4021 : no stack segment (不管它,按回车)
- 5.5 此时命令行会回到C:> (并且文件夹下有 hello.exe)
- 5.6 键入命令 hello.exe (即执行汇编代码经过编译和链接后生成的可执行文件hello.exe)
关于debug的使用:
输入命令:R,查看程序运行前的寄存器组初始值
输入命令:U,查看程序反汇编代码。从反汇编代码中可看出,变量会被汇编为直接寻址方式,使用变量在数据段内的有效地址表示
输入命令:T,单步调试
输入命令:D,观察内存变化(D后不带地址或范围,默认显示上一个D命令之后的80字节内容)
输入命令:G 地址,程序从当前位置直接运行到指定地址处停下
输入命令:E 地址修改内存中的内容,如:E DS:0100,输入空格可逐个字节修改,回车停止修改
PS: 那么问题来了,debug出来的很多看不懂,咋办?
戳这里 http://www.cnblogs.com/BoyXiao/archive/2010/11/20/1882716.html
资源下载:需要两个资源(我已在CSDN上传,不要分)