Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Исходники » objdump для AVR Object File (AOF)


objdump для AVR Object File (AOF)

Сообщений 31 страница 60 из 210

1

Платформа: .Net 4.5, C#, VS2013
Ссылка на git репозиторий проекта: https://github.com/ViacheslavMezentsev/objdump
Ссылка на последнюю откомпилированную сборку: (пока ссылки нет)

Документацию на AOF можно найти в репозитории.

Как это выглядит в реальности:

http://img.radiokot.ru/files/4453/thumbnail/6by6j47v5.png

Документация на набор инструкций: AVR Instruction Set Manual

Требования: Исходные файлы, указанные в объектном файле, должны находиться в той же папке, откуда вызывается программа, т.е. всё должно быть рядом.
Формат вызова: objdump -S имя_объектного_файла

Описание: Программа objdump формирует смешанные листинги с результатом компиляции исходных файлов при помощи компилятора bascomp.exe. Выходные файлы имеют имя, соответствующее исходному файлу, и расширение .lst. Если в результате компиляции какому-то модулю не соответствует ни одной ассемблерной инструкции, то выходной листинг для него не формируется.

П.С. Сочувствующим товарищам, желающим высказать своё оценочное мнение не по теме: не надо мусорить в сети, вы либо пишите что-то конкретное, связанное с обсуждаемым вопросом, либо не пишите вообще, а просто наблюдайте за процессом. Под чем-то конкретным я понимаю вопросы технического характера (в плане программирования, сборки, отладки).

Я считаю AVR Studio и Proteus в данном конкретном случае - протезом для мозга. Случай этот - изучение ассемблера AVR и просмотр листингов смешанного кода, не выходя из одной программы. Если вы владеете ассемблером, то пользуйтесь на здоровье чем хотите, если нет, то не пишите в этой теме про удобство указанных программ.

Отредактировано uni (2015-02-10 14:55:36)

+2

31

uni написал(а):

Проверьте работу с русскими именами в названии файлов

С русским языком по прежнему не дружит, в логе вместо названия, набор кирилических символов!

Log file

02.11.2013 16:56:25 objdump version 0.1.5054.37692 (2 ноября 2013 г. 20:56:24)
02.11.2013 16:56:25 options: -S, ╘юЁьшЁютрэшх.obj
02.11.2013 16:56:25 [INFO ] [Initialize()] NOP: "0000000000000000"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRHS: "111100\d{7}101"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRNE: "111101\d{7}001"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRLT: "111100\d{7}100"
02.11.2013 16:56:25 [INFO ] [Initialize()] BCLR: "100101001\d{3}1000"
02.11.2013 16:56:25 [INFO ] [Initialize()] BLD: "1111100\d{5}0\d{3}"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRSH: "111101\d{7}000"
02.11.2013 16:56:25 [INFO ] [Initialize()] AND: "001000\d{10}"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRLO: "111100\d{7}000"
02.11.2013 16:56:25 [INFO ] [Initialize()] RCALL: "1101\d{12}"
02.11.2013 16:56:25 [INFO ] [Initialize()] ANDI: "0111\d{12}"
02.11.2013 16:56:25 [INFO ] [Initialize()] RJMP: "1100\d{12}"
02.11.2013 16:56:25 [INFO ] [Initialize()] BREAK: "1001010110011000"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRBC: "111101\d{10}"
02.11.2013 16:56:25 [INFO ] [Initialize()] ADIW: "10010110\d{8}"
02.11.2013 16:56:25 [INFO ] [Initialize()] TST: "001000(\d{5})\1"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRTC: "111101\d{7}110"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRCC: "111101\d{7}000"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRBS: "111100\d{10}"
02.11.2013 16:56:25 [INFO ] [Initialize()] RETI: "1001010100011000"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRTS: "111100\d{7}110"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRCS: "111100\d{7}000"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRVC: "111101\d{7}011"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRGE: "111100\d{7}100"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRVS: "111100\d{7}011"
02.11.2013 16:56:25 [INFO ] [Initialize()] ADD: "000011\d{10}"
02.11.2013 16:56:25 [INFO ] [Initialize()] CLI: "1001010011111000"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRPL: "111101\d{7}010"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRMI: "111100\d{7}010"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRIE: "111100\d{7}111"
02.11.2013 16:56:25 [INFO ] [Initialize()] ASR: "1001010\d{5}0101"
02.11.2013 16:56:25 [INFO ] [Initialize()] ADC: "000111\d{10}"
02.11.2013 16:56:25 [INFO ] [Initialize()] RET: "1001010100001000"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRID: "111101\d{7}111"
02.11.2013 16:56:25 [INFO ] [Initialize()] BRHC: "111101\d{7}101"
02.11.2013 16:56:25 [INFO ] [Initialize()] BREQ: "111100\d{7}001"
02.11.2013 16:56:25 [INFO ] [Initialize()] Successfully. 36 instructions loaded.
02.11.2013 16:56:25 File not found: D:\!!\╘юЁьшЁютрэшх.obj

