Member 14706820 Ответов: 2

У меня есть эта тревожная проблема программирования. Я очень надеюсь, что смогу получить помощь от экспертов здесь


1. Добавьте два числа, находящиеся в ячейках памяти FC40 и FC41. Поместите сумму в ячейку памяти FC42. Выполните программу, нажав клавишу F1

2. в программировании микросхем напишите программу в сборке, используя любой симулятор, чтобы сделать следующее:
I. отправьте первое число (ноль) в аккумулятор
Второй. Преобразование содержимого аккумулятора в сегменте эквивалентности и сохранения в памяти (допустим память х)
Раздел III. отправить данные из памяти в порт х 1
Ив. Вызов подпрограммы задержки
V. увеличьте накопитель и повторяйте II - IV, пока не дойдете до числа 9
Ви. Начать все заново

3. напишите программу для добавления 8 и 3, затем отправьте свой результат на порт 1 микроконтроллера и используйте восемь светодиодов для объявления результата

Что я уже пробовал:

Не имею представления о программировании чипов и не очень хорошо разбираюсь в c++

2 Ответов

Рейтинг:
5

OriginalGriff

Мы более чем готовы помочь тем, кто застрял, но это не значит, что мы здесь, чтобы сделать все это для вас! Мы не можем сделать всю работу, вам либо платят за это, либо это часть ваших оценок, и было бы совсем несправедливо, если бы мы сделали все это за вас.

Поэтому нам нужно, чтобы вы сделали работу, и мы поможем вам, когда вы застряли. Это не значит, что мы дадим вам пошаговое решение, которое вы можете сдать!
Начните с объяснения, где вы находитесь в данный момент и каков следующий шаг в этом процессе. Затем расскажите нам, что вы пытались сделать, чтобы этот следующий шаг сработал, и что произошло, когда вы это сделали.


Member 14706820

Спасибо...
Я был в состоянии придумать с этим

Mov fc40, '3'
sub fc40, '0'

Mov fc41, '4'
Sub fc41, '0'

Добавить fc40, fc41
Добавить fc40, '0'

Mov fc42, fc40

------
Часть выполнения программы нажатием клавиши F1-это то, что я действительно не понимаю.
Еще попытка 2 и 3

OriginalGriff

- я не уверен, что все это на самом деле правильно-похоже, что никакого действительного ассемблера я не видел. FC40, FC41 и FC42 выглядят для меня как шестнадцатеричные адреса и, вероятно, должны предшествовать "0x" (или начинаться с "0" и заканчиваться "h"), чтобы сообщить об этом ассемблеру.
И синтаксис Add выглядит маловероятным, особенно с тех пор, как остальная часть вопроса начинает говорить о аккумуляторе, который обычно является целью операции Add (и SUB, если уж на то пошло) в процессорах, которые их используют.

Я бы посоветовал вам еще раз взглянуть на свой набор инструкций uController - я почти уверен, что даже не зная, какой процессор вы используете, это неправильно...

Member 14706820

В Q1 fc40, fc41 и fc42 кажутся просто случайно выбранными ячейками памяти. На него нужно ответить только теоретически я думаю

OriginalGriff

Это все еще не означает, что ассемблеру не нужно знать, что вы передаете и какой "тип" числа это. Каким образом предполагается, что
Добавить fc40, fc41
использует две ячейки памяти, в то время как
Добавить fc40, '0'
разве можно использовать только один?

Серьезно, проверьте набор инструкций процессора еще раз - я использовал много процессоров за эти годы, и всем им нужно было абсолютно точно сказать, что они делают и с чем!

Member 14706820

Согласно учебнику, который я видел, sub и add '0' предназначены для преобразования между ASCII и десятичными числами... Но я понимаю, что ты имеешь в виду. Пожалуйста, что ты предлагаешь мне делать?

RickZeeland

Похоже, речь идет о программировании ПЛК Siemens.

Member 14706820

Программирование ПЛК Сименса.. Вау.. Это выглядит толстым. Я даже не знаю, как к этому подступиться. Быстрый вопрос, какой вопрос, в частности, я использую Программирование ПЛК Siemens

RickZeeland

Я не программист ПЛК, но похоже, что все вопросы касаются программирования ПЛК, может быть, вам лучше задать вопросы на форуме Siemens или более ориентированном на ПЛК сайте, CodeProject-это больше .Сетевое и C++ Программирование ...

Member 14706820

Ну ладно... Спасибо

Member 14706820

Я пытаюсь решить Q2 с помощью симулятора qtspim.. Вы предлагаете какой-нибудь другой симулятор?

Рейтинг:
14

RickZeeland

Это не проблема C или C++, а проблема языка ассемблера.
Вот вам учебник: Учебник По Программированию На Ассемблере - Tutorialspoint[^]


Кажется, речь идет о программировании ПЛК Siemens, см.: Программное обеспечение для моделирования ПЛК Siemens S7 - Contrologica[^]


Member 14706820

Спасибо...
Я был в состоянии придумать с этим

Mov fc40, '3'
sub fc40, '0'

Mov fc41, '4'
Sub fc41, '0'

Добавить fc40, fc41
Добавить fc40, '0'

Mov fc42, fc40

------
Часть выполнения программы нажатием клавиши F1-это то, что я действительно не понимаю.
Еще попытка 2 и 3

RickZeeland

По-видимому, вы должны использовать ассемблер TASM, см.: https://stackoverflow.com/questions/15116531/nasm-input-output-to-window

Member 14706820

Огромное спасибо... Это было полезно... Если я столкнусь с еще какими-нибудь проблемами в других Qs, я спрошу.. Спасибо