有没有办法在汇编中的一行中显示一个循环?
Is there a way to display a loop all on one line in assembly?
所以我正在尝试让一个循环显示一些东西五次而不换行。具体来说,我想在一行中显示单词 "Loop" 5 次,"LoopLoopLoopLoopLoop." 我可以很容易地在不同的行中显示它们,似乎它会自动自动换行。我对汇编语言很陌生,所以如果有人能解释这里发生了什么,那将是一个巨大的帮助。
这是我的代码:
INCLUDE Irvine32.inc
.data
myMessageOne BYTE "Loop",0dh,0ah,0
.code
main PROC
call Clrscr
mov edx, OFFSET myMessageOne
mov ecx, 5
myloopOne:
call WriteString
loop myloopOne
call DumpRegs
exit
它打印出这个:
Loop
Loop
Loop
Loop
Loop
但我需要:
LoopLoopLoopLoopLoop
我试过使用 jmp 试图将它移回直线,但它不起作用。我不知道太多其他命令,而我为了尝试找到解决方案而查找的所有内容似乎都是在寻求新行帮助的人,这与我需要帮助的恰恰相反。非常感谢任何提示和帮助,因为我想更好地了解我需要做什么。
此外,我正在使用 Microsoft Visual C++ 2010 Express。据我了解,您使用的程序在汇编中更为重要。
只要 CR/LF 是字符串的一部分,它就会每次都显示。
删除它,并使其成为另一条消息:
INCLUDE Irvine32.inc
.data
myMessageOne BYTE "Loop",0
str_crlf BYTE 0dh,0ah,0
.code
main PROC
call Clrscr
; write 5 "loop"s
mov edx, OFFSET myMessageOne
mov ecx, 5
myloopOne:
call WriteString
loop myloopOne
; and then the newline
mov edx, OFFSET str_crlf
call WriteString
call DumpRegs
exit
所以我正在尝试让一个循环显示一些东西五次而不换行。具体来说,我想在一行中显示单词 "Loop" 5 次,"LoopLoopLoopLoopLoop." 我可以很容易地在不同的行中显示它们,似乎它会自动自动换行。我对汇编语言很陌生,所以如果有人能解释这里发生了什么,那将是一个巨大的帮助。
这是我的代码:
INCLUDE Irvine32.inc
.data
myMessageOne BYTE "Loop",0dh,0ah,0
.code
main PROC
call Clrscr
mov edx, OFFSET myMessageOne
mov ecx, 5
myloopOne:
call WriteString
loop myloopOne
call DumpRegs
exit
它打印出这个:
Loop
Loop
Loop
Loop
Loop
但我需要:
LoopLoopLoopLoopLoop
我试过使用 jmp 试图将它移回直线,但它不起作用。我不知道太多其他命令,而我为了尝试找到解决方案而查找的所有内容似乎都是在寻求新行帮助的人,这与我需要帮助的恰恰相反。非常感谢任何提示和帮助,因为我想更好地了解我需要做什么。
此外,我正在使用 Microsoft Visual C++ 2010 Express。据我了解,您使用的程序在汇编中更为重要。
只要 CR/LF 是字符串的一部分,它就会每次都显示。 删除它,并使其成为另一条消息:
INCLUDE Irvine32.inc
.data
myMessageOne BYTE "Loop",0
str_crlf BYTE 0dh,0ah,0
.code
main PROC
call Clrscr
; write 5 "loop"s
mov edx, OFFSET myMessageOne
mov ecx, 5
myloopOne:
call WriteString
loop myloopOne
; and then the newline
mov edx, OFFSET str_crlf
call WriteString
call DumpRegs
exit