Если в названии файла есть пробелы, надо всё название вместе с расширением брать в кавычки, иначе не работает.

Поставил Visual Studio 2010, скидывай на mail, что и как надо делать.

Отредактировано sasha_1973 (2013-11-02 19:58:25)

0

32

Я думаю, это многим будет интересно. Можно писать прямо здесь.

Шаг 1. Для начала нужно установить себе специальный плагин к проводнику: TortoiseSVN. После его установки в Проводнике в контекстном меню появится ещё один пункт для работы с svn.

Нужно выбрать папку, где будут лежать исходники objdump и вызвать в этой папке команду Экспорт из контекстного меню TortoiseSVN. Там указать адрес источника: https://mysvn.ru/avr/bascom/objdump/
Потом нажать Ок и исходники скопируются из сетевого хранилища в локальную папку.

Важно! Нужно делать не Импорт, а именно Экспорт. Это означает Экспорт ИЗ хранилища.

Шаг 2. Открыть проект в Студии и собрать его.

Шаг 3. Посмотреть как организован код и что там понятно, а что нет, задавать вопросы.

Шаг 4. Самостоятельно собирать проект в отладочном режиме, задав в свойствах проекта параметры командной строки. Положить в папку bin\Debug необходимые файлы для работы программы и по шагам изучать её работу. Ставить точки останова и смотреть как идёт процесс дизассемблирования.

Этого пока достаточно. Чтобы что-то писать, нужно сначала понять как это работает. На данный момент я создаю класс за классом для каждой инструкции. Нужно периодически просматривать Журнал svn (есть в контекстном меню), где будет видно, когда я делал последние изменения в исходниках и что там добавлено.

Для того, чтобы понять как работает программа можно создать тестовый проект на Bascom c одной инструкцией на ассемблере и под отладчиком посмотреть как идёт её распознавание. Разбор файла AOF уже сделан, поэтому этот участок можно смело пропускать.

К примеру, создать проект с одной командой LDI (ассемблерной вставкой). Открыть в Студии файл класса ldi.cs, поставить точку останова (F9) внутри функции Disassemble() и запустить проект на исполнение в отладочном режиме. Если в объектном файле есть такая инструкция, то программа передаст управление внутрь этой функции. Вот это локальное место работы и нужно изучить на разных примерах, пока не станет привычно.

0

33

Я проверил проект с русским именем. Всё нормально работает. Дело тут в твоём файловом менеджере, который использует досовскую кодировку. Какой версии у тебя Far?

Свернутый текст
Код:
02.11.2013 22:28:57 objdump version 0.1.5054.40186 (2 ноября 2013 г. 22:19:32)
02.11.2013 22:28:57 options: -S, Проект.obj
02.11.2013 22:28:57 [INFO ] [Initialize()] NOP: "0000000000000000"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRHS: "111100\d{7}101"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRNE: "111101\d{7}001"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRLT: "111100\d{7}100"
02.11.2013 22:28:57 [INFO ] [Initialize()] BCLR: "100101001\d{3}1000"
02.11.2013 22:28:57 [INFO ] [Initialize()] BLD: "1111100\d{5}0\d{3}"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRSH: "111101\d{7}000"
02.11.2013 22:28:57 [INFO ] [Initialize()] AND: "001000\d{10}"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRLO: "111100\d{7}000"
02.11.2013 22:28:57 [INFO ] [Initialize()] RCALL: "1101\d{12}"
02.11.2013 22:28:57 [INFO ] [Initialize()] ANDI: "0111\d{12}"
02.11.2013 22:28:57 [INFO ] [Initialize()] RJMP: "1100\d{12}"
02.11.2013 22:28:57 [INFO ] [Initialize()] BREAK: "1001010110011000"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRBC: "111101\d{10}"
02.11.2013 22:28:57 [INFO ] [Initialize()] ADIW: "10010110\d{8}"
02.11.2013 22:28:57 [INFO ] [Initialize()] TST: "001000(\d{5})\1"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRTC: "111101\d{7}110"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRCC: "111101\d{7}000"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRBS: "111100\d{10}"
02.11.2013 22:28:57 [INFO ] [Initialize()] RETI: "1001010100011000"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRTS: "111100\d{7}110"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRCS: "111100\d{7}000"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRVC: "111101\d{7}011"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRGE: "111100\d{7}100"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRVS: "111100\d{7}011"
02.11.2013 22:28:57 [INFO ] [Initialize()] ADD: "000011\d{10}"
02.11.2013 22:28:57 [INFO ] [Initialize()] CLI: "1001010011111000"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRPL: "111101\d{7}010"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRMI: "111100\d{7}010"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRIE: "111100\d{7}111"
02.11.2013 22:28:57 [INFO ] [Initialize()] ASR: "1001010\d{5}0101"
02.11.2013 22:28:57 [INFO ] [Initialize()] ADC: "000111\d{10}"
02.11.2013 22:28:57 [INFO ] [Initialize()] RET: "1001010100001000"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRID: "111101\d{7}111"
02.11.2013 22:28:57 [INFO ] [Initialize()] BRHC: "111101\d{7}101"
02.11.2013 22:28:57 [INFO ] [Initialize()] BREQ: "111100\d{7}001"
02.11.2013 22:28:57 [INFO ] [Initialize()] LDI: "1110\d{12}"
02.11.2013 22:28:57 [INFO ] [Initialize()] OUT: "10111\d{11}"
02.11.2013 22:28:57 [INFO ] [Initialize()] MOV: "001011\d{10}"
02.11.2013 22:28:57 [INFO ] [Initialize()] CLR: "001001(\d{5})\1"
02.11.2013 22:28:57 [INFO ] [Initialize()] EOR: "001001\d{10}"
02.11.2013 22:28:57 [INFO ] [Initialize()] WDR: "1001010110101000"
02.11.2013 22:28:57 [INFO ] [Initialize()] ST: "1001001\d{5}1100"
02.11.2013 22:28:57 [INFO ] [Initialize()] ST: "1001001\d{5}1101"
02.11.2013 22:28:57 [INFO ] [Initialize()] ST: "1001001\d{5}1110"
02.11.2013 22:28:57 [INFO ] [Initialize()] Successfully. 45 instructions loaded.
02.11.2013 22:28:57 -> records: 59, file: C:\Projects\avr\bascom\objdump\bin\Release\Проект.lst

