
- •Введение
- •1. Архитектура ЭВМ
- •1.1. Структура МПС
- •1.2. Основные понятия в архитектуре МПС
- •1.3. Архитектура фон Неймана
- •1.4. Гарвардская архитектура
- •1.5. Параллельная архитектура
- •1.6. Конвейерная архитектура
- •1.7. Суперскалярная архитектура
- •1.8. Архитектура VLIW
- •1.9. Архитектуры CISC, RISC
- •1.10.2. Язык Ассемблер
- •1.10.4. API функции
- •1.11. Сообщения Windows
- •1.12. Версии ассемблеров
- •1.12.1. Microsoft Macro Assembler (MASM)
- •1.12.2. Flat assembler (FASM)
- •1.12.3. NASM (Netwide Assembler)
- •1.12.4. Turbo Assembler (TASM)
- •1.12.5. GoAsm
- •1.13. Среды разработки
- •1.13.1. RadASM
- •1.13.2. WinAsm Studio
- •1.13.3. Easy Code
- •2. Представление данных в ЭВМ
- •2.1. Системы счисления и преобразования между ними
- •2.2. Форматы представления чисел
- •2.2.1. Форматы представления двоичных чисел
- •2.2.2. Формат с плавающей точкой
- •2.3. Типы адресаций операндов
- •2.4. Интерфейсы
- •2.4.1. Последовательный интерфейс RS-232C
- •2.4.2. Интерфейс параллельного порта
- •2.4.3. Инфракрасный интерфейс
- •2.4.4. Интерфейс Bluetooth
- •2.4.5. Интерфейс USB
- •2.4.6. Интерфейс IEEE 1394 - FireWire
- •2.4.7. Сопроцессоры
- •2.4.8. Система прерываний и исключений
- •2.4.9. Интерфейс JTAG
- •3. Архитектура CISC от Intel
- •3.1. Введение
- •3.2. Микроархитектура Intel
- •3.2.1. Микроархитектура Р6
- •3.2.2. Микроархитектура NetBurst
- •3.2.3. Микроархитектура Pentium 4
- •3.2.4. Микроархитектура Intel Core
- •3.2.5. Микроархитектура Intel Core Duo
- •3.2.6. Микроархитектура Intel Nehalem
- •3.2.7. Микроархитектура Intel Sandy Bridge
- •3.2.8. Архитектура Haswell
- •3.2.9. Микроархитектура Intel Itanium
- •3.2.10. Микроархитектура Intel IA-64
- •3.3. Программная модель IA-32
- •3.3.1. Адресация памяти в IA_32
- •3.3.2. Наборы регистров
- •3.4. Целочисленный процессор
- •3.4.1. Регистры общего назначения (РОН)
- •3.4.2. Регистры флагов EFLAGS
- •3.4.3. Регистр указателя команд
- •3.4.4. Сегментные регистры
- •3.4.5. Управляющие регистры
- •3.4.6. Системные адресные регистры
- •3.4.7. Прямой и обратный порядок следования байтов
- •3.4.8. Виды адресации операндов в памяти
- •3.4.9. Цикл выполнения команды
- •3.4.10. Распределение адресного простраства
- •3.4.11. Образ программы в памяти.
- •3.4.12. Стек
- •3.5. Математический сопроцессор
- •3.6. MMX-технология
- •3.7. XMM технология
- •3.8.2. Классификация команд
- •3.8.3. Целочисленный процессор
- •3.8.4. Сопроцессор с плавающей точкой
- •3.8.5. Целочисленное MMX расширение
- •3.8.6. XMM расширение с плавающей точкой
- •3.9. Цикл трансляции, компоновки и выполнения
- •3.10. Ассемблер CISC
- •3.10.1. Введение
- •3.10.2. Средства программирования и отладки
- •3.11. Описание MASM
- •3.12. Структура программы на ассемблере
- •3.13. Типы данных
- •3.14. Макросредства
- •3.15. Директивы
- •4. Архитектура RISC
- •5. Архитектура VLIW
- •5.1. Архитектура вычислительных систем со сверхдлинными командами
- •5.2. Архитектура IA-64
- •5.3. Itanium
- •6. Многоядерные архитектуры
- •7.1.1. Основные параметры
- •7.1.2. Семейства
- •7.1.3. Описание выводов
- •7.1.4. Обзор архитектуры
- •7.1.5. Структура памяти
- •7.1.6. Режимы адресации
- •7.2. Ассемблер
- •7.2.1. Команды ассемблера
- •7.2.2. Директивы ассемблера
- •7.2.3. Выражения
- •7.3. ИСР AVR Studio
- •8.2. Архитектура F28x
- •8.3. Инструментальные средства разработки ПО
- •8.4. Ассемблер
- •8.5. Команды ассемблера
- •8.5.1. Операции с регистрами XAR0-XAR7
- •8.5.2. Операции загрузки регистра DP
- •8.5.3. Операции с регистром SP
- •8.5.4. Операции с регистрами AX (AH, AL)
- •8.5.5. Операции с регистрами ACC
- •8.5.6. Операции с регистрами P или XT
- •8.5.7. Операции прямого доступа к памяти
- •8.5.8. Операции ввода вывода
- •8.5.9. Операции с памятью программ
- •8.5.10. Операции ветвления, вызова, возврата
- •8.5.11. Математические
- •8.5.12. Ветвления
- •8.5.13. Основные инструкции для работы с регистрами
- •8.5.14. Основные команды для работы с вещественными числами
- •8.6. Листинги программ
- •8.7. Формат объектного файла
- •8.8. Директивы ассемблера
- •8.8.1. Разделы
- •8.8.2. Константы
- •8.8.3. Выравнивания
- •8.8.4. Листинг
- •8.8.5. Файлы
- •8.8.6. Условная трансляция
- •8.8.7. Структуры
- •8.8.8. Символы во время трансляции
- •8.8.9. Разные директивы
- •8.9. Макроязык и макрокоманды
- •8.10. Компоновщик
- •8.11. Архиватор
- •8.12. Абсолютный листер
- •8.13. Листер перекрестных ссылок
- •8.14. Утилита 16-ричного преобразования
- •8.15. Согласование заголовочных C/C++ файлов с ассемблером
- •8.16. ИСР Code Composer Studio (CCS)
- •9.1. Архитектура VelociTI
- •9.2. Структура и состав ЦСП С6x
- •9.3. Средства разработки ЦСП С6x
- •9.4. Ассемблер ЦСП С6x
- •9.5. Команды ассемблера
- •9.5.1. Основные команды для работы с целыми числами
- •9.5.2. Основные команды для работы с вещественными числами
- •9.6. Константы
- •9.7.2. Условные выражения
- •9.7.3. Законные выражения
- •9.8. Листинги
- •9.9. Листинги программ
- •9.9.1. Листинг перекрестных ссылок
- •9.10. Директивы ассемблера
- •9.10.1. Директивы, которые определяют разделы
- •9.10.2. Директивы, которые инициализируют константы (данные и память)
- •9.10.3. Директивы, которые выравнивают счетчик команд раздела (SPC)
- •9.10.4. Директивы, которые форматируют выходной листинг
- •9.10.5. Директивы, которые ссылаются на другие файлы
- •9.10.6. Директивы, которые допускают условную трансляцию
- •9.10.7. Директивы, которые определяют символы во время трансляции
- •9.11. Макроязык и макрокоманды
- •9.12. Компоновщик
- •9.13. Утилиты
- •9.13.1. Архиватор
- •9.13.2. Утилита 16-ричного преобразования
- •10.2. Встроенные платы для ЦСП ‘C6x
оно есть. Имя файла может иметь длину до 15 знаков; архиватор усекает имена файлов, которые длиннее, чем 15 знаков.
Внимание: для библиотеки возможно (но не желательно) содержать несколько членов с тем же самым именем. Если Вы пытаетесь удалять, заменять, или извлекать элемент, чье имя совпадает с именем другого библиотечного элемента, архиватор удаляет, заменяет, или извлекает первый библиотечный элемент с этим именем.
8.12. Абсолютный листер
Абсолютный листер - средство отладки, которое принимает скомпонованные объектные файлы в качестве входа, и создает файлы *.abs. Эти файлы *.abs можно оттранслировать, чтобы получить листинг, который показывает абсолютные адреса объектного кода. Вручную этот процесс требует длительного времени, однако абсолютный листер делает все автоматически.
Рисунок иллюстрирует шаги, требуемые, чтобы произвести абсолютный листинг.
439

Синтаксис вызова абсолютного листера следующий: abs2000 [-опции] входной файл
abs2000 - команда вызова абсолютного листера.
440
Опции - указывают опции, которые Вы хотите использовать. Они не чувствительны к регистру и могут появляться где-нибудь в командной строке. Предшествуйте каждую опцию дефисом (-). Возможны следующие опции:
-e позволяет изменить заданное по умолчанию расширение для файлов:
-ea [.] расширение для ассемблерных файлов (по умолчанию .asm).
-ec [.] расширение для файлов на C (по умолчанию .c).
-eh [.] расширение для файлов заголовка C (по умолчанию .h). Точка в расширении и пробел между опцией и расширением - необязательны.
-q подавляет заголовок и всю информацию процесса работы.
Входной файл - именует скомпонованный объектный файл. Если Вы опускаете расширение имени входного файла, абсолютный листер считает, что входной файл имеет расширение .out. Если Вы не даете имя входного файла, абсолютный листер запрашивает его у Вас.
Абсолютный листер создает выходной файл для каждого входного файла, который был скомпонован. Эти файлы имеют то же имя, что и входные файлы, и расширение .abs. Файлы заголовка, однако, не создают соответствующий .abs файл. Транслируйте эти файлы с опцией ассемблера –a, как показано ниже, чтобы получить абсолютный листинг:
asm6x -a имя.abs
8.13. Листер перекрестных ссылок
Листер перекрестных ссылок - средство отладки. Эта утилита принимает в качестве входа скомпонованные объектные файлы и производит листинг перекрестных ссылок на выходе. Эта распечатка показывает символы, их определения и ссылки на них в скомпонованных объектных файлах.
Рисунок иллюстрирует шаги, требуемые, чтобы произвести распечатку перекрестных ссылок.
441

