Итак, у меня есть свой код, и хотя мне нужна некоторая помощь с ним, я действительно хочу помочь понять, что он делает вместо того, что я хочу, чтобы он делал.Кто-нибудь может дать мне краткое изложение чтения языка кода?
fibSeq:
mov ecx, userNum ;takes user number for loop count
mov eax, 0 ;x = 0
mov ebx, 1 ;y = 1
fibSeq2:
mov edx, eax
add edx, ebx ;sum = x + y
mov eax, ebx ;x = y
mov ebx, edx ;x = sum
mov edx, ebx
call writeint ;prints the value of fib seq
mov edx, OFFSET spaces ;adds five spaces inbetween each number
call writestring
mov eax, count ;moves count into eax register
add eax, 1 ;adds 1 to count
jmp divbyFive ;jump to check if count is divisible by 5
JMP done ;once ecx is 0, jmp should go to done
divbyFive: ;check if count is divisible by 5
mov edx, 0 ;clearing the edx register
mov eax, count ;moving count into eax
mov ecx, 5 ;count / 5
div ecx
cmp edx, 0 ;if the remainder = 0, jump to new line
JE newLine
JNE fibSeq2 ;otherwise go back to the sequence
newLine:
call crlf ;if the count is divisible by 5 with no remainder, prints a new line
jmp fibSeq2 ;afterwards, jumps back up to fibSeq2
loop fibSeq2
done:
Прямо сейчас это просто печатать +1 снова и снова, но я хочу, чтобы это печатало числа в последовательности Фибоначчи, покаecx = 0, и начинайте новую строку каждые 5 цифр.
Пример:
0 1 1 2 3
5 8 13 21 34
искоро!