Debugging 在MS调试中输出Az Za
我目前正努力在ms debug中输出AzByCx,因为我对它不太了解。 这里包括我的老师寄给我们的Debugging 在MS调试中输出Az Za,debugging,assembly,dos,x86-16,Debugging,Assembly,Dos,X86 16,我目前正努力在ms debug中输出AzByCx,因为我对它不太了解。 这里包括我的老师寄给我们的 我可以很容易地输出A-Z,但AzBxCy不能,因为网上没有太多详细的教程,所以我来这里询问。Microsoft DEBUG.EXE确实可以用来编写英特尔语法汇编中的简单程序,请参见此。用db“AzByCx$”替换字符串定义db“Hello world$”,就完成了 然而,这绝对不是学习汇编语言的好方法。 找一个更好的老师 -e 200 "Az" -a 1BD8:0100 mo
我可以很容易地输出A-Z,但AzBxCy不能,因为网上没有太多详细的教程,所以我来这里询问。Microsoft DEBUG.EXE确实可以用来编写英特尔语法汇编中的简单程序,请参见此。用
db“AzByCx$”
替换字符串定义db“Hello world$”
,就完成了
然而,这绝对不是学习汇编语言的好方法。
找一个更好的老师
-e 200 "Az"
-a
1BD8:0100 mov bx, word [200]
1BD8:0104 mov cx, 3
1BD8:0107 mov ah, 2
1BD8:0109 mov dl, bl
1BD8:010B int 21
1BD8:010D mov dl, bh
1BD8:010F int 21
1BD8:0111 add bx, FF01
1BD8:0115 loop 109
1BD8:0117 mov dl, 0D
1BD8:0119 int 21
1BD8:011B mov dl, 0A
1BD8:011D int 21
1BD8:011F mov ax, 4C00
1BD8:0122 int 21
1BD8:0124
-g
AzByCx
这有什么用
- 将ds:200h处的单词初始化为字符串“Az”(低位字节为“A”,高位字节为“z”)
- 使用
命令汇编以下程序:
- 从内存加载到寄存器
(初始化寄存器而不必查找数字ASCII码点)bx
- 将
设置为三次迭代的循环计数器cx
- 为中断21h服务02h设置寄存器
(在ah
中显示字符)dl
- 显示从
读取的字符(bx的低位字节)bl
- 显示来自
的字符(bx的高位字节)bh
- 在
中添加1,在bl
中添加-1(在两个补码中导致0FFh),这会增加bh
中的码点,并减少bl
bh
- 循环返回以显示后续字母
- 显示换行符(代码点13和10,或0Dh 0Ah)以使输出更易于读取
- 终止程序
- 使用
命令运行程序G
AX
确实是累加器寄存器。调试使用标志转储中的AC
指示辅助进位设置,而NA
指示清除。也许这就是我们搞混的原因。