汇编(DOSBox)

实验环境:

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可执行文件

80983006d72c433f8e7e4e2c336782ef.png
    也可以一步到位:ml test.asm

根据不同的配置文件有不同的名称和使用方法


4.运行exe文件,直接输入文件名及后缀即可


5.debug 调试

        1.汇编命令  -A

功能:以汇编指令的形式输入代码,系统自动将汇编指令翻译成机器指令代码,并从默认或指定地址单元开始存放。

命令:A                  含义:从默认地址输入汇编指令;

命令:A 1000:20    含义:从地址为1000H:20H的单元输入汇编指令;

命令:A CS:1000   含义:从CS 段的 1000H 单元输入汇编指令:

ee0362962aa246e6960d62f55f17d498.png

        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地址中的内容当作指令,查看默认条数;

d7a6ebb5c31742b9b76d29e3ebde7728.png

界面左边:以逻辑地址形式显示每条汇编指令所在存储器的首单元地址;

界面中间:每条汇编指令对应的机器指令代码;

界面右边:处理了符号之后的汇编指令;

        3.显示,修改寄存器命令  -R

       功能:如果给出寄存器名,则显示该寄存器的内容并可进行修改。

               如果不指定寄存器名,则显示所有寄存器的内容及当前值(不能修改)。

3389dc172edc4c13b0c3f1f280c4cf52.png

        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 个单元内容:

a65f9fa9bc424b29a9f7464b5f63c281.png

8c37e801dda94182936e0f0c4db7479a.png

        5.修改储存单元  -E

        格式 1:E[起始地址] [内容表]
        格式 2:E[地址]
        功能:格式1按内容表的内容修改从起始地址开始的多个存储单元内容,即用内容表指定的内容来代替存储单元当前内容。

7e47e17228bd4ce2846b19c709615295.png

        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,返回到操作系统。

 

 

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光的璃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值