Masm 如何调试汇编代码

大二下的时候学了汇编,当时用的是 Masm 软件,但是一直没有去折腾,今天折腾了下,发现原来调试这么有用!!!强烈建议掌握一下,比自己一行行检查错误快多了。

题目

已知数据段有:

FIRST  DB 12H, 34H
SECOND DB 56H, 78H

(1)要求采用传送指令编写一段程序,实现 FIRSTSECOND 单元的内容互换, FIRST + 1 单元和 SECOND + 1 单元的内容互换。

(2)设 (SS) = 2000H,(SP) = 3456H,用堆栈指令编写一段程序完成上述要求,并画出堆栈的数据变化示意图。

代码

(1)

DATAS SEGMENT
FIRST DB 12H,34H
SECOND DB 56H,78H
DATAS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV AL,FIRST
    MOV BL,SECOND
    MOV FIRST,BL
    MOV SECOND,AL
    MOV AL,FIRST+1
    MOV BL,SECOND+1
    MOV FIRST+1,BL
    MOV SECOND+1,AL
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

(2)

DATAS SEGMENT
FIRST DB 12H,34H
SECOND DB 56H,78H
DATAS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;MOV AL,FIRST
    ;MOV AH,FIRST+1
    ;MOV BL,SECOND
    ;MOV BH,SECOND+1
    ;PUSH AX
    ;PUSH BX
    PUSH WORD PTR FIRST
    PUSH WORD PTR SECOND
    POP WORD PTR FIRST
    POP WORD PTR SECOND
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

调试

代码写完,记得保存一下,运行不报错就能进行调试了。点击下图所示按钮。
在这里插入图片描述

然后,每次按 t ,再回车,就是执行一条命令。

如果你想看某一个位置的数据变化,就要输入 d + 地址,如下图所示。
在这里插入图片描述

可以看到,程序是实现了 FIRSTSECOND 单元的内容互换, FIRST + 1 单元和 SECOND + 1 单元的内容互换的功能的。

其他命令

-u:查看汇编代码。
-t:执行下一条语句。
-g:跳转到该内存所对应的语句(再用 t 命令执行该条命令)。
-r:查看寄存器的内容(后可直接接寄存器的名称,就只查看该寄存器的内容)。
-d:后接内存地址,查看改地址后面 8 * 16 个字节空间的地址(每行 16 个字节,共 8 行)后面是对应的字符‘.’表示没有该数字对应的字符。

致谢

汇编 debug 与 masm 命令

版权声明:本文为博主原创文章,如有错误,恳请大家在评论区指出,在下不胜感激~如要转载注明出处即可~

  • 13
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
MASM(Microsoft Macro Assembler)是一款汇编编译软件,由微软公司开发。它是为x86架构的计算机开发的,可用于编写汇编语言程序。 MASM具有以下主要特点: 1. 强大的功能:MASM支持完整的x86指令集,并提供丰富的汇编语言功能,包括宏定义、条件编译和模块化编程等。它允许程序员直接访问处理器寄存器和系统资源,发挥底层硬件的优势。 2. 高度可定制性:MASM提供灵活的宏指令,允许程序员根据需求定义自己的指令集和操作符。这种高度可定制性使得MASM适用于各种编程需求,从简单的程序到复杂的系统级应用。 3. 可移植性:MASM生成的汇编代码可以在不同的x86体系结构上运行,如Intel、AMD和VIA。这使得程序的可移植性更强,可以在不同的硬件平台上运行。 4. 结合IDE:MASM可以与集成开发环境(IDE)进行集成,如Visual Studio。这样,程序员可以利用IDE提供的强大功能,如代码自动补全、调试和版本控制等,提高开发效率。 5. 完善的文档和支持:微软为MASM提供了详细的文档和支持,包括编程指南、示例代码和技术论坛等。这使得程序员可以更好地学习和使用MASM,解决遇到的问题。 总而言之,MASM是一款功能强大、可定制性高且与IDE集成的汇编编译软件。它提供了完整的x86指令集支持,可满足各种编程需求。通过使用MASM,程序员可以更加灵活地控制底层硬件资源,实现高性能的汇编语言程序开发。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Wonz

创作不易,一块就行。

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

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

打赏作者

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

抵扣说明:

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

余额充值