• 1. VScode

    1. 搜索插件 MASM/TASM安装 支持语法高亮等
  • 2. DOSbox 安装

    1. 1.下载[DOSbox](https://www.dosbox.com/)<br /> 2.下载[DOSBox debugger(DOSBox debugger)](http://source.dosbox.com/dosbox-74-3-debug.exe) 将其放在DOSbox目录下,重新命名为DOSbox<br />**常用命令:**
    1. F3/F6 - Previous command in history.
    2. F4/F7 - Next command in history.
    3. F5 - Run.
    4. F9 - Set/Remove breakpoint.
    5. F10/F11 - Step over / trace into instruction.
    6. ALT + D/E/S/X/B - Set data view to DS:SI/ES:DI/SS:SP/DS:DX/ES:BX.
    7. Escape - Clear input line.
    8. Up/Down - Move code view cursor.
    9. Page Up/Down - Scroll data view.
    10. Home/End - Scroll log messages.
  • 3. masm32安装

    1. 1.下载: [http://www.masm32.com/](http://www.masm32.com/)<br /> 2.更改路径,一路next安装<br /> 设置系统环境变量
    1. 设置3个用户环境变量
    2. include = masm32安装目录\include
    3. lib = masm32安装目录\lib
    4. path = masm32安装目录\bin

      汇编语言环境(VScode masm32 masm dosbox) - 图1
    测试环境变量是否成功
    运行—>输入 cmd ,回车后,进入masm32安装目录,输入 ml 命令,
    如果提示符窗口显示如下:
    image.png
    编译汇编源码(令汇编源码文件为test1.asm)
    **ml -c -coff test1.asm**
    编译完成后在源码目录下生成目标文件test1.obj, ml.exe是汇编语言的编译程序,它负责将汇编源程序编译
    成目标文件。
    链接目标文件与动态链接库
    **link -subsystem:windows test1.obj**
    链接后在源码目录下生成可执行程序test1.exe

  • 4.调试工具debug.exe(安装MASM)

Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。
debug功能在win7之后系统已经不自带了,即64位系统是不能直接在命令行操作中输入debug来进行相关操作的。
安装MASM自带的debug.exe、link.exe、DOSXNT.EXE等工具即可
把debug.exe、edit.com、DOSXNT.EXE放在本机磁盘的某目录,如 “D:\MASM5\”;
运行DOSBox,输入 debug 并回车
提示: Illegal command:debug. (非法命令:debug)
正确方法:
指定特定的文件夹如: g:\asmcode 将MASM内的工具都拷贝进去
无标题.png
无标题.png

debug命令

1.r命令(Register) 显示和修改寄存器

r ax:对寄存器ax当中的数据信息进行修改
image.png
r cs: 对段寄存器当中的指令进行修改
image.png
r ip: 对偏移地址寄存器当中的值进行修改
image.png

2.d命令(Dump) 内存16进制显示

查看内存当中的内容信息
image.png
连续输入d,可以查看连续内存中的内容
image.png

3.e命令(Enter) 修改内存字节

改写内存中内容
向指定编号的内存当中进行数据的写入操作,使用d命令来对该内存当中写入的数据进行查看
image.png
image.png

4.u命令(Unassemble)反汇编

将内存中的机器指令翻译为汇编指令来进行查看
image.png

5.a命令(Assemble) 逐行汇编

以汇编指令的格式在内存中写入一条机器指令
image.png

6.t命令(Trace) 跟踪执行

单步执行一条机器指令