Информатика

1. Напишите программу на ассемблере, которая принимает два натуральных числа (A и B) и выводит частное, если A делится

1. Напишите программу на ассемблере, которая принимает два натуральных числа (A и B) и выводит частное, если A делится на B, в противном случае выведет оба числа.

2. Напишите программу на ассемблере, которая принимает натуральное число и подсчитывает количество простых множителей, равных 5.

3. Напишите программу на ассемблере, которая принимает X натуральных чисел и подсчитывает количество четных и нечетных чисел среди введенных чисел.

4. Напишите программу на ассемблере, которая принимает натуральное число X и подсчитывает факториал числа X. Если факториал не помещается в ячейку памяти (переполнение), программа выведет -1.
Верные ответы (1):
  • Ledyanaya_Dusha
    Ledyanaya_Dusha
    44
    Показать ответ
    Программирование на ассемблере:

    1. Задача:

    Инструкция: Для решения этой задачи на ассемблере, мы можем использовать арифметические инструкции и условные операторы.

    Сначала необходимо прочитать значения двух чисел (A и B) и сохранить их в соответствующих регистрах. Затем проверить, делится ли число A на число B без остатка с помощью операции "деление по модулю" и условной инструкции "if".

    Если число A делится на число B без остатка, то мы выводим частное. В противном случае, мы выводим оба числа A и B.

    Доп. материал:

    ; Программа выводит частное чисел A и B, если A делится на B без остатка, иначе выводит оба числа A и B

    section .data
    A db 10 ; значение числа A
    B db 2 ; значение числа B
    msg db "Частное: "
    msg1 db "A и B: "

    section .text
    global _start

    _start:
    mov ah, 09h ; выводится строка "Частное: "
    mov edx, msg
    int 21h

    mov al, [A] ; читается число A
    cbw ; расширение знака для деления
    mov bl, [B] ; читается число B
    xor ah, ah

    div bl ; деление A на B
    cmp ah, 0 ; проверка на остаток

    jne print ; если есть остаток, выводятся оба числа A и B

    mov dl, al
    add dl, "0" ; преобразование в символ
    mov ah, 2h
    int 21h
    jmp exit

    print:
    mov ah, 09h ; выводится строка "A и B: "
    mov edx, msg1
    int 21h

    mov dl, al
    add dl, "0" ; преобразование в символ
    mov ah, 2h
    int 21h

    mov dx, bx
    add dl, "0" ; преобразование в символ
    mov ah, 2h
    int 21h

    exit:
    mov ah, 4Ch ; завершение программы
    int 21h


    Совет: Чтобы лучше понять работу программы на ассемблере, полезно изучить арифметические инструкции, условные операторы и инструкции ввода-вывода.

    Задача для проверки: Напишите программу на ассемблере, которая принимает два числа (A и B) и выводит их произведение, если произведение меньше 100, в противном случае выводит сообщение «Произведение больше или равно 100».
Написать свой ответ: