File-Portal

Программа Avrdude Скачать Бесплатно

Рейтинг: 4.8/5.0 (210 проголосовавших)

Категория: Программы

Описание

ПРОГРАММАТОР AVR - AVRDUDE - USB-программатор USBasp

ПРОГРАММАТОР AVR. AVRDUDE. USB-программатор USBasp

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

Наиболее распространенным способом программирования для AVR является внутрисхемное программирование (функция ISP - in-cirсuit serial programming) через коммуникационный интерфейс SPI. Этой возможностью обладают все микроконтроллеры AVR, кроме Tiny11 и Tiny28. Данный режим удобен тем, что позволяет программировать AVR, расположенный в готовом устройстве, то есть вам не нужно вытаскивать микроконтроллер из платы каждый раз, когда вы хотите его перепрограммировать.

Интерфейс SPI (Serial Peripheral Interface) представляет собой 3 линии: SCK, MISO и MOSI.

SCK (SPI ClocK)
Тактовый сигнал, который программатор формирует на линии SCK.

MOSI (Master Out, Slave In - вход ведомого, выход ведущего)
Линия передачи данных от программатора (ведущий), к программируемому микроконтроллеру (ведомый). Во время каждого импульса на линии SCK передается один бит от программатора к программируемому микроконтроллеру по линии MOSI.

MISO (Master In, Slave Out - выход ведомого, вход ведущего)
Линия передачи данных от программируемого микроконтроллера (ведомый) к программатору (ведущий). По каждому импульсу на линии SCK передается один бит от микроконтроллера к программатору по линии MISO.

Для обеспечения нормальной связи по трем SPI линиям необходимо соединить общую землю (GND ) на программаторе и программируемом устройстве.

Для входа и нахождения в режиме последовательного программирования используется линия сброса (RESET ). Она должна удерживаться в активном состоянии (низкий уровень) во время программирования AVR. Также при стирании чипа на линии RESET должен быть сформирован импульс в конце цикла стирания.

Кроме того, может использоваться вывод контроллера XTAL1 для тактировки контроллера программатором.

При программировании AVR программатор всегда функционирует как ведущее устройство, а микроконтроллер как ведомое.

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

AVRDUDE
В состав пакета WinAVR входит мощная утилита AVRDUDE. Она позволяет загружать программы и данные в память микроконтроллера, а также считывать их оттуда. AVRDUDE использует SPI-интерфейс. Существуют версии для Windows и Linux. Первоначальный код был написан Брайеном Дином (Brian S. Dean) и имел название avrprog.

AVRDUDE может использоваться через командную строку, чтобы читать или записать все типы памяти кристалла, или при помощи графического интерфейса. Использование AVRDUDE из командной строки удобно для полного программирования всей памяти кристалла, в то время как графический интерфейс полезен для исследования содержания памяти, изменения отдельных байтов EEPROM, fuse и lock битов и т.д.

AVRDUDE поддерживает множество типов программирующих устройств, работающих через USB-интерфейс, параллельный порт (LPT) и последовательный порт (COM).

Для работы с AVRDUDE через графический интерфейс можно воспользоваться программой USBASP AVRDUDE PROG. предназначеной для работы с программатором USBASP, о котором пойдет речь дальше.

USBASP — USB-программатор для AVR
Программатор USBasp — наиболее распространенный бюджетный программатор, работающий с USB-портом. Его цена, как правило, не превосходит 300 рублей (2017 г.).

Обычно программатор USBasp комплектуется кабелем с двумя разъемами на концах. Расположение выводов на ISP-разъеме программатора и на кабеле можно увидеть на следующем рисунке. (NC означает "not connected" – не подключен.)

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

Чтобы установить драйвер USBasp необходимо запустить файл InstallDriver.exe из распакованного архива. В Windows XP можно просто указать мастеру установки нового оборудования папку с распакованными файлами драйвера.

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

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

Простейший программатор AVR


