Посчитать количество элементов массива, равных нулю - Assembler
Формулировка задачи:
Посчитать количество элементов массива, равных нулю, и записать их в
Rg AX (формат элементов массива - слово)
Решение задачи: «Посчитать количество элементов массива, равных нулю»
textual
Листинг программы
model tiny .code org 100h szMas equ 20 begin: lea si,dwMas mov cx,szMas @@01: lodsw or ax,ax jnz @@02 inc bx @@02: loop @@01 ret dwMas label word num = 0 rept szMas dw num num = (num+1) mod 4 endm end begin
Объяснение кода листинга программы
- Объявляется директива
model
с параметромtiny
. - Начало кода программы задается с помощью
org 100h
. - Определяется константа
szMas
(размер массива), которая равна 20. - Метка
begin
обозначает начало блока кода. - Помещается адрес массива в регистр SI с помощью
lea si,dwMas
. - В регистр CX помещается размер массива
szMas
. - Идет цикл @@01: для обработки элементов массива в регистре AX.
- Проверяется значение элемента на равенство нулю с помощью
or ax,ax
. - Если значение элемента не равно нулю, выполняется переход к метке @@02: с помощью
jnz @@02
. - Инкрементируется регистр BX, который хранит количество элементов массива, равных нулю с помощью
inc bx
. - Происходит обратный переход к метке @@01: для обработки следующего элемента массива с помощью
loop @@01
. - Программа завершается с помощью
ret
. - Объявляется метка
dwMas
для массива. - Переменная
num
инициализируется значением 0. - С помощью директив
rept
иendm
в массив помещаются элементы, начиная с 0 и увеличивая значение по модулю 4. - Окончание программы указывается с помощью
end begin
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д