第一个装配程序

时间:2013-09-26 14:23:50

标签: assembly

我正在debug.exe为我的课程进行x86汇编,但是我似乎完全无法理解基础知识。我有这个汇编程序(由讲师编写),我必须修改它,所以不需要输入和打印,它将需要输入做一些事情,然后打印。我不知道读取结束和打印在哪里开始,并且非常感谢关于在何处插入代码以及每行代码的一些提示

a100
mov dx, 200
mov ah, 0a
int 21
mov bh, 00
mov bl, byte ptr[201]
mov byte ptr[200], 0d
mov byte ptr[201], 0a
mov byte ptr[202 + bx], 24
mov dx, 200
mov ah, 09
int 21
mov ah, 4c
int 21

a200
db 07 00 '***********'

n progr1.com
r cx
100
w
q

1 个答案:

答案 0 :(得分:1)

我或许可以一次开始阅读每一行,看看他们做了什么。

例如,正如评论中的某些人所说,请阅读int 21所做的事情,它会做很多事情,具体取决于AH注册表中的内容。

http://www.ctyme.com/intr/int-21.htm

e.g。 从STDIN读取一行是由0A寄存器中的AH指定的,它将输出放在DX寄存器中的某种格式。

mov dx, 200
mov ah, 0a
int 21

读取的字符数放在DX的第二个字节中,因此使用以下行保存到BX中:

mov bh, 00
mov bl, byte ptr[201]

使用不同的INT 21 AH09打印到屏幕,并从DX点开始读取,这就是设置DX的原因回到200

mov dx, 200
mov ah, 09
int 21

我会留给你弄清楚剩下的工作,但看看这里的读写格式http://www.ctyme.com/intr/rb-2563.htm。例如,这一行mov byte ptr[202 + bx], 24将ASCII 0x24放在字符串的最后一个位置,因为这是用于读取的终止字符。