Что касается пробелов и кавычек - это так устроена ОС Windows. Нужно использовать её правила для работы с параметрами командной строки.

0

34

Far последний, дело не в нем, я написал батник и все делается из под винды 7 х64.

bat file

objdump.exe -S Формирование.obj

Log File

02.11.2013 18:04:06 objdump version 0.1.5054.37692 (2 ноября 2013 г. 20:56:24)
02.11.2013 18:04:06 options: -S, ╘юЁьшЁютрэшх.obj
02.11.2013 18:04:06 [INFO ] [Initialize()] NOP: "0000000000000000"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRHS: "111100\d{7}101"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRNE: "111101\d{7}001"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRLT: "111100\d{7}100"
02.11.2013 18:04:06 [INFO ] [Initialize()] BCLR: "100101001\d{3}1000"
02.11.2013 18:04:06 [INFO ] [Initialize()] BLD: "1111100\d{5}0\d{3}"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRSH: "111101\d{7}000"
02.11.2013 18:04:06 [INFO ] [Initialize()] AND: "001000\d{10}"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRLO: "111100\d{7}000"
02.11.2013 18:04:06 [INFO ] [Initialize()] RCALL: "1101\d{12}"
02.11.2013 18:04:06 [INFO ] [Initialize()] ANDI: "0111\d{12}"
02.11.2013 18:04:06 [INFO ] [Initialize()] RJMP: "1100\d{12}"
02.11.2013 18:04:06 [INFO ] [Initialize()] BREAK: "1001010110011000"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRBC: "111101\d{10}"
02.11.2013 18:04:06 [INFO ] [Initialize()] ADIW: "10010110\d{8}"
02.11.2013 18:04:06 [INFO ] [Initialize()] TST: "001000(\d{5})\1"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRTC: "111101\d{7}110"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRCC: "111101\d{7}000"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRBS: "111100\d{10}"
02.11.2013 18:04:06 [INFO ] [Initialize()] RETI: "1001010100011000"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRTS: "111100\d{7}110"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRCS: "111100\d{7}000"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRVC: "111101\d{7}011"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRGE: "111100\d{7}100"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRVS: "111100\d{7}011"
02.11.2013 18:04:06 [INFO ] [Initialize()] ADD: "000011\d{10}"
02.11.2013 18:04:06 [INFO ] [Initialize()] CLI: "1001010011111000"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRPL: "111101\d{7}010"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRMI: "111100\d{7}010"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRIE: "111100\d{7}111"
02.11.2013 18:04:06 [INFO ] [Initialize()] ASR: "1001010\d{5}0101"
02.11.2013 18:04:06 [INFO ] [Initialize()] ADC: "000111\d{10}"
02.11.2013 18:04:06 [INFO ] [Initialize()] RET: "1001010100001000"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRID: "111101\d{7}111"
02.11.2013 18:04:06 [INFO ] [Initialize()] BRHC: "111101\d{7}101"
02.11.2013 18:04:06 [INFO ] [Initialize()] BREQ: "111100\d{7}001"
02.11.2013 18:04:06 [INFO ] [Initialize()] Successfully. 36 instructions loaded.
02.11.2013 18:04:06 File not found: D:\!!\╘юЁьшЁютрэшх.obj

Скачал, установил, загрузил, открыл,  что дальше?

http://s7.uploads.ru/t/bWxQN.jpg

Отредактировано sasha_1973 (2013-11-02 21:13:47)

