Я пытаюсь реализовать два цикла с отступом, как показано на скриншоте ниже. Отладчик показывает, что r13 равно 0 и r14 равно 9. почему тогда он пропускает инструкцию JL и переходит прямо к инструкции mov r13, 0
Я подозревал, что инструкция in c в за это отвечает середина, но это не имеет никакого смысла, потому что биты флага все еще остаются неизменными
pop r10 ; contains the size of the array
pop rax ; address of the array in memory
mov r11, rax ; copy of the address from rax now
mov r12, 0 ; int i
mov r13, 0 ; int j
dec r10
i_loop:
mov r14, r10
sub r14, r12
j_loop:
mov r8, [r11 + r13 * 8]
mov r9, [r11 + r13 * 8 + 8]
cmp r8, r9
jg swap
back:
inc r13
cmp r13, r14
jl j_loop
mov r13, 0
inc r12
cmp r12, r10
jl i_loop