Заданы два натуральных числа 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 выполняет следующие действия:

  1. Задаются два натуральных числа a и b.
  2. Инициализируется счётчик циклов.
  3. Цикл выполняется до тех пор, пока счётчик не станет равным нулю. В каждой итерации цикла выполняется следующее:
    • Переменная 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.
        • Цикл завершается.
  4. В конце кода присутствуют строки, определяющие константы для использования в коде:
    • _w - переменная для хранения результата.
    • _a - переменная для хранения первого натурального числа.
    • _b - переменная для хранения второго натурального числа.
    • _arr - переменная для хранения массива натуральных чисел.
    • _arr.count - переменная для хранения количества элементов в массиве.

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы