|
УСЛОВИЕ
ЗАДАНИЯ:
Ввести
в ячейки с адреса 120 числа 7,B,...,FF (все данные в 16-ой
системе)
ПЛАН
РЕШЕНИЯ:
1. Задание начальных значений ( начального числа= 7, стартового адреса= 120, числа шагов цикла= 3F).
Примечание. Расчет значения счетчика цикла:
CX= (FF-7):4 + 1 = F8:4+1= 3E+1= 3F
2. Организация цикла: [DI]<- AL (последовательное заполнение ячеек 120,121,122,... числами 7,B,F,...,FF)
3. Завершение работы программы (INT 20)
КОД
ПРОГРАММЫ:
100 MOV AL,07 ; AL<- 7 (начальное число = 7) 102 MOV DI,0120 ; DI<- 120 (стартовый адрес = 120) 105 MOV CX,003F ; CX<- 3F (число шагов цикла= 3F)
; цикл по перебору ячеек диапазона: 108 MOV [DI],AL ; [DI]<- AL (размещение в очередной ячейке памяти очередного числа) 10A ADD AL,04 ; AL<- AL+4 (наращивание числа: +4) 10C ADD DI,0001 ; DI<- DI+1 (наращивание адреса: +1) 10F LOOP 108 ; CX<- CX-1 После чего, если CX<>0, следует переход по адресу 108
111 INT 20 ; завершение работы
ПРОВЕРКА
РЕШЕНИЯ:
Для проверки решения уменьшим значение счетчика цикла СХ до 3. 100: AL= 7 102: DI= 120 105: CX= 3 (т.к. проверка проводится для первых 3-х ячеек диапазона)
108: [120]= 7 10A: AL= 7+4= B 10C: DI= 120+1= 121 10F: CX= 3-1= 2 (CX=2>0, поэтому следует переход на адрес 108)
108: [123]= B 10A: AL= B+4= F 10C: DI= 121+1= 122 10F: CX= 2-1= 1 (CX=1>0, поэтому следует переход на адрес 108)
108: [126]= F 10A: AL= F+4= 13 10C: DI= 122+1= 123 10F: CX= 1-1= 0 (CX= 0, цикл завершен)
111: INT 20 - завершение работы.
РЕЗУЛЬТАТ
РЕШЕНИЯ:
[120]= 7 [123]= B [126]= F |