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