|
УСЛОВИЕ
ЗАДАНИЯ:
Определить
максимальное число диапазона 140..16F. Результат сохранить в
ячейке 170.
ПЛАН
РЕШЕНИЯ:
1. Задание начальных значений (стартового адреса= 140, числа шагов цикла= 30, начального значения максимума= 0).
2. Организация цикла: (CMP DL,[BP+00]) (последовательное сопоставление содержимого ячеек 140..16F с текущим максимумом)
3. Сохранение найденного максимума (в ячейке памяти 0170: [170]=DL).
4. Завершение работы программы (INT 20)
КОД
ПРОГРАММЫ:
100 MOV BP,0140 ; загрузка в регистр BP начального адреса 103 MOV CX,0030 ; в регистр CX заносится количество ячеек диапазона 106 MOV DL,0 ; в регистр DL заносится 0 (начальное значение max)
; цикл по нахождению максимального значения: 108 CMP DL,[BP] ; текущий max DL сравнивается с содержимым очередной яч-ки 10B JAE 0110 ; если текущий max DL ≥ [BP]имеет место переход на 110 10D MOV DL,[BP] ; обновление текущего max DL (знач-е [BP] оказалось больше) 110 INC BP ; наращивание адреса текущей ячейки памяти 111 LOOP 0108 ; цикл по перебору ячеек памяти
113 MOV [170],DL ; сохранение в ячейке 170 найденного максимума
117 INT 20 ; завершение работы
ПРОВЕРКА
РЕШЕНИЯ:
Для проверки решения уменьшим значение счетчика цикла СХ до 3. В ячейках 140-142 разместим строку "319" 100: BP = 140 103: CX = 3 (т.к. проверка проводится для первых 3-х ячеек диапазона) 106: DL = 0 (начальное значение max)
108: DL<->[BP] 0<->[140]=33 Результат сравнения < (меньше) 10B: переход на адрес 110 не следует, т.к. имеет место < (меньше) 10D: DL= [140]= 33 обновление текущего max DL 110: DI= 140+1= 141 111: CX= 3-1= 2 (CX=2>0, поэтому следует переход на адрес 108)
108: DL<->[BP] 33<->[141]=31 Результат сравнения > (больше) 10B: переход на адрес 110, т.к. условие переходы выполнено 110: DI= 141+1= 142 111: CX= 2-1= 1 (CX=1>0, поэтому следует переход на адрес 108)
108: DL<->[BP] 33<->[142]=39 Результат сравнения < (меньше) 10B: переход на адрес 110 не следует, т.к. имеет место < (меньше) 10D: DL= [142]= 39 обновление текущего max DL 110: DI= 142+1= 143 111: CX= 1-1= 0 (CX=0, цикл завершён) 113: [170]= DL= 39 (сохранение найденного max)
116: INT 20 - завершение работы.
РЕЗУЛЬТАТ
РЕШЕНИЯ:
В ячейку 170 занесено значение минимума 39 |