Из массива чисел сформировать новый массив, в который должны войти нечетные числа - Assembler
Формулировка задачи:
Дан массив чисел Х = 0,3,-15,19,-26,49,-61,18,55,4. Необходимо сформировать новый массив Y в который должны войти нечетные числа.
Сделал по примеру похожей программы, но что-то не правильно и не могу понять где
SDATA SEGMENT WORD PUBLIC 'DATA' ARRAY_X DB 0,3,-15,19,-26,49,-61,18,55,4 ; - массив чисел X ARRAY_Y DB 10 DUP(0) ; - массив чисел Y SDATA ENDS SSTACK SEGMENT PARA STACK 'STACK' DW 64 DUP(?) STACK_POINT LABEL WORD SSTACK ENDS START: MOV AX,SDATA MOV DS,AX MOV AX,SSTACK MOV SS,AX MOV SP,OFFSET STACK_POINT MOV SI,0 MOV DI,0 MOV CX,10 M1: MOV AL,ARRAY_X[SI] IDIV 2 CMP AL,2 JGE M2 MOV ARRAY_Y[DI],AL INC DI M2: INC SI LOOP M1 MOV AX,4C00H INT 21H SCODE ENDS END START
Решение задачи: «Из массива чисел сформировать новый массив, в который должны войти нечетные числа»
textual
Листинг программы
test al,1 jnz НеЧётное
Объяснение кода листинга программы
- Переменная
test
содержит в себе значение первого элемента массива. - Переменная
al
содержит в себе значение массива. - Переменная
1
содержит в себе значение 1. - Переменная
НеЧётное
содержит в себе значение, которое определяет является ли число нечётным. - Выполняется сравнение значения переменной
test
и1
. - Если результат сравнения не равен нулю (т.е. значение переменной
test
не равно 1), то выполняется переход к следующей итерации цикла. - Если результат сравнения равен нулю (т.е. значение переменной
test
равно 1), то выполняется переход к следующей итерации цикла. - Значение переменной
test
увеличивается на 1. - Выполняется проверка на нечётность значения переменной
test
. Если значение нечётное, то выполняется переход к следующей итерации цикла. - Если значение переменной
test
чётное, то выполняется выход из цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д