Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача на ассемблере.

Ваня Калинин Ученик (124), на голосовании 3 дня назад
Всем привет, нужно решить два примера на ассемблере. Максимум 20 строк
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
Голосование за лучший ответ
PerfeCt Просветленный (46144) 1 месяц назад
чувак, ты для чего учишься на программера, если спрашиваешь как решить. это ведь не школьная программа у тебя, ты сделал осознанный выбор в профессии, на которую сейчас учишься. никто на работе за тебя программировать не будет, поэтому пробуй сам, либо бросай учебу, если это не твоё.
Похожие вопросы