0

35

Открой свой батник в редакторе Far'а, выдели всё, вырежи в буфер, нажми F8 и вставь обратно, сохрани и попробуй ещё раз. С кодировкой батника CP866 почему-то наоборот работает.

0

36

uni написал(а):

Открой свой батник в редакторе Far'а, выдели всё, вырежи в буфер, нажми F8 и вставь обратно, сохрани и попробуй ещё раз. С кодировкой батника CP866 почему-то наоборот работает.

Пишет на русском, но:

02.11.2013 18:40:01 File not found: D:\!!\Форматирование.obj

02.11.2013 18:42:18 File not found: D:\!!\╨д╨╛╤А╨╝╨░╤В╨╕╤А╨╛╨▓╨░╨╜╨╕╨╡.obj

02.11.2013 18:42:18 File not found: D:\!!\Р¤Р_С_Р_Р°С'РёС_Р_Р_Р°Р_РёРч.obj

Отредактировано sasha_1973 (2013-11-02 21:44:37)

0

37

F8 - это перебор кодировок в файле. Там сверху они будут показываться, похоже ты unicode выбрал, а надо 866. Попробуй ещё раз. Перебери кодировки и оставь ту, где это число покажется.

0

38

uni написал(а):

F8 - это перебор кодировок в файле. Там сверху они будут показываться, похоже ты unicode выбрал, а надо 866. Попробуй ещё раз. Перебери кодировки и оставь ту, где это число покажется.


Выбрано все правильно  -  objdump.exe -S "Форматирование.obj"  -  написано в досовской кодировке, а вот log правильно читается только из под Windows unicode? в far кодировка представленная выше.

0

39

Славик, скинь мне на mail батник написаный в правильной кодировке, который работает у тебя!?

0

40

Я лучше тебе сейчас видео тут покажу как это всё делается, когда на youtube зальётся. Некоторые вопросы отпадут сами собой.

0

41

Если тебе так проще, тогда конечно ....!

0

42

Обновлён. Добавлена инструкция BST.

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

Пока на YouTube глюки, скачать можно по этой ссылке: objdump.bst.mp4.

0

43

Добавить новые классы из даташита, скопировать код с другого класса и поменять необходимые переменные - это всё без проблем.
Я пока не понимаю, как нужно обрабатывать конкретную инструкцию ASMa?
Понятно, что нужно вырезать часть строки и формировать на выходе другую.
Просто с АСМом у меня вообще полный "0", могу только применить готовое, но очень хочу разобраться.
В понедельник смогу приступить к работе, договоримся, какие инструкции я буду делать.
Только нужно понять алгоритм преобразования.

0

44

Прочитал ваше сообщение на форуме http://www.mcselec.com/index2.php?optio … mp;t=11899
Интересно, как это воспримет зарубежная общественность и сам Марк?

0

45

Ну, если у нас "нулевой уровень" (с) на уровне опкодов и ассемблера, то мне нужно подумать, как бы это объяснить попроще. Если вкратце, то я написал дизассемблер. Эта такая штука, на входе которой двоичные коды, а на выходе поучаются ассемблерные мнемоники. Так вот, функция Disassembe() принимает в качестве параметра запись из объектного файла и должна её расшифровать согласно документации на набор инструкций мк AVR.

Входной опкод приходит в виде строки с 16-разрядным двоичным кодом, так как одна команда в AVR занимает 2 байта. Распознавание кокретной команды происходит автоматически при помощи регулярного выражения. Для каждой команды своё регулярное выражение. Код распознавания одинаков для всех команд и он вынесен во вне, но для его работы в классе должно быть определено это выражение. Оно по сути является маской, шаблоном, который будет примеряться ко всем кодам объектного файла. Поэтому я и указал на необходимость понимания регулярок.

Внешний код перебирает все инструкции и примеряет имеющиеся у них шаблоны, если есть совпадение, то вызывается метод Disassembe(). Поэтому наша задача - просто правильно описать шаблоны для каждой инструкции на языке регулярных выражений.

После того, как опознавание сработало, к нам приходят все данные о коде, нужно только правильно их достать из двоичного числа, преобразовать в понятный вид и выдать это результатом.

0

46

По поводу регулярок мне всё понятно.
Алгоритм работы программы тоже.
Мне нужно подробнее про то, чем в конечном итоге должен стать  16-разрядным двоичным код.
Регулярки я напишу.

0

47

Ах это, ну это просто. Запусти Proteus, открой там листинг исходного кода у мк, нажми Показать опкоды и дизассемблировать. Сравни с тем, что выдаёт objdump. Всё должно совпадать по виду кроме команд с одинаковыми опкодами, этим я займусь позже. В том месте, где у меня стоит INVALID, должна стоять инструкция как в Proteus.

0

48

Обновлено. Общее количество поддерживаемых инструкций: 87.

