1010202 Код, который похож на правильный, но не работает из-за очевидной ошибки, обычно оценивался преподавателями достаточно низко. Хотя дело добровольное. P.S. Ошибка действительно явная.
Сходил на пару вчера, долго же мы мучились с ней - но намучились!!! Вот в итоге что получилось (смеяться разрешается):
Код:
StBit EQU 00h Pi EQU 002Ah Ch EQU 005Ch ORG 00H mov R2, #StBit mov R0, #число, с которым сравниваем Далее не anl PSW а mov PSW, #11100111b mov A,R0 mov R2,A mov R0,#5Ch mov R1,#2Ah mov R3,0 mov R4,#50 Новая строка mov R7, #8 - счётчик циклов Start: Не mov а movx A, @R0 Затем геморройная вставка ввиду того что делать сравнение приходится побитово сложением по модулю два, ибо функция anl не давала нужный результат, так как при сравнении двух нулевых чисел она считает их разными так как 0+0=0 и 0+1=0 и 1+0=0 и только 1+1=1: mov R6, A mov A, R2 Cpl A mov R2, A mov A, R6 anl A, R2 mov R5, A mov A, R2 Cpl A mov R2, A mov A, R6 Cpl A anl A, R2 orl A, R5 Cpl A Cycle: RRC A dec R7 jb R7, dal jb 0D7h, Cycle Dal: jz No_save mov A,@R0 mov @R1,A inc R1 inc R3 No_save: inc R0 djnz R4, Start mov A,R3 End
У контроллера прорезалась внешняя память ? Тогда и дальше по тексту менять надо было . - у нас ADuC. xrl A,R2 . - это нужная команда? P.S. И преподаватель санкционировал извращение со вставкой? - Препод не видел ещё, пока не защищал...
1010202 Простой вариант: - Последовательность нот и интервалы для каждой ноты - во таблицу (во флешке можно расположить или EEPROM, а можно и принимать по UART); - По данным из таблицы программируются 2 таймера, один из которых либо непосредственно занимается формированием нужной частоты, либо обеспечивает прерывание для этого (тут надо документацию детально почитать), а второй - отсчитывает интервал. Более сложный вариант - можно поизвращаться с ЦАПами . P.S. Чтение документации/написание кода меня как-то не сильно вдохновляет .
Member
Статус: Не в сети Регистрация: 15.02.2009 Откуда: Лангепас
manya писал(а):
...файл .com в Volkov Commander.
С .com понятно, а в каком отладчике смотреть собираемся? и насколько я знаю VC умеет только вызывать ранее настроеные проги по расширению версия ассемблера, линковщика, как уже сказал отладчика.
как посмотреть text по адресу и по имени в отладчике?
Если адрес известен, то в чем вообще состоит вопрос ? Вы знаете адрес, начиная с которого загружена программа, которую вы собираетесь отладить. Знаете смещение вашего текста от начала вашего com-файла. Складываете два числа и получаете адрес. Перемещаете взор на этот адрес и видите ваш текст. Единственный момент, который может быть не удобен, - d86 (как и любой отладчик) попытается отобразить ваши данные в виде кода. По имени в отладчике вы вряд ли что-то найдете, разве что отладчик способен воспринимать исходный текст программы или пользуется услугами ассемблера, имеющего исходный текст . P.S. IMHO удобнее пользоваться отладчиком в режиме отображения как кода, так и данных.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения