![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 04.06.2012
Сообщений: 4
|
![]()
очень нужна помощь в написании программы под МК-51
само задание вот:Записать в регистр DPTR сумму двоичных чисел массива 20Н-3FH. Наименьшее число продублировать в регистре В.Заранее благодарен |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Среда Keil uVision 3 --> http://rutracker.org/forum/viewtopic.php?t=916646
Функция init_array - инициализирует массив arr. Функция sum_array - считает сумму и сохраняет её в регистре DPTR. Поиск наименьшего элемента массива попробуйте реализовать сами. Код:
http://www.programmersforum.ru/showthread.php?t=203590 http://www.programmersforum.ru/showthread.php?t=203863 Последний раз редактировалось 8Observer8; 06.06.2012 в 13:25. |
![]() |
![]() |
![]() |
#3 | |
Регистрация: 04.06.2012
Сообщений: 4
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 04.06.2012
Сообщений: 4
|
![]()
да понятно что на си там строк 15)но увы,надо на ассемблере
![]() |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Я не понимаю. Ваша цель какая?
1) Научиться программировать микроконтроллеры 2) Получить зачёт Если второе, то это печально. Значит, вы: - либо выбрали не то направление, не ту специальность, не тот факультет (может на гуманитарный факультет надо было идти) - либо у вас нет мотивации (или вы её не осознаёте) Пока у вас есть возможность учиться - пользуйтесь ею. Когда будите работать - вам учиться будет сложнее, если у вас нет базы. Формируйте эту базу сейчас. Если вы не хотите, чтобы у вас в будущем были проблемы, то вы обязаны: 1) поставить среду (к примеру, Keil); 2) скопировать туда мою программу; 3) пройти программу по шагам. Попутно отмечая, что делает тот или иной оператор (система команд здесь --> http://www.8052.com/set8051); 4) описать в этой теме все непонятные места. Можно вот так: Что делает эта команда и почему здесь решётка?: Код:
Код:
Код:
Код:
Код:
- будут найдены ошибки (которые при компиляции не обнаруживаются); - будет найдено более правильное решение; - в процессе обсуждения более старшие и опытные форумчане помогут ликвидировать пробелы в наших знаниях; Если вы всё-таки настроены серьёзно, то нужно: 5) найти в интернете схемы программаторов; 6) программы для прошивки; 7) собрать программатор; Самое интересное: 8) искать идеи (проекты) и реализовывать их (к примеру, заняться робототехникой на уровне хобби; это в учёбе вам поможет и в работе); 9) самому придумывать проекты и реализовывать их. Удачи! P.S. И что значит написать проще? Программа написана - если она может выполняться в целевой среде (ну хотя бы в эмуляторе). |
![]() |
![]() |
![]() |
#7 |
Регистрация: 04.06.2012
Сообщений: 4
|
![]()
MOV R0,#20H ;загрузка адреса массива
MOV R7,#32 ;загрузка размера массива MOV 70,#FFH ;загрузка максимального числа для сравнения MOV 71,#0 ;ячейка для сохранения аккумулятор M1: MOV A,@R0 ;загрузка значения элемента массива CJNE A,70,M5 ;переход на М5 если не равны JMP M7 ;переход на М7 M5: JC M6 ;переход на М6 если перенос равен 1 JMP M7 ;переход на М7 M6: MOV 70,A ;сохранения аккумулятора в 70 ячейку M7: MOV A,71 ;запись в аккумулятор 71 ячейки ADD A,@R0 ;сложение элемента массива с аккумулятором MOV 71,A ;сохранение аккумулятора в 71 ячейку INC R0 ;инкремент R0 MOV DPL,A ;запись в DPL результата сложения LCALL M3 ;вызов подпрограммы М3 DJNZ R7,M1 ;зацикливание и переход на М1 SJMP M4 ;переход на М4 M2: INC DPH ;увеличение на один DPH CLR C ;сброс переноса M3: JC M2 ;переход на М2 если перенос равен 1 RET ;возврат из подпрограммы M4: MOV B,70 ;запись в регистр В наименьшего числа END вот так решил задание.Приняли)значит правильно |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Регистр EBP | ABCDEF1551 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 24 | 17.02.2012 01:43 |
как сравнить 4 числа,и наименьшее записать в оставшийся регистр ? | dezder | Помощь студентам | 0 | 16.12.2011 09:47 |
Регистр в таблицах БД | Alexij | БД в Delphi | 3 | 17.04.2008 13:38 |
Регистр символов | Никки | Общие вопросы Delphi | 1 | 22.12.2007 20:14 |
регистр | vitalik007 | Общие вопросы Delphi | 2 | 15.09.2007 02:41 |