Схема простого программатора AVR
Разъем, подключаемый к параллельному порту ПК, показан со стороны пинов

Если у вас есть компьютер с параллельным портом и операционной системой Windows XP и ниже, можно использовать самый простой программатор, который состоит из 25-контактного разъема для параллельного (LPT) порта, 4-х резисторов (150 Ом) и соединительного кабеля, длина которого не должна превышать 1,5 метра. Резисторы необходимы для предохранения параллельного порта в случае неправильного монтажа и некоторых других неприятностей.

Схема получила свое название от отладочных плат Atmel для быстрого начала работы с микроконтроллерами AVR. Если вы хотите, чтобы ваш программатор почти в точности соответствовал программатору STK200, то следует поставить перемычку для определения программатора программным обеспечением (для AVRDUDE не обязательно). Перемычка должна соединять выводы 2-12.

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

При использовании этого программатора в make-файле необходимо указать:

Настройка AVRDUDE при работе с параллельным портом

В Windows 2000 и Windows XP запрещена прямая работа с параллельным (LPT) портом, поэтому для нормальной работы AVRDUDE необходимо установить драйвер giveio.sys. Для установки этого драйвера зайдите в папку WinAVR\bin и запустите файл install_giveio.bat (удалить драйвер из системы можно, запустив файл remove_giveio.bat ).
В Windows 98 никаких специальных настроек не требуется.

Для работы с простейшим LPT-программатором подойдет также свободная GNU-утилита PonyProg. преназначенная для программирования Flash-микросхем с последовательным доступом. PonyProg существует в Windows и Linux версиях. Имеет поддержку русского языка. Может использовать стандартный последовательный порт (COM) или параллельный (LPT) порт.

