PerfeCt
Просветленный
(46282)
2 месяца назад
чувак, ты для чего учишься на программера, если спрашиваешь как решить. это ведь не школьная программа у тебя, ты сделал осознанный выбор в профессии, на которую сейчас учишься. никто на работе за тебя программировать не будет, поэтому пробуй сам, либо бросай учебу, если это не твоё.
1)Y:= (A+B)*(F-E), если F<>E или (A+B),если F=E
2)Y:= (A/B)^(X-1) - Z
Команды для написания кода:
1. INP A - ввод слова из канала ввода и запись его по адресу A.
2. OUT A - вывод содержимого ячейки памяти с адресом A в канал вывода.
3. MOVR R,A - загрузка регистра R содержимым ячейки памяти с адресом A.
4. MOVM R,A - запись содержимого регистра R в ячейку памяти с адресом A.
5. ARM R,A - сложить содержимое регистра R с содержимым ячейки памяти с
адресом A.
6. SRM R,A - из содержимого регистра R вычесть содержимое ячейки памяти с
адресом A.
7. MRM R,A - перемножить содержимое регистра R и ячейки памяти с адресом
A.
8. DRM R,A - поделить содержимое регистра R на содержимое ячейки памяти
с адресом A.
9. ARR R1,R2 - сложить содержимое регистров R1 и R2.
10. SRR R1,R2 - из содержимого R1 вычесть содержимое R2.
11. MRR R1,R2 - содержимое регистра R1 умножить на содержимое регистра
R2.
12. DRR R1,R2 - содержимое регистра R1 поделить на содержимое регистра R2.
13. AMM A1,A2 - сложить содержимое ячеек памяти с адресами A1 и A2.
14. SMM A1,A2 - из содержимого ячейки с адресом A1 вычесть содержимое
ячейки памяти с адресом A2.
15. MMM A1,A2 - перемножить содержимое ячеек памяти с адресами A1 и A2.
16. DMM A1,A2 - содержимое ячейки памяти с адресом A1 поделить на
содержимое ячейки памяти с адресом A2.
17. JMP A - безусловный переход по адресу A.
128
18. JV A - переход по переполнению по адресу A.
19. JP A - переход по положительному результату по адресу A.
20. JPV A - переход по переполнению или положительному результату по
адресу A.
21. JZ A - переход по нулевому результату.
22. JZV A - переход по неотрицательному и неположительному результату.
23. JZP A - переход по положительному или нулевому результату.
24. JZPV A - переход по неотрицательному результату.
25. JN A - переход по отрицательному результату.
26. JNV A - переход по отрицательному результату или переполнению.
27. JNP A - переход по отрицательному или нулевому результату.
28. JNPV A - переход по ненулевому результату.
29. JNZ A - переход по отрицательному или нулевому результату.
30. JNZV A - переход по неположительному результату.
31. JNZP A - переход по непереполнению.
32. LOOP A - организация цикла со счетчиком в регистре 0.
33. STOP - останов
есть два примера для решения первой и второй задачи
1. Для выражения с ветвлением
MMM C,A C*A
AMM B,NULL B+0 (для установки регистра признаков)
JZ OUR переход по "0" на вывод результата
JP PLUS переход по "+" (B > 0)
DMM B,A B/A
AMM C,B B/A + C*A
JMP OUR безусловный переход на вывод результата
PLUS: DMM A,B A/B
AMM C,A C*A + A/B
OUR: OUT C вывод результата в канал вывода
STOP останов
A: .DW 2 значения
B: .DW 2 переменных
C: .DW 6 выражения
NULL: .DW 0 ячейка для хранения 0
END
2. Для циклического выражения:
MOVR 0,N загрузить в регистр 0 N
MOVR 1,ONE загрузить в регистр 1 единицу
CYCL: JZ OU1 при нулевом результате перейти по символическому адресу OU1
MRR 1,0 перемножить содержимое регистров 1 и 0
LOOP CYCL замкнуть цикл по символическому адресу CYCL
OU1: MOVM 1,FACT записать результат по адресу FACT
OUT FACT вывести результат в канал вывода
STOP останов
N: .DW 5 значение N
ONE: .DW 1 константа “1”
FACT: .DS ячейка памяти для результата
END