所以我正在尝试获得一个循环来显示五次而不需要换行。具体来说,我想显示单词" 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
打印出来:
循环
环
环
环
环
但我需要:
LoopLoopLoopLoopLoop
我尝试过使用jmp尝试将其移回到线路,但它不起作用。我不知道太多其他命令和所有我试图找到解决方案的东西似乎都是寻求新线帮助的人,这与我需要帮助的完全相反。我非常感谢任何提示和帮助,因为我希望更好地了解我需要做什么。
另外,我使用的是Microsoft Visual C ++ 2010 Express。我的理解是,你使用的程序在装配中更重要。
答案 0 :(得分:1)
只要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