Уже можно на что-то посмотреть. 40-50% кода уже обрело человеческий вид. Используя Notepad++ теперь можно одновременно исправлять код и смотреть рядом на панели к чему эти изменения приводят.

http://img.radiokot.ru/files/4453/thumbnail/6dovhmtze.png

По ходу дела тут узнал, что бывают и 32-разрядные команды, но для их правильного опознавания нужно указывать тип мк. Придётся добавлять в код зависимость набора инструкций от контроллера.

Для тестирования нужно будет разбить команды на группы по признакам и создать наборы тестовых программ для их распознавания.

Отредактировано uni (2013-11-03 03:45:05)

+1

49

Привет!

С русскими названиями, что-нибудь решилось?

0

50

Доброго, под WinXP с русскими именами проблем и не было. Что касается лога, то да, он в unicode формируется. Его можно смотреть в обычном блокноте Windows, хотя Far должен распознавать unicode автоматически при просмотре лога.

0

51

А, что делать тем, у кого Windows 7 x32 x64?

Перекодировал четко в страницу 866, Notepad++, результат прежний!

http://s7.uploads.ru/t/YxZyo.jpg

Отредактировано sasha_1973 (2013-11-03 08:38:30)

0

52

Капец, за сутки на форуме Bascom никто не ответил. В высшей степени странно!!!

0

53

Обнови программу и попробуй разные кодировки подсунь и покажи файл лога для каждого случая. Я убрал unicode из файла лога, теперь он должен быть в стандартной кодировке системы.

0

54

Стандартная кодировка Windows написал в блокноте

log file

