-
- Вот переписал прогу, в которой для передачи параметров использую регистры - все работает! Всем спасибо за подсказки и дельные советы! И все-таки я до конца не понял разницу между директивами EQU - SET tvi(15.10.2012 11:23)
- Не знаю, что делает ваша программа. Но даже я, когда начинал, не извращался так. Что за программа, что она делает, что вы хотите получить? - mazur(15.10.2012 11:44)
- Программы написаны только для наглядности моих затруднений - первая, где я пытался создать переменные и с их помощью передать параметры в подпрограмму - вы все мне объяснили, что таким образом это сделать невозможно и подсказали, что параметры tvi(498 знак., 15.10.2012 12:24)
- Если нам нужно записать флаг, тогда это будет команда ldi: mazur(477 знак., 15.10.2012 16:04)
- Думаю, вы так и не поняли о чем я спрашивал изначально, а как устанавливать/сбрасывать флаги по одному или скопом я знаю. И я не пойму смысла ваших макросов - зачем они нужны? tvi(118 знак., 15.10.2012 23:57)
- Я не раз делал ошибку со стрелками. Один раз даже отправил заказчику программу с одной такой ошибкой. Извращался с определением констант. Запарился. Наткнулся на эти макросы, с тех пор использую и не парюсь. mazur(283 знак., 16.10.2012 14:12)
- Ваш макрос работает только с одним битом. А sbr FLAGS,(1<<FLG1)|(1<<FLG2)|(1<<FLG3)? Или например sbr R16,(3<<WGM12)|(5<<CS10) - maik-vs(16.10.2012 15:57)
- Тут да, согласен. Предложите варианты. - mazur(16.10.2012 16:15)
- Ваш макрос работает только с одним битом. А sbr FLAGS,(1<<FLG1)|(1<<FLG2)|(1<<FLG3)? Или например sbr R16,(3<<WGM12)|(5<<CS10) - maik-vs(16.10.2012 15:57)
- Нет, sbr FLAGS,FLG1 это фактически OR с константой. В отличие от sbi port,bit. :0 C битами работаем так: maik-vs(403 знак., 16.10.2012 10:24)
- sbr Rd,K - это ORI Rd,K. А про defы я не понял, к чему это вы? В программе trablset2.asm я допустил ошибку - поставил две метки с одинаковыми именами lDelay, а поскольку одна из них стоит в макросе, ассемблер промолчал, как и предупреждал mazur. tvi(45 знак., 16.10.2012 11:14)
- Про .def-ы это совет. Неприятно видеть программы с бесконечными R16 R17 R23 и держать в мозге кто для чего. - maik-vs(16.10.2012 11:38)
- sbr Rd,K - это ORI Rd,K. А про defы я не понял, к чему это вы? В программе trablset2.asm я допустил ошибку - поставил две метки с одинаковыми именами lDelay, а поскольку одна из них стоит в макросе, ассемблер промолчал, как и предупреждал mazur. tvi(45 знак., 16.10.2012 11:14)
- А я у вас спрашивал, что делает ваша программа. Что вы хотите получить. Вы не ответили, а передача параметров и ваш код это не ответ. Очень возможно, что все можно сделать по другому. - mazur(16.10.2012 06:43)
- Посылаю вам упрощенную версию (для облегчения восприятия) моей работающей программы с 3-мя однотипными блоками, которую я для облегчения отладки решил переписать, используя подпрограмму. Но наткнулся на проблему с использовавшимися в старой версии tvi(650 знак., 16.10.2012 16:02 - 16:06)
- Вы тоже снова меня не поняли. Я посмотрю примеры. Мне нужно знать, что вы хотите реализовать. Не программным кодом, а что-то вроде ТЗ. Типа: вот такой-то девас. Он должен делать то-то и то-то. И когда то-то и то-то, должно происходить вот это и mazur(137 знак., 16.10.2012 16:21)
- Сколько программистов и столько же решений любого ТЗ, не так ли? Программа уже 3 года нормально работает, а этот блок программы самый сложный, в смысле алгоритма и трогать что то в ней опасно, поскольку я уже сам не все помню. Лучшее, враг tvi(745 знак., 16.10.2012 18:33)
- Вы тоже снова меня не поняли. Я посмотрю примеры. Мне нужно знать, что вы хотите реализовать. Не программным кодом, а что-то вроде ТЗ. Типа: вот такой-то девас. Он должен делать то-то и то-то. И когда то-то и то-то, должно происходить вот это и mazur(137 знак., 16.10.2012 16:21)
- Посылаю вам упрощенную версию (для облегчения восприятия) моей работающей программы с 3-мя однотипными блоками, которую я для облегчения отладки решил переписать, используя подпрограмму. Но наткнулся на проблему с использовавшимися в старой версии tvi(650 знак., 16.10.2012 16:02 - 16:06)
- Я не раз делал ошибку со стрелками. Один раз даже отправил заказчику программу с одной такой ошибкой. Извращался с определением констант. Запарился. Наткнулся на эти макросы, с тех пор использую и не парюсь. mazur(283 знак., 16.10.2012 14:12)
- Вариант с + тяжелее чем с | отлаживать, если случайно одинаковые FLG1 и FLG2 сделал. Особенно, когда флагов много. - Andreas(15.10.2012 16:28)
- Думаю, вы так и не поняли о чем я спрашивал изначально, а как устанавливать/сбрасывать флаги по одному или скопом я знаю. И я не пойму смысла ваших макросов - зачем они нужны? tvi(118 знак., 15.10.2012 23:57)
- Если нам нужно записать флаг, тогда это будет команда ldi: mazur(477 знак., 15.10.2012 16:04)
- Программы написаны только для наглядности моих затруднений - первая, где я пытался создать переменные и с их помощью передать параметры в подпрограмму - вы все мне объяснили, что таким образом это сделать невозможно и подсказали, что параметры tvi(498 знак., 15.10.2012 12:24)
- EQU -- это навсегда, то есть до завершения обработки текста ассемблером. Значение константы, обьявленное директивой SET, можно изменять последующими директивами SET. Успехов! - Вл.Шарнин(15.10.2012 11:38)
- Не знаю, что делает ваша программа. Но даже я, когда начинал, не извращался так. Что за программа, что она делает, что вы хотите получить? - mazur(15.10.2012 11:44)
- Да, намек понятен - команды sbr и cbr я уже придумал заменить командами OR и AND. tvi(47 знак., 14.10.2012 22:07)
- test и breq Apтём(64 знак., 14.10.2012 22:20)
- Команда and меняет флаг Z. tst - не нужен - ilyaul(14.10.2012 22:43)
- А вот и еще один двоешник подтянулся :)) - MBedder(14.10.2012 22:40)
- Вторая команда здесь явно лишняя. Bill(10 знак., 14.10.2012 22:30)
- Да, tst - лишняя команда. Давно на асме не писал - забыл. - Apтём(14.10.2012 22:46)MBedder
- Я знал одного студента, который перед выполнением какой-либо инструкции всегда сбрасывал интересующий его флаг, хотя Bill(134 знак., 15.10.2012 09:44)
- "Не знал, но забыл"(с) :)) - MBedder(14.10.2012 22:53)
- Да, tst - лишняя команда. Давно на асме не писал - забыл. - Apтём(14.10.2012 22:46)MBedder
- test и breq Apтём(64 знак., 14.10.2012 22:20)
- Вот переписал прогу, в которой для передачи параметров использую регистры - все работает! Всем спасибо за подсказки и дельные советы! И все-таки я до конца не понял разницу между директивами EQU - SET tvi(15.10.2012 11:23)