Чтобы использовать утилиту перекрестной ссылки, файл должен быть собран с правильными параметрами и затем скомпонован в исполняемый файл. Транслируйте файлы ассемблера с -x опцией. Эта опция создает распечатку перекрестной ссылки и прибавляет информацию перекрестной ссылки к объектному файлу. По умолчанию ассемблер делает перекрестные ссылки только для глобальных символов, но если используется -s опция при вызове ассемблера, то также добавляются локальные символы. Скомпонуйте объектные файлы, чтобы получить выполняемый объектный файл.
Листинг перекрестных ссылок
442
Листинг перекрестных ссылок показывает символы и их определения. Чтобы вызвать листер перекрестных ссылок, введите следующее:
xref2000 [опции] [имя входного файла [имя файла вывода]] xref2000 - команда, которая вызывает листер перекрестных ссылок.
Опции идентифицируют параметры листера перекрестных ссылок, которые Вы хотите использовать. Параметры не чувствительны к регистру и могут появляться где-либо в командной строке после команды. Предшествуйте каждую опцию дефисом (-). Эти опции следующие:
-l (нижний регистр L) определяет число строк в странице выходного файла. Формат -l опции: -l число, где число - десятичная константа. Например, -l30 устанавливает число строк в странице выходного файла = 30. Пробел между опцией и константой - необязательный. Значение по умолчанию 60 строк.
-q подавляет заголовок и всю информацию по работе (тихий запуск).
Имя входного файла – скомпонованный объектный файл. Если Вы опускаете входное имя файла, утилита его запрашивает.
Имя файла вывода – имя файла листинга перекрестных ссылок. Если Вы опускаете имя файла вывода, заданное по умолчанию имя файла - имя входного файла с расширением .xrf.
Пример. Листинг перекрестных ссылок ассемблера. Листер для каждого объявленного символа формирует описание ссылок. Листинг содержит:
Symbol – имя символа.
Filename - имя файла, где встречается символ.
RTYP – тип символа
STAT – определен в файле, не объявлен глобальным; EDEF – определен в файле, объявлен глобальным; EREF – не определен в файле, но ссылка глобальная; UNDF – не определен в файле, не объявлен глобальным;
AsmVal – шестнадцатиричное значение символа в ассемблировании.
LnkVal - шестнадцатиричное значение символа после установления ссылки.
DefLn – Номер оператора, где обнаружен символ.
443