instrucțiuni de comparație și salturi condiționate

Ciclul de asamblare folosind inline

  1. Ciclul cu postconditie (echivalent face<>în timp ce)
loop_start: / * începutul buclei * / / * aici este corpul buclei * / cmpl. / * Ceva ceva pentru a compara cu decizia de a ieși din bucla * / je loop_end / * alege comanda corespunzătoare salt condiționat pentru a ieși din loop_start bucla * / JMP / * altfel repeta ciclul din nou * / loop_end:
  1. Ciclul cu condiție prealabilă (în timp echivalent ()<>)
loop_start: / * începutul bucla * / cmpl. / * Ceva ceva pentru a compara cu decizia de a ieși din loop_end bucla * / je / * alege comanda corespunzătoare salt condiționat pentru a ieși din bucla * / / * aici este corpul de loop_start bucla * / JMP / * du-te la Checkout condiţii ciclu * / loop_end:

§ reduce% valoarea registru ECx cu 1;

§ dacă ECX% = 0, pentru a trece de control la următoarea buclă a echipei;

§ dacă% ECx ≠ 0, pentru a controla transferul etichetei.

Scrieți un program pentru a calcula suma numerelor 1 - 10 (desigur, folosind formula pentru suma unei progresii aritmetice, putem rescrie acest cod și fără ciclu - dar asta e doar un exemplu).

instrucțiuni de comparație și salturi condiționate. de transfer necondiționat

comandă în buclă compară implicit registru% ECx cu zero. Este destul de convenabil pentru organizarea de cicluri, dar ciclurile sunt adesea mult mai complexe decât cele care pot fi înregistrate la pomoschiloop. Pe langa am nevoie de o structură echivalentă dacă ()<>. Aici sunt comenzi pentru a executa comparații operanzi arbitrare:

cmp operand_2. operand_1

cmp de comandă efectuează scădere operand_1 - operand_2 și stabilește steagurile. Rezultatul scăderii nu este stocat nicăieri.

Compara, setați un steag - și apoi ce? Și avem o întreagă familie de salt-comandă care transferă controlul la alte echipe. Aceste comenzi sunt numite salt condiționat. Fiecare dintre ele este atribuită o condiție care verifică. sintaxa:

JCC de comandă nu există, în loc este necesar cc pentru a substitui condițiile mnemonice.