03.11.2013 6:47:30 objdump version 0.1.5055.10144 (3 ноября 2013 г. 5:38:08)
03.11.2013 6:47:30 options: -S, ╘юЁьшЁютрэшх.obj
03.11.2013 6:47:30 [INFO ] [Initialize()] NOP: "0000000000000000"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRHS: "111100\d{7}101"
03.11.2013 6:47:30 [INFO ] [Initialize()] OUT: "10111\d{11}"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRNE: "111101\d{7}001"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRLT: "111100\d{7}100"
03.11.2013 6:47:30 [INFO ] [Initialize()] BCLR: "100101001\d{3}1000"
03.11.2013 6:47:30 [INFO ] [Initialize()] BLD: "1111100\d{5}0\d{3}"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRSH: "111101\d{7}000"
03.11.2013 6:47:30 [INFO ] [Initialize()] CLR: "001001(\d{5})\1"
03.11.2013 6:47:30 [INFO ] [Initialize()] EOR: "001001\d{10}"
03.11.2013 6:47:30 [INFO ] [Initialize()] AND: "001000\d{10}"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRLO: "111100\d{7}000"
03.11.2013 6:47:30 [INFO ] [Initialize()] ST: "1001001\d{5}1100"
03.11.2013 6:47:30 [INFO ] [Initialize()] RCALL: "1101\d{12}"
03.11.2013 6:47:30 [INFO ] [Initialize()] ANDI: "0111\d{12}"
03.11.2013 6:47:30 [INFO ] [Initialize()] ST: "1001001\d{5}1110"
03.11.2013 6:47:30 [INFO ] [Initialize()] RJMP: "1100\d{12}"
03.11.2013 6:47:30 [INFO ] [Initialize()] BREAK: "1001010110011000"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRBC: "111101\d{10}"
03.11.2013 6:47:30 [INFO ] [Initialize()] ADIW: "10010110\d{8}"
03.11.2013 6:47:30 [INFO ] [Initialize()] TST: "001000(\d{5})\1"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRTC: "111101\d{7}110"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRCC: "111101\d{7}000"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRBS: "111100\d{10}"
03.11.2013 6:47:30 [INFO ] [Initialize()] WDR: "1001010110101000"
03.11.2013 6:47:30 [INFO ] [Initialize()] RETI: "1001010100011000"
03.11.2013 6:47:30 [INFO ] [Initialize()] MOV: "001011\d{10}"
03.11.2013 6:47:30 [INFO ] [Initialize()] BST: "1111101\d{5}0\d{3}"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRTS: "111100\d{7}110"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRCS: "111100\d{7}000"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRVC: "111101\d{7}011"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRGE: "111100\d{7}100"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRVS: "111100\d{7}011"
03.11.2013 6:47:30 [INFO ] [Initialize()] ADD: "000011\d{10}"
03.11.2013 6:47:30 [INFO ] [Initialize()] LDI: "1110\d{12}"
03.11.2013 6:47:30 [INFO ] [Initialize()] CLI: "1001010011111000"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRPL: "111101\d{7}010"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRMI: "111100\d{7}010"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRIE: "111100\d{7}111"
03.11.2013 6:47:30 [INFO ] [Initialize()] ASR: "1001010\d{5}0101"
03.11.2013 6:47:30 [INFO ] [Initialize()] ADC: "000111\d{10}"
03.11.2013 6:47:30 [INFO ] [Initialize()] RET: "1001010100001000"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRID: "111101\d{7}111"
03.11.2013 6:47:30 [INFO ] [Initialize()] BRHC: "111101\d{7}101"
03.11.2013 6:47:30 [INFO ] [Initialize()] BREQ: "111100\d{7}001"
03.11.2013 6:47:30 [INFO ] [Initialize()] CBI: "10011000\d{8}"
03.11.2013 6:47:30 [INFO ] [Initialize()] ST: "1001001\d{5}1101"
03.11.2013 6:47:30 [INFO ] [Initialize()] CBR: "0111\d{12}"
03.11.2013 6:47:30 [INFO ] [Initialize()] CLC: "1001010010001000"
03.11.2013 6:47:30 [INFO ] [Initialize()] CLH: "1001010011011000"
03.11.2013 6:47:30 [INFO ] [Initialize()] CLN: "1001010010101000"
03.11.2013 6:47:30 [INFO ] [Initialize()] CLS: "1001010011001000"
03.11.2013 6:47:30 [INFO ] [Initialize()] CLT: "1001010011101000"
03.11.2013 6:47:30 [INFO ] [Initialize()] CLV: "1001010010111000"
03.11.2013 6:47:30 [INFO ] [Initialize()] CLZ: "1001010010011000"
03.11.2013 6:47:30 [INFO ] [Initialize()] COM: "1001010\d{5}0000"
03.11.2013 6:47:30 [INFO ] [Initialize()] CP: "000101\d{10}"
03.11.2013 6:47:30 [INFO ] [Initialize()] CPC: "000001\d{10}"
03.11.2013 6:47:30 [INFO ] [Initialize()] CPI: "0011\d{12}"
03.11.2013 6:47:30 [INFO ] [Initialize()] CPSE: "000100\d{10}"
03.11.2013 6:47:30 [INFO ] [Initialize()] DEC: "1001010\d{5}0101"
03.11.2013 6:47:30 [INFO ] [Initialize()] DES: "10010100\d{4}1011"
03.11.2013 6:47:30 [INFO ] [Initialize()] EICALL: "1001010100011001"
03.11.2013 6:47:30 [INFO ] [Initialize()] EIJMP: "1001010000011001"
03.11.2013 6:47:30 [INFO ] [Initialize()] ELPM: "1001010111011000"
03.11.2013 6:47:30 [INFO ] [Initialize()] ELPM: "1001010\d{5}1010"
03.11.2013 6:47:30 [INFO ] [Initialize()] ELPM: "1001000\d{5}0110"
03.11.2013 6:47:30 [INFO ] [Initialize()] FMUL: "000000110\d{3}1\d{3}"
03.11.2013 6:47:30 [INFO ] [Initialize()] FMULS: "000000111\d{3}0\d{3}"
03.11.2013 6:47:30 [INFO ] [Initialize()] FMULSU: "000000111\d{3}1\d{3}"
03.11.2013 6:47:30 [INFO ] [Initialize()] ICALL: "1001010100001001"
03.11.2013 6:47:30 [INFO ] [Initialize()] IJMP: "1001010000001001"
03.11.2013 6:47:30 [INFO ] [Initialize()] IN: "10110\d{11}"
03.11.2013 6:47:30 [INFO ] [Initialize()] INC: "1001010\d{4}0011"
03.11.2013 6:47:30 [INFO ] [Initialize()] LAC: "1001001\d{5}0110"
03.11.2013 6:47:30 [INFO ] [Initialize()] LAS: "1001001\d{5}0101"
03.11.2013 6:47:30 [INFO ] [Initialize()] LAT: "1001001\d{5}0111"
03.11.2013 6:47:30 [INFO ] [Initialize()] SEC: "1001010000001000"
03.11.2013 6:47:30 [INFO ] [Initialize()] SEH: "1001010001011000"
03.11.2013 6:47:30 [INFO ] [Initialize()] SEI: "1001010001111000"
03.11.2013 6:47:30 [INFO ] [Initialize()] SEN: "1001010000101000"
03.11.2013 6:47:30 [INFO ] [Initialize()] SER: "11101111\d{4}1111"
03.11.2013 6:47:30 [INFO ] [Initialize()] SES: "1001010001001000"
03.11.2013 6:47:30 [INFO ] [Initialize()] SET: "1001010001101000"
03.11.2013 6:47:30 [INFO ] [Initialize()] SEV: "1001010000111000"
03.11.2013 6:47:30 [INFO ] [Initialize()] SEZ: "1001010000011000"
03.11.2013 6:47:30 [INFO ] [Initialize()] SLEEP: "1001010110001000"
03.11.2013 6:47:30 [INFO ] [Initialize()] Successfully. 87 instructions loaded.
03.11.2013 6:47:30 File not found: D:\!!\╘юЁьшЁютрэшх.obj

Вот изменил кодиовку в Notepad++ на OE866

objdump.exe -S "╘юЁьшЁютрэшх.obj"

