Извините, если этот вопрос действительно прост, но я попробовал все, что знаю, и не смог разобраться.
Я пытаюсь сделать простую процедуру, которая берет строку и Count из консоли и печатает число строк, указанное в Count.
Все хорошо, но когда я перевожу Count на eax для цикла, значение get испортилось, и я получаю бесконечный цикл печати.
Я пытался изменить счетчик на DWORD с помощью atodw, но не сработало.
вот код:
PrintString PROTO :DWORD, :DWORD
.data
String db 100 DUP(0)
Count db 10 DUP(0)
.code
start:
;1- get user input
invoke StdIn, addr String, 99
invoke StdIn, addr Count, 10
;2- Remove the CRLF from count
invoke StripLF, addr Count
;3- Convert the count to DWORD
invoke atodw, addr InputCount
mov Counter, eax
;4- Call the Printer function
invoke Printer, addr String, addr Count
Printer PROC StringToPrint:DWORD, count:DWORD
mov eax,count ;;;;;; This is the problem I think
Looppp:
push eax
invoke StdOut, StringToPrint
pop eax
dec eax
jnz Looppp
ret
Printer endp