Заданы два натуральных числа a и b - Assembler
Формулировка задачи:
Заданы два натуральных числа a и b. Переменной w присвоить значение истина, если в конечной последовательности целых чисел имеется хотя бы один элемент, кратный а и не кратный b.
Решение задачи: «Заданы два натуральных числа a и b»
textual
Листинг программы
use16 org 100h mov cx,[_arr.count] lea si,[_arr] loop0: mov bx,[si] mov ax,bx cwd div [_a] or dx,dx jnz no mov ax,bx cwd div [_b] or dx,dx jz no mov [_w],1 jmp done no: add si,2 dec cx jnz loop0 done: ret _w dw 0 _a dw 3 _b dw 5 _arr dw 1,5,0,2,9,5,2 _arr.count dw ($-_arr)/2
Объяснение кода листинга программы
Предположительно, этот код на языке Assembler выполняет следующие действия:
- Задаются два натуральных числа a и b.
- Инициализируется счётчик циклов.
- Цикл выполняется до тех пор, пока счётчик не станет равным нулю. В каждой итерации цикла выполняется следующее:
- Переменная bx получает значение из массива.
- Переменная ax вычисляется как сумма bx и a.
- Результат вычисления остатка от деления ax на b сохраняется в dx. Если остаток от деления не равен нулю, то выполняется следующее:
- Переменная ax вычисляется как сумма bx и a.
- Результат вычисления остатка от деления ax на b сохраняется в dx. Если остаток от деления равен нулю, то выполняется следующее:
- Переменная ax вычисляется как сумма bx и a.
- Результат вычисления остатка от деления ax на b сохраняется в dx. Если остаток от деления равен нулю, то выполняется следующее:
- Переменная ax вычисляется как сумма bx и a.
- Результат вычисления остатка от деления ax на b сохраняется в dx. Если остаток от деления равен нулю, то выполняется следующее:
- Значение 1 сохраняется в переменной w.
- Цикл завершается.
- В конце кода присутствуют строки, определяющие константы для использования в коде:
- _w - переменная для хранения результата.
- _a - переменная для хранения первого натурального числа.
- _b - переменная для хранения второго натурального числа.
- _arr - переменная для хранения массива натуральных чисел.
- _arr.count - переменная для хранения количества элементов в массиве.