Как видишь результат одинаковый!

Т.е., получается, что блокнот пишет все правильно?!

Отредактировано sasha_1973 (2013-11-03 08:53:14)

0

55

Набери в консоли команду chcp и покажи результат. Потом напиши командные файлы с содержимым в кодировках: CP866, CP1251 и unicode и покажи результат для всех трёх случаев.

0

56

http://s6.uploads.ru/t/Ljnfp.jpghttp://s7.uploads.ru/t/Re7hN.jpg

Ладушки, я на работу.

Отредактировано sasha_1973 (2013-11-03 08:59:06)

0

57

Попробуй изменить свой батник вот так:

chcp1251
objdump.exe -S Проект.obj

И сохрани его в кодировке CP1251 и запусти.

0

58

uni написал(а):

Попробуй изменить свой батник вот так:

chcp1251
objdump.exe -S Проект.obj

И сохрани его в кодировке CP1251 и запусти.


Попробовал:

KOI8-R
CP866
CP1251

результат один и тот-же:

log 3 вариантов одинаковый

03.11.2013 6:50:48 objdump version 0.1.5055.10144 (3 ноября 2013 г. 5:38:08)
03.11.2013 6:50:48 options: -S, ╘юЁьшЁютрэшх.obj
03.11.2013 6:50:48 [INFO ] [Initialize()] NOP: "0000000000000000"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRHS: "111100\d{7}101"
03.11.2013 6:50:48 [INFO ] [Initialize()] OUT: "10111\d{11}"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRNE: "111101\d{7}001"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRLT: "111100\d{7}100"
03.11.2013 6:50:48 [INFO ] [Initialize()] BCLR: "100101001\d{3}1000"
03.11.2013 6:50:48 [INFO ] [Initialize()] BLD: "1111100\d{5}0\d{3}"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRSH: "111101\d{7}000"
03.11.2013 6:50:48 [INFO ] [Initialize()] CLR: "001001(\d{5})\1"
03.11.2013 6:50:48 [INFO ] [Initialize()] EOR: "001001\d{10}"
03.11.2013 6:50:48 [INFO ] [Initialize()] AND: "001000\d{10}"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRLO: "111100\d{7}000"
03.11.2013 6:50:48 [INFO ] [Initialize()] ST: "1001001\d{5}1100"
03.11.2013 6:50:48 [INFO ] [Initialize()] RCALL: "1101\d{12}"
03.11.2013 6:50:48 [INFO ] [Initialize()] ANDI: "0111\d{12}"
03.11.2013 6:50:48 [INFO ] [Initialize()] ST: "1001001\d{5}1110"
03.11.2013 6:50:48 [INFO ] [Initialize()] RJMP: "1100\d{12}"
03.11.2013 6:50:48 [INFO ] [Initialize()] BREAK: "1001010110011000"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRBC: "111101\d{10}"
03.11.2013 6:50:48 [INFO ] [Initialize()] ADIW: "10010110\d{8}"
03.11.2013 6:50:48 [INFO ] [Initialize()] TST: "001000(\d{5})\1"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRTC: "111101\d{7}110"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRCC: "111101\d{7}000"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRBS: "111100\d{10}"
03.11.2013 6:50:48 [INFO ] [Initialize()] WDR: "1001010110101000"
03.11.2013 6:50:48 [INFO ] [Initialize()] RETI: "1001010100011000"
03.11.2013 6:50:48 [INFO ] [Initialize()] MOV: "001011\d{10}"
03.11.2013 6:50:48 [INFO ] [Initialize()] BST: "1111101\d{5}0\d{3}"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRTS: "111100\d{7}110"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRCS: "111100\d{7}000"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRVC: "111101\d{7}011"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRGE: "111100\d{7}100"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRVS: "111100\d{7}011"
03.11.2013 6:50:48 [INFO ] [Initialize()] ADD: "000011\d{10}"
03.11.2013 6:50:48 [INFO ] [Initialize()] LDI: "1110\d{12}"
03.11.2013 6:50:48 [INFO ] [Initialize()] CLI: "1001010011111000"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRPL: "111101\d{7}010"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRMI: "111100\d{7}010"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRIE: "111100\d{7}111"
03.11.2013 6:50:48 [INFO ] [Initialize()] ASR: "1001010\d{5}0101"
03.11.2013 6:50:48 [INFO ] [Initialize()] ADC: "000111\d{10}"
03.11.2013 6:50:48 [INFO ] [Initialize()] RET: "1001010100001000"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRID: "111101\d{7}111"
03.11.2013 6:50:48 [INFO ] [Initialize()] BRHC: "111101\d{7}101"
03.11.2013 6:50:48 [INFO ] [Initialize()] BREQ: "111100\d{7}001"
03.11.2013 6:50:49 [INFO ] [Initialize()] CBI: "10011000\d{8}"
03.11.2013 6:50:49 [INFO ] [Initialize()] ST: "1001001\d{5}1101"
03.11.2013 6:50:49 [INFO ] [Initialize()] CBR: "0111\d{12}"
03.11.2013 6:50:49 [INFO ] [Initialize()] CLC: "1001010010001000"
03.11.2013 6:50:49 [INFO ] [Initialize()] CLH: "1001010011011000"
03.11.2013 6:50:49 [INFO ] [Initialize()] CLN: "1001010010101000"
03.11.2013 6:50:49 [INFO ] [Initialize()] CLS: "1001010011001000"
03.11.2013 6:50:49 [INFO ] [Initialize()] CLT: "1001010011101000"
03.11.2013 6:50:49 [INFO ] [Initialize()] CLV: "1001010010111000"
03.11.2013 6:50:49 [INFO ] [Initialize()] CLZ: "1001010010011000"
03.11.2013 6:50:49 [INFO ] [Initialize()] COM: "1001010\d{5}0000"
03.11.2013 6:50:49 [INFO ] [Initialize()] CP: "000101\d{10}"
03.11.2013 6:50:49 [INFO ] [Initialize()] CPC: "000001\d{10}"
03.11.2013 6:50:49 [INFO ] [Initialize()] CPI: "0011\d{12}"
03.11.2013 6:50:49 [INFO ] [Initialize()] CPSE: "000100\d{10}"
03.11.2013 6:50:49 [INFO ] [Initialize()] DEC: "1001010\d{5}0101"
03.11.2013 6:50:49 [INFO ] [Initialize()] DES: "10010100\d{4}1011"
03.11.2013 6:50:49 [INFO ] [Initialize()] EICALL: "1001010100011001"
03.11.2013 6:50:49 [INFO ] [Initialize()] EIJMP: "1001010000011001"
03.11.2013 6:50:49 [INFO ] [Initialize()] ELPM: "1001010111011000"
03.11.2013 6:50:49 [INFO ] [Initialize()] ELPM: "1001010\d{5}1010"
03.11.2013 6:50:49 [INFO ] [Initialize()] ELPM: "1001000\d{5}0110"
03.11.2013 6:50:49 [INFO ] [Initialize()] FMUL: "000000110\d{3}1\d{3}"
03.11.2013 6:50:49 [INFO ] [Initialize()] FMULS: "000000111\d{3}0\d{3}"
03.11.2013 6:50:49 [INFO ] [Initialize()] FMULSU: "000000111\d{3}1\d{3}"
03.11.2013 6:50:49 [INFO ] [Initialize()] ICALL: "1001010100001001"
03.11.2013 6:50:49 [INFO ] [Initialize()] IJMP: "1001010000001001"
03.11.2013 6:50:49 [INFO ] [Initialize()] IN: "10110\d{11}"
03.11.2013 6:50:49 [INFO ] [Initialize()] INC: "1001010\d{4}0011"
03.11.2013 6:50:49 [INFO ] [Initialize()] LAC: "1001001\d{5}0110"
03.11.2013 6:50:49 [INFO ] [Initialize()] LAS: "1001001\d{5}0101"
03.11.2013 6:50:49 [INFO ] [Initialize()] LAT: "1001001\d{5}0111"
03.11.2013 6:50:49 [INFO ] [Initialize()] SEC: "1001010000001000"
03.11.2013 6:50:49 [INFO ] [Initialize()] SEH: "1001010001011000"
03.11.2013 6:50:49 [INFO ] [Initialize()] SEI: "1001010001111000"
03.11.2013 6:50:49 [INFO ] [Initialize()] SEN: "1001010000101000"
03.11.2013 6:50:49 [INFO ] [Initialize()] SER: "11101111\d{4}1111"
03.11.2013 6:50:49 [INFO ] [Initialize()] SES: "1001010001001000"
03.11.2013 6:50:49 [INFO ] [Initialize()] SET: "1001010001101000"
03.11.2013 6:50:49 [INFO ] [Initialize()] SEV: "1001010000111000"
03.11.2013 6:50:49 [INFO ] [Initialize()] SEZ: "1001010000011000"
03.11.2013 6:50:49 [INFO ] [Initialize()] SLEEP: "1001010110001000"
03.11.2013 6:50:49 [INFO ] [Initialize()] Successfully. 87 instructions loaded.
03.11.2013 6:50:49 File not found: D:\!!\╘юЁьшЁютрэшх.obj

0

59

В общем, у тебя что-то не так с региональными настройками и настройкой консоли. Поищи в сети про настройку кодировки консоли в Windows 7.

0

60

1. На форуме баскома никто не ответил думаю потому, что сходу непонятно что-это и зачем. Нужно было вводную какую-то написать.
2. Русский язык в юникоде Фар может максимум только отображать (но не редактировать) и то делает это кривенько, лучше использовать обычный Блокнот в системе или установить какой-нить простой редактор XML.

0


Вы здесь » Программирование ATMEL в BASCOM. » Исходники » objdump для AVR Object File (AOF)