Assembly 第一次汇编程序

Assembly 第一次汇编程序,assembly,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

我在
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

我可能会开始一次一行地阅读每一行,然后看看它们做了什么

例如,正如评论中的某人所说,阅读
int21
的功能,它可以做很多事情,这取决于
AH
寄存器中的内容

e、 g。 从STDIN读取一行由
AH
寄存器中的
0A
指定,它以特定格式将输出放入DX寄存器

mov dx, 200
mov ah, 0a
int 21
读取的字符数放在DX的第二个字节中,因此使用以下行将其保存到BX中:

mov bh, 00
mov bl, byte ptr[201]
使用不同的
INT 21
AH
值,
09
进行屏幕打印,从
DX
指向的位置读取,这就是为什么DX设置回
200

mov dx, 200
mov ah, 09
int 21

我将把它留给你去弄清楚其余的部分是做什么的,但是看看这里的读写格式。例如,这一行
mov byte ptr[202+bx],24
将ASCII 0x24放在字符串的最后一个位置,因为这是用于读取的终止字符。

给你:谢谢,这是一个很大的帮助。我已经完成了我的程序,它可以工作,但我不明白为什么它在删除200 db 07 00'************'后仍然可以工作