用汇编语言多次显示消息
display message many time in Assembly language
我正在尝试多次显示消息。
我用过 nasm 我用过这个程序 :
MOV cx, 1
mov ax, 10
re:
CMP ax, cx
JS fin
mov dx, texte
INC cx
JMP re
fin:
Int 21h
texte: db 'Hello, World !!'
目前您只能在底部调用 int 21h
。
尝试将其移动到循环中。
此外,自从我上次在汇编中做任何事情以来已经有很长时间了,但您可能还需要准备一些寄存器来确定 int 21h
会做什么。在此处查看更多信息:http://spike.scu.edu.au/~barry/interrupts.html#ah09
结合更多的东西:
- 要让int21h进行输出,需要将AH设置为9。你已经在用AX来存储循环限制了;您必须使用其他一些寄存器(BX、SI、DI 当前未使用)或硬编码限制。此外,int21h 函数 9 更改输出中 AL 的值 - 不使用 AX 的另一个原因。
- 字符串需要以 $ 字符结束。这就是 int21h/9 所期望的,而不是一般的汇编语言约定。
- 而且,就像 obe 所说的,您需要在 "jmp re" 行之前而不是之后的 int 21h 命令。
- 在 "fin" 标签处,您可能想要退出该程序。顺序是:"mov ah, 4ch/int 21h".
我正在尝试多次显示消息。
我用过 nasm 我用过这个程序 :
MOV cx, 1
mov ax, 10
re:
CMP ax, cx
JS fin
mov dx, texte
INC cx
JMP re
fin:
Int 21h
texte: db 'Hello, World !!'
目前您只能在底部调用 int 21h
。
尝试将其移动到循环中。
此外,自从我上次在汇编中做任何事情以来已经有很长时间了,但您可能还需要准备一些寄存器来确定 int 21h
会做什么。在此处查看更多信息:http://spike.scu.edu.au/~barry/interrupts.html#ah09
结合更多的东西:
- 要让int21h进行输出,需要将AH设置为9。你已经在用AX来存储循环限制了;您必须使用其他一些寄存器(BX、SI、DI 当前未使用)或硬编码限制。此外,int21h 函数 9 更改输出中 AL 的值 - 不使用 AX 的另一个原因。
- 字符串需要以 $ 字符结束。这就是 int21h/9 所期望的,而不是一般的汇编语言约定。
- 而且,就像 obe 所说的,您需要在 "jmp re" 行之前而不是之后的 int 21h 命令。
- 在 "fin" 标签处,您可能想要退出该程序。顺序是:"mov ah, 4ch/int 21h".