инструкции за сравнение и условни скокове

Цикъл използване вградени монтаж

  1. Цикъл с postcondition (еквивалентно да се направи<>а)
loop_start: / * начало на цикъла * / / * тук е орган на линия * / cmpl. / * Нещо нещо, което да се сравни с решението за излизане от цикъл * / JE loop_end / * изберете подходящата условен скок команда, за да излезете линия * / JMP loop_start на / * в противен случай повторете цикъла отново * / loop_end:
  1. Цикъл с предпоставка (еквивалентно време ()<>)
loop_start: / * началото на линия * / cmpl. / * Нещо нещо, което да се сравни с решението за изход линия * / JE loop_end на / * изберете подходящата условен скок команда, за да излезете от цикъла * / / * тук е тялото на loop_start линия * / JMP / * отидете на касата условия цикъл * / loop_end:

§ намали% стойност ЕСх регистър от 1;

§ ако% ЕСх от = 0, за да премине контрол на следващия цикъл на екипа;

§ ако% ЕСх ≠ 0, за прехвърляне на контрола на етикета.

Напишете програма, за да се изчисли сумата на числата от 1 до 10 (разбира се, с помощта на формулата за сумата от аритметична прогресия, ние можем да пренапише кода и без цикъл - но това е само един пример).

инструкции за сравнение и условни скокове. прехвърля безусловно

контур команда имплицитно сравнява регистър% ЕСх с нула. Това е доста удобно за организирането на цикъла, но цикъла често са много по-сложни от тези, които могат да бъдат записани в pomoschiloop. Освен ако имам нужда еквивалент () структура<>. Това са команди за изпълнение на произволни сравнения операнди:

СМР operand_2. operand_1

СМР команда изпълнява изваждане operand_1 - operand_2 и определя флаговете. Резултатът от изваждането не се съхранява никъде.

Сравнете, задаване на флаг - и след това какво? И ние имаме цяло семейство на скок-команда, която предава управлението на други отбори. Тези команди се наричат ​​условно скок. Всеки един от тях се определя състояние, че да проверява. синтаксис:

СКК команда не съществува, вместо да се налага да замени сс мнемонични условия.