汇编语言 写 Hello World

时间:2021-05-28 01:23:56

汇编语言 写 Hello World

博主菜鸟一枚,纯属个人摸索,不喜勿喷。t_t


  • 1.DOS,是 磁盘操作系统 的缩写,是个人计算机上的一类操作系统。
  • 2.汇编语言运行在基于DOS操作系统的环境下
  • 3.masm是针对汇编的工具组。(博主将以下4个文件放入本地的e:\compile\home)

    1. masm.exe是编译程序,可以将汇编代码.asm编译成.obj文件

    2. link.exe是链接程序,用于将.obj文件生成.exe可执行文件

    3. debug.exe是调试工具,可用于打断点

    4. edit.com是编辑程序,提供对汇编代码的编译

  • 4.因为我的电脑是WIN10,下载了一个dos模拟环境工具:dosbox,但是这个软件是16位的

5.操作步骤:

  • 5.1 打开dosbox
    汇编语言 写 Hello World

  • 5.2 输入mount c e:\compile\home (意思是将e:\compile\home设置为dos系统(c)盘)
    因为这样的话可以不用配环境变量,用于识别masm,link,debug,edit指令 但是仅当次有效
    汇编语言 写 Hello World

  • 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
    汇编语言 写 Hello World

  • 5.4 键入 link hello.obj (意思是将此文件生成hello.exe可执行文件) 若出现Run File :(不管它,按回车) 若出现List File :(不管它,按回车) 若出现Libraries :(不管它,按回车) 若出现Link
    :warning L4021 : no stack segment (不管它,按回车)
    汇编语言 写 Hello World

  • 5.5 此时命令行会回到C:> (并且文件夹下有 hello.exe)

  • 5.6 键入命令 hello.exe (即执行汇编代码经过编译和链接后生成的可执行文件hello.exe)

汇编语言 写 Hello World


关于debug的使用:

汇编语言 写 Hello World

  • 输入命令: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上传,不要分


如果对你有帮助,请转载点赞,,,各种,靴靴╮(╯▽╰)╭╮(╯▽╰)╭。