【问题标题】:DEBUG how to display, increment, loop in a cmd debug environmentDEBUG 如何在cmd调试环境中显示、递增、循环
【发布时间】:2011-02-04 17:30:52
【问题描述】:
a 0100
mov cx,59
mov ah,02
mov dl,20
int 21
inc dl
loop 0105
int 20

g

我正在尝试循环并增加 DL 中的值,但是当我运行它时,它没有显示任何内容,或者它只显示“空格”字符 .我想在 DEBUG 环境中执行此操作,所以请不要告诉我使用 TASM xD

【问题讨论】:

    标签: debugging assembly loops increment tasm


    【解决方案1】:

    您应该更改循环指令,因为现在它将 dl 重置为 20h,这就是它只打印空格字符的原因。尝试直接在 int 21h 指令上循环。

    【讨论】:

    • 实际上循环 0105 将其循环到显示 20h 字符(空格)的 mov dl,20 地址。我想要的只是循环并增加它。我已经做了(没有增加)
    • @kapitanluffy:如果 0105 是一个地址,我认为它不正确。无论如何,循环指令递减 cx,如果它不为 0,则继续循环。所以可能这就是你的程序不打印的原因。
    • 尝试将 dl 的值替换为 21,我认为它会打印 59 次感叹号
    • @kapitanluffy:是的。它应该,但不要增加 dl。
    • @kapitanluffy:已编辑,谢谢。 ;) 这要复杂得多,因为您必须将每个字符编号转换为字符串。你看起来像个初学者,所以看看这个:webster.cs.ucr.edu/AsmTools/MASM/stdlib/stdlibv1.html
    猜你喜欢
    • 2015-02-18
    • 2013-12-26
    • 2017-01-26
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 2019-01-17
    • 2021-12-19
    • 2018-12-02
    相关资源
    最近更新 更多