программа avrdude скачать:

  • скачать
  • скачать
  • Другие статьи

    Программа avrdude скачать бесплатно

    Программа AVRDUDE_PROG - предназначена для программирования контроллеров AVR под все версии Windows через USB. Позволяет программировать через распространённые программаторы. имеет хороший функционал и интуитивно понятный интерфейс.


    AT90CAN128, AT90PWM2, AT90PWM3, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega168, ATmega168P, ATmega169, ATmega32, ATmega324, ATmega329, ATmega3290, ATmega48, ATmega48P, ATmega64, ATmega640, ATmega644, ATmega649, ATmega6490, ATmega8, ATmega8515, ATmega8535, ATmega88, ATmega88P, ATtiny12, ATtiny13, ATtiny15, ATtiny2313, ATtiny25, ATtiny26, ATtiny45, ATtiny85.

    Разархивируйте файл usbprog.rar в любую удобную папку. Поместите ярлык программы «AVRDUDE_PROG» на рабочий стол. Установка завершена.

    Просмотров. 5074 | Загрузок. 68 | Рейтинг. 5.0 / 1

    Всего комментариев. 0

    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]

    Программа avrdude скачать бесплатно

    AVRDUDE_PROG

    Программа AVRDUDE_PROG - GUI avrdude, является обновлённой версией USBASP_AVRDUDE_PROG. Предназначена для программирования МК AVR. Совместима с Windows2000, Windows ХР, Windows Vista, Windows7(Seven). Добавлены распространённые программаторы и дополнительный функционал. Интуитивно понятный интерфейс. Возможность выбора инверсных (PonyProg) и прямых (UniProf) Fuses битов, самостоятельное добавление контроллеров и программаторов поддерживаемых AVRDUDE.

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

    Тип разработки: собственная инициатива.

    Техническое задание: самостоятельно + интернет.

    Реализовано: Borlad Delphi 7.


    По умолчанию поддерживаемые МК (список МК постоянно расширяется, см. форум ):

    AT90CAN128, AT90CAN32, AT90CAN64, ATmega128, ATmega1280, ATmega1281, ATmega1284p, ATmega128RFA1, ATmega16, ATmega162, ATmega164p, ATmega168, ATmega169, ATmega2560, ATmega2561, ATmega32, ATmega324p, ATmega325, ATmega3250, ATmega328p, ATmega329, ATmega3290, ATmega329p, ATmega3290p, ATmega32U4, ATmega48, ATmega8, ATmega8515, ATmega8535, ATmega88, ATtiny13, ATtiny2313, ATtiny261.


    По умолчанию поддерживаемые программаторы (список программаторов можно самостоятельно расширить, либо скачать с форума ):

    USBasp, USBtiny, AVR ISP mkII,SI-Prog, AVR910, AVR910, STK200, STK500, STK500 2.X, JTAG ICE mkII, JTAG ICE mkII ISP, JTAG ICE mkII PDI.

    Основные отличия от аналогичных программ :

    1. Возможность самостоятельного добавления программаторов, настройки скорости программирования и т.п;

    2. Возможность самостоятельного добавления МК;

    3. Редактирования и настройка отображения Fuses битов;
    4. Выбор инверсных или прямых Fuses битов;
    5. Окна вывода значений Fuses битов в HEX формате;
    6. Сохранение настроек программирования при закрытии программы, т.е. при последующем открытии все настройки восстановятся;
    7. "дублирование кнопки" - данная функция выводит на экран кнопку "Программировать", которая является полным функциональным аналогом кнопки "Программировать всё" и всегда будет находиться по верх всех окон. Кнопку можно переместить в удобную для вас зону монитора, свернув AVRDUDE_PROG. Удобна при многочисленном перепрограммировании МК.

    Разархивируйте файл usbprog.rar в любую удобную папку. Поместите ярлык программы «AVRDUDE_PROG» на рабочий стол. Установка завершена. Можно работать.

    Настройки оболочки "AVRDUDE_PROG" реализованы в "ini" файлах. Что такое "ini" файлы можно посмотреть тут .
    Теперь возможно самостоятельно добавлять и редактировать список микроконтроллеров, программаторов, портов, Fuses бит, добавить различные языки и пр.
    Список контроллеров и состояний Fuses бит, редактируется в файле "atmel.ini", список программаторов и портов в файле "programm.ini", список поддерживаемых языков в файле "language.ini".

    В файле "atmel.ini", все значения введены по умолчанию в соответствии с datasheet на МК, можете изменить по Вашему усмотрению. Никаких инверсий не требуется, значение по умолчанию вводиться в соответствии с datasheet на МК. В том случае, если МК нет в списке, или при выборе МК во вкладке Fuses везде "error", то Вам необходимо самостоятельно ввести значения в файл "atmel.ini" в соответствии с datasheet и приведённым ниже примером. Либо посмотреть на форуме. Файл "atmel.ini" находится в корневой папке программы.

    В файле "programm.ini", введены значения программаторов для командной строки avrdude. В том случае, если используемый Вами программатор отсутствует в списке, либо необходимо изменить какие-либо параметры установленные по умолчанию, то необходимо ввести/редактировать его значения самостоятельно в соответствии с приведённым ниже примером. Либо посмотреть на форуме. Файл "programm.ini" находится в корневой папке программы.

    В файле "language.ini", возможно отредактировать на "свой вкус" текстовую информацию оболочки, либо добавить язык программы AVRDUDE_PROG. Тут расписывать ничего не буду, думаю в файле "language.ini" всё понятно.

    Добавление/редактирование списка МК. Работа с файлом "atmel.ini".

    Окройте в любом текстовом редакторе (рекомендую Notepad++ ) файл "atmel.ini". Посмотрите как реализован ввод параметров МК, фузе битов и пр. Ниже привожу пример и описание парметров.

    Заголовок раздела
    [AT90CAN128] - имя МК которое появиться в выпадающем списке, "[" и "]" обязательны. В данном случае "AT90CAN128".

    Параметр для типа МК
    mcuavrdude=c128 // тип мк в avrdude


    Значение и описание параметров раздела для Fuse битов
    Lock байт

    lockbytebit*enabled=0 // "*" - номер бита в Lock байте, "**enabled=0" - невозможно изменение состояния бита, "**enabled=1" - возможно изменение состояния бита. В данном случае изменение бита невозможно. Изменение бита будет недоступно.
    lockbytebit*name=NOT USED // "*" - номер бита в Lock байте, "**name = NOT USED" - бит не используется. Если бит используется, вводиться его имя в соответствии с datasheet.
    lockbytebit*def=1 // "*" - номер бита в Lock байте, "**def=" - если имя бит бита = "NOT USED", то значение вводится в соответствии с datasheet. В данном случае "1".

    High байт
    highbytebit*enabled=1 // "*" - номер бита в High байте, "**enabled=0" - невозможно изменение состояния бита, "**enabled=1" - возможно изменение состояния бита. В данном случае изменение бита возможно. Изменение бита будет доступно.
    highbytebit*name=OCDEN // "*" - номер бита в High байте, "**name = OCDEN" - имя бита в соответствии с datasheet.
    highbytebit*def=1 // "*" - номер бита в High байте, "**def=1" - значение бита по умолчанию, вводиться в соответствии с datasheet. В данном случае значение по умолчанию "1".

    Low байт
    lowbytebit*enabled=1 // "*" - номер бита в Low байте, "**enabled=0" - невозможно изменение состояния бита, "**enabled=1" - возможно изменение состояния бита. В данном случае изменение бита возможно. Изменение бита будет доступно.
    lowbytebit*name=CKDIV8 // "*" - номер бита в Low байте, "**name = CKDIV8" - имя бита в соответствии с datasheet.
    lowbytebit*def=0 //"*" - номер бита в Low байте, "**def=0" - значение бита по умолчанию, вводиться в соответствии с datasheet. В данном случае значение по умолчанию "0".

    Extended/Fuse/Fuse байт
    extendedbytebit*enabled=0 // "*" - номер бита в Extended/Fuse/Fuse байте, "enabled=0" - невозможно изменение состояния бита, "enabled=1" - возможно изменение состояния бита. В данном случае изменение бита невозможно. Изменение бита будет недоступно.
    extendedbytebit*name=NOT USED //"*" - номер бита в Extended/Fuse/Fuse байте, "name = NOT USED" - бит не используется. Если бит используется, вводиться его имя в соответствии с datasheet.
    extendedbytebit*def=1 // "*" - номер бита в Lock байте, "**def=" - если имя бит бита = "NOT USED", то значение вводится в соответствии с datasheet. В данном случае "1".

    Добавление/редактирование списка программаторов. Работа с файлом "programm.ini".

    Окройте в любом текстовом редакторе (рекомендую Notepad++ ) файл "programm.ini". Посмотрите как реализован ввод параметров программаторов. Ниже привожу пример и описание парметров.

    [Name programmator] – имя программатора а выпадающем списке
    progisp – программатор для командной строки avrdude
    portprog – порт программатора для командной строки avrdude (Usb, com, lpt и пр.)
    portenabled – окно изменение порта «1»-доступно, «0» - недоступно

    Программатор AVR STK200 с поддержкой LPT.

    Для добавления программатора AVR STK200 с поддержкой LPT в файл «programm.ini» можно добавить следующее:

    Сохраните файл «programm.ini»

    В выпадающем списке "Настройки" -> "Программатор" появиться программатор « STK200LPT » с работой от lpt1 порта.
    Всё работает аналогично для других параметров и программаторов, поддерживаемых avrdude.

    Основные отличия от предыдущей версии:
    - добавлено куча контроллеров, исправлены ошибки файлов "atmel.ini","avrdude.conf" - огромное спасибо модератору форума dmibr за проделанную работу!
    - исправлены мелкие ошибки.
    Если у Вас установлена программа версии 3.1 и выше, то достаточно заменить файл - "AVRDUDEPROG.exe","avrdude.exe","avrdude.conf","atmel.ini". В этом случае все ранее сохранённые настройки в файлах "ini" не изменяться.

    Размер файла: 690КБ
    Статус программы: бесплатная
    ОС: Windows NT/2000/XP/VISTA/WINDOWS 7
    Интерфейс: русский, english
    Разработчик: yourdevice
    Версия: 3.3 (24.02.2014)

    Основные отличия от предыдущей версии:
    - исправлено зависание программы в некоторых случая;
    - исправлена ширина выпадающего списка программаторов;
    - в диалоговом окне программы состояние avrdude выводиться в режиме онлайн, а не в конце программирования;
    - исправлены мелкие ошибки.
    Если у Вас установлена программа версии 3.1, то достаточно заменить только «exe» файл. В этом случае все ранее сохранённые настройки в файлах "ini" не изменяться.

    Размер файла: 558КБ
    Статус программы: бесплатная
    ОС: Windows NT/2000/XP/VISTA/WINDOWS 7
    Интерфейс: русский, english
    Разработчик: yourdevice
    Версия: 3.2 (03.08.2013)

    Размер файла: 558КБ
    Статус программы: бесплатная
    ОС: Windows NT/2000/XP/VISTA/WINDOWS 7
    Интерфейс: русский, english
    Разработчик: yourdevice
    Версия: 3.1 (18.10.2012)

    Размер файла: 558КБ
    Статус программы: бесплатная
    ОС: Windows NT/2000/XP/VISTA/WINDOWS 7
    Интерфейс: русский
    Разработчик: yourdevice
    Версия: 3.0

    USBasp Программатор для AVR микроконтроллеров - Записки электронщика

    USBasp Программатор для AVR микроконтроллеров

    Программатор за копейки которым можно прошить целую кучу камней, настолько популярен среди любителей МК что и говорить не стоит но все же. Купить его не составит труда, на Aliexpress предложений великое множество. В основном постоянно для прошивки им пользуются начинающие, продвинутые предпочитают использовать загрузчики.

    • Напряжение питание можно переключать 3.3V /5V
    • USB интерфейс подключения к ПК
    • Индикация питание и программирование
    • ISP интерфейс (внутрисхемное программирование)
    • Работа в различных ОС (Linux,Windows,Mac)

    Список поддерживаемых контроллеров:

    • ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny28, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85, ATtiny861
    • AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, T90S4433, AT90S4434, AT90S8515, AT90S8535
    • ATmega8, ATmega48, ATmega88, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega165, ATmega168,ATmega169, ATmega32, ATmega323,ATmega324, ATmega325, ATmega3250, ATmega329, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega128, ATmega1280, ATmega1281, ATmega2560, ATmega2561, ATmega103, ATmega406, ATmega8515, ATmega8535
    • AT90CAN32, AT90CAN64, AT90CAN128
      AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B
      AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647

    Разъем для соединения:

    Для начала необходимо установить драйвер, приводить примеры как это сделать на всех поддерживаемых ОС не буду, приведу только с Windows 7 x64.

    1. Качаем архив с драйвером: скачать
    2. Распаковываем папку из архива куда нибудь
    3. Вставляем программатор в USB порт

    Система естественно не найдет нужный драйвер

    Переходим в диспетчер устройств, находим USBasp далее правый клик выбираем «Обновить драйверы…»

    В новом окне выбираем «Выполнить поиск драйверов на этом компьютере»

    Нажимаем «Обзор» указываем путь к папке с драйвером, жмем далее

    Просмотр темы - Новую версию программы AVRDUDESHELL

    Easyelectronics.ru


    Зарегистрирован: 16 сен 2011, 20:11
    Сообщения: 229
    Откуда: Брест

    Разработал новую версию программы AVRDUDESELL - программы для программирования микроконтроллеров семейства AVR (про "старую" можно почитать ветку http://forum.easyelectronics.ru/viewtopic.php?f=16&t=8498.

    Новое в программе:
      Качественно новая версия программы.
      Переезд на новую площадку.
      Новый дизайн.
      Возможность сохранять и восстанавливать настройки фьюзов.
      Теперь все формы можно растягивать.
      Автоматическое открытие файлов проекта.
      Строка адресов для дампов FLASH и EEPROM.
      Строка адресов может расчитыватся автоматически.
      Возможность связи *.hex, *.eep, *.fus файлов с приложением.
      Загрузка файлов *.hex, *.eep, *.fus из командной строки.
      Альфа 0.98 версия дизассемблера.
      Устранена ошибка прописных и строчных символов при задании порта подключения программатора.
      Устранена ошибка сохранения первого байта в файлы *.hex, *.eep.
      Устранена ошибка размера дампа при автоматическом обновлении файлов проекта.

    Подробнее на http://matrex-notes.blogspot.com/2015/01/avrdudeshell_21.html
    Прямая ссылка для скачивания https://drive.google.com/file/d/0B-w91VnLIamzbFo1Zl92d25UNWM/view?usp=sharing

    Разумная критика приветствуется.


    Зарегистрирован: 02 дек 2010, 13:52
    Сообщения: 4029
    Откуда: п. Борок, Ярославская область

    По дизасму хотелось бы в таком виде:
    первая колонка - адрес от начала
    вторая колонка - код команды в HEX
    третья колонка - метка (если для данного адреса она есть)
    четвертая колонка - мнемоника

    Метки определять какими нибудь универсальными именами, например М1, М2, М3. М435 и так далее. Ну а дешифровку команд - по AVR Instruction Set - есть на сайте атмел и гуглом выдается на раз-два.

    Вот дизассемблировать сам код - это простая задача. Гораздо сложнее определить тип данных, с которыми эта программа работает. Т.к. во флеши что строка текста, что массив байт/слов/двойных слов и т.д. выглядит одинаково. А обращение к этим данным идет чаще всего с косвенной адресацией и понять по какому адресу что лежит можно порой только в процессе трассировки программы. Как-то так.

    По этому сделать так чтобы раз - и копипаста в студию: это очень сложная задача. Надо помимо дизассемблера писать автоматический трассировщик, чтобы можно было понять: в каких местах лежит программа, а в каких - данные. К тому же если код запутанный да еще и сподменой адресов возврата из подпрограмм в стеке - то тут уже никакой трассировщик не спасет: только полноценная эмуляция МК. Как работает трассировка - можно заценить в IDA (interactive disassembler).


    _________________
    Ёж птица гордая, пока не пнешь - не полетит.

    первая колонка - адрес от начала
    вторая колонка - код команды в HEX
    третья колонка - метка (если для данного адреса она есть)
    четвертая колонка - мнемоника


    Походу надо тогда делать 4 кнопки под каждый из видов - какие натыкал - так и будет выводить.

    Ну а дешифровку команд - по AVR Instruction Set


    Можно и так. Если прикрутить ссылки на конкретную страницу по операции - будет супер.

    Гораздо сложнее определить тип данных, с которыми эта программа работает.


    Это да, я понимаю. Я думал над этим вопросом. Идея состоит в том, что бы собирать информацию по адресам переходов с операций типа типа jmp, call и, соответственно, с этих адресов будет идти точно код - значит будем дизассемблировать, если ссылка в память и загрузка в регистр - значит данные - просто байтовый поток. Это, конечно, не идиальный вариант, но уже кое что - с этого можно начать. Разумеется это будет отключаемая опция.

    Как работает трассировка - можно заценить в IDA (interactive disassembler).


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

    и копипаста в студию


    На самом деле не все так страшно, на мой взгляд, как кажется. Самый простой вариант - записать word(byte)-поток с определенного адреса. Чуть посложнее - по адресам записать дизассемблированные мемоники. И самый сложный - полное дизассемблирование. Из этих соображений и все вышеперечисленные вопросы.