1. Напишите и отладьте программу, которая меняет местами значения регистров R2 и R3 с стека (не используя других регистров общего назначения).
2. Введите текст программы MOV 12,R0 CALL SQR STOP SQR: MUL R0,R0 RET Заполните таблицу, выполнив программу пошагово с клавиши F7 (пошаговое выполнение с входом в подпрограммы): (Указано на скрине)
3. Напишите и отладьте программу с подпрограммой, которая вычисляет куб числа, записанного в регистр R0.
4. Напишите и отладьте программу с подпрограммой, которая и строит RGB-код цвета, 4-битные составляющие которого (R, G и B) записаны, соответственно, в регистры R0, R1 и R2. Результат должен быть получен в регистре R0.
5. Выполните предыдущее задание при условии, что параметры передаются через стек, а значения регистров R1 и R2 не должны измениться.
6. Отладьте программу с рекурсивной подпрограммой, которая вычисляет факториал числа, записанного в регистр R0. При выполнении в пошаговом режиме (клавиша F7) наблюдайте, как изменяется регистр SP и содержимое стека.
7. Решите предыдущую задачу, применив подпрограмму без рекурсии.
1) Получаем вводимое число и разбиваем строку на массив. Проверяем каждую цифру на чётность, в случае когда все они чётные - выводим "Да", а в других случаях "Нет". 2) Получаем вводимое число и разбиваем строку на массив. Умножаем все цифры друг на друга и проверяем произведение на чётность, если оно чётное выводим "Нет", а в других случаях "Да"
1)
number = list(input())
if int(number[0])%2==0 and int(number[1])%2==0 and int(number[2])%2==0:
print('Да')
else:
print('Нет')
2)
number = list(input())
if((int(number[0])*int(number[1])*int(number[2])) % 2 == 0):
print('Нет')
else:
print('Да')
Объяснение:
1) Получаем вводимое число и разбиваем строку на массив.
Проверяем каждую цифру на чётность, в случае когда все они чётные - выводим "Да", а в других случаях "Нет".
2) Получаем вводимое число и разбиваем строку на массив.
Умножаем все цифры друг на друга и проверяем произведение на чётность, если оно чётное выводим "Нет", а в других случаях "Да"
# Задание 1
print('Задание 1')
while True:
N = int(input('N: '))
if N in range(1, 1001):
break
print('N в промежутке [1, 1000]')
arr = []
for _ in range(N):
arr.append(int(input('Введите элемент массива: ')))
print(arr)
count = 0
for i, el in enumerate(arr):
if el == 0:
count += 1
arr[i] = i
print(arr)
print(count)
# Задание 2
print('Задание 2')
while True:
K = int(input('N: '))
if K in range(1, 201):
break
print('K в промежутке [1, 1000]')
arr = []
arr_2 = []
for _ in range(K):
arr.append(int(input('Введите оценку: ')))
for i, el in enumerate(arr):
if el == 5:
arr_2.append(i)
print(arr)
print(arr_2)