if
que condicionalmente executa um determinado bloco de código, ou um for
que executa várias vezes o mesmo bloco de código. Tudo isso é possível devido ao desvio do fluxo de código. Vamos a um pseudo-exemplo de um if
:if
. Repare que o resultado da comparação no passo 1 precisa ficar armazenado em algum lugar, e este "lugar" é o registrador FLAGS.mov
.goto
da linguagem C, inclusive em boa parte das vezes o compilador converte o goto
para meramente um JMP..end
, e logo na linha anterior uma comparação entre RBX e RCX. Se o valor de RBX for menor ou igual a RCX, então o salto será tomado e a instrução na linha 12 não será executada. Desta forma temos algo muito parecido com o if
no pseudocódigo abaixo: