实验环境:
DOSBox,masm工作文件(5个环境文件:汇编程序 MASM.EXE、
连接程序LINK.EXE、汇编连接程序ML.EXE、汇编链接错误提示ML.ERR、调试环境DEBUG.EXE)
实验步骤:
1.用记事本等文件编辑器编写汇编语言(.asm文件),放置工作目录下
2.启动DOSBox并设置工作目录
设置命令:mount <虚拟盘符><实际工作目录路径>
若工作文件夹建立在E盘下masm文件名,则设置命令及界面显示如下:mount c: e:\masm
并进入c盘
3.对asm文件进行汇编,链接生成exe可执行文件(本工作环境下)
汇编:masm test.asm -->obj文件
连接:link test.asm -->exe可执行文件
也可以一步到位:ml test.asm
根据不同的配置文件有不同的名称和使用方法
4.运行exe文件,直接输入文件名及后缀即可
5.debug 调试
1.汇编命令 -A
功能:以汇编指令的形式输入代码,系统自动将汇编指令翻译成机器指令代码,并从默认或指定地址单元开始存放。
命令:A 含义:从默认地址输入汇编指令;
命令:A 1000:20 含义:从地址为1000H:20H的单元输入汇编指令;
命令:A CS:1000 含义:从CS 段的 1000H 单元输入汇编指令:
2.反汇编命令 -U
格式 1:U [起始地址]
格式 2:U [起始地址] [结束地址|字节数]
功能:格式1从指定起始地址处开始将32个字节的目标代码(非 32条指令)转换成汇编指令形式,如果省略起始地址,则从当前 CS:IP 指向地址开始反汇编、或接着上次 U 命令继续反汇编。
格式2将指定范围的内存单元中的目标代码转换成汇编指令。注意,这里的反汇编是以指令为单位进行显示。
命令:U 含义:查看默认地址的汇编指令,默认条数;
命令:U 0 含义:从0地址查看汇编指令,默认CS 段:
命令:U 0 50 含义:查看地址0到50H的汇编指令,默认CS段;地址范围要确认该范围中所有指令都是完整的。
命令:U DS:0 含义:将 DS:0地址中的内容当作指令,查看默认条数;
界面左边:以逻辑地址形式显示每条汇编指令所在存储器的首单元地址;
界面中间:每条汇编指令对应的机器指令代码;
界面右边:处理了符号之后的汇编指令;
3.显示,修改寄存器命令 -R
功能:如果给出寄存器名,则显示该寄存器的内容并可进行修改。
如果不指定寄存器名,则显示所有寄存器的内容及当前值(不能修改)。
4.显示储存单元 -D
格式 1:D[起始地址]
格式 2:D[起始地址] [结束地址 | 字节数]
功能:格式1从起始地址开始按十六进制显示 128个单元的内容,每行16个单元,共8行。格式2显示指定范围内存储单元的内容,其他显示方式与格式1 一样。如果省略起始地址或地址范围,则从当前的地址开始按格式1显示。
命令:D 含义:默认查看;
命令:D 1000:0 含义:从指定单元查看数据,默认长度;
命令:D DS:0 含义:从指定单元查看 DS 段中的数据,默认长度:
命令:D 0 5 含义:查看 DS 段中 0~5 单元中的6个数据;
命令:D 10 L 5 含义:查看 DS 段从 10H 开始的连续5 个单元内容:
5.修改储存单元 -E
格式 1:E[起始地址] [内容表]
格式 2:E[地址]
功能:格式1按内容表的内容修改从起始地址开始的多个存储单元内容,即用内容表指定的内容来代替存储单元当前内容。
6.运行命令 -G
格式:G [=起始地址] [断点地址]
功能:CPU 从指定起始地址开始执行,在断点地址处停止,即断点地址中的指令不执行。若省略起始地址,则从当前CS:IP 指示地址开始执行一条指令。
命令:G 含义:从当前位置连续执行程序,到结束;
命令:G=0 含义:从0地址连续执行程序,到结束:
命令:G 14 含义:从当前位置执行程序到 14H,中断;
命令:G=3 20 含义:从地址3执行程序到地址 20H,中断;
9.跟踪命令 -T
格式:T[=-起始地址】[指令条数]
功能:从指定地址开始执行指定条数的指令,若省略指令条数,则默认执行条指令,若省略起始地址,则从当前CS:IP 指示地址开始执行举例:
命令:T 含义:从当前位置单步执行1条指令;
命令:T 3 含义:从当前位置单步执行3条指令;
命令:T=0 含义:从0地址单步执行1条指令;
命令:T=4 2 含义:从4地址单步执行2条指令;
10.退出命令 Q
格式:Q
功能:退出 DEBUG,返回到操作系统。