Среды разработки
GoAsm
Ассемблер для процессоров семейства х86, созданный Джереми Гордоном для написания программ для ОС WINDOWS, способен создавать 32- и 64- битных версий, а так же программы с поддержкой Unicode.
GoAsm является проприетарным ПО и распространяется в бинарном формате.
Особенности: GoAsm не создает 16-разрядный код и способен работать только в «плоском» режиме (без сегментов), благодаря этому синтаксис очень прост.
В качестве формата данных используется COFF (Portable Executable format), и для создания исполняемых файлов необходимо использовать дополнительный компоновщик (например – GoLink или ALINK) и компилятор ресурсов (GoRC).
GoAsm способен обрабатывать файлы в формате Unicode () UTF-8, UTF-16).
Несмотря на то что используется Intel-синтаксис, синтаксис Go Asm несовместим ни с одним из существующих компиляторов. GoAsm использует процессор сходных по синтаксису с препроцессором языка программирования C. В GoAsm необходимо использовать квадратные скобки для чтения и записи памяти. Для того что бы получить смещение необходимо записать:
|
|
MOV EBX,ADDR wParam
MOV EBX,OFFESET wParam
А для того что бы получить доступ к памяти:
MOV EBX,[wParam]
RadASM
WinASm Studio
Fresh
EasyCode
RadASM – бесплатная среда разработки программного обеспечения для ОС Windows и не только, изначально предназначенная для написания программ на язык ассемблера.
Имеет гибкую систему файлов настроек, благодаря чему может быть использована как среда разработки ПО на высокоуровневых языках, а так же документов, основанных на языка разметки, Создана программистом Kertil Olsen
MASM
FASM
NASM
TASM
GoAsm
Возможности:
· Русифицирован
· Подцветка синтаксиса
· Редактор ресурсов
· Хорошая интеграционная справочная система
· Поддержка команд Make
· Окно ввода и вывода
· Поддержка отладки программ
· Полная настройка ИСР
· Макросы
· Шаблоны
· Поддержка снипитов (сниппет – программный термин обозначающий фрагмент исходного кода или текста пригодного повторого использваония)
· Поддержка текстовых ссылок
· Поддержка плагинов
· Есть примеры использования
· Возможность настройки под другие языки программирования
Представление данных в ЭВМ
Системы исчисления и преобразования между ними
В позиционных СС число А может быть представлено в виде суммы:
А=An*Zn+An-1+…A1*Z1++A0*Z0
Двоичная система позиционная, например, (1100)2=обыкновенный перевод в десятичную
В программах двоичные числа завершаются суффиксом b. В примере это 1100b.
Виды кодирования двоичных чисел.
Прямой код: 0 в старшем разряде соответствует положительным числам, 1 – соответствует отрицательным. Остальные разряды представляют модуль числа. В таком коде удобно осуществлять операции умножения, но неудобно реализовывать сложение.
|
|
Разряды | |||||||||
Биты | |||||||||
Число | + | ||||||||
Биты | |||||||||
Число | - |
Дополнительный код: 0 в старшем разряде соответствует положительным числам, 1-отрицательным.
Доп. Код положительно числа, есть само число. Доп. Код отрицательного числа образуется путем инверсии всех битов положительного числа (включая знаковый) и прибавления 1.
Обратный код: 0 в старшем разряде соответствует положительным числам, 1 – отрицательным. Обратный код положительного числа, есть само число.
Обратный код отрицательного числа образуется путем вычитании символа каждого разряда из числа, на 1 меньшего основания системы счисления. Обратное преобразование производится точно по тому же правилу.
Практически не применяется.
Смещенный код: 1 в старшем разряде соответствует положительным числам, 0 – отрицательным. Представление чисел получается путем прибавления к ним const 2n-1, где n – число двоичных разрядов. Применяется для кодирования вещественных чисел в формате с плавающей точкой.
Форматы представления двоичных чисел
С точки зрения длины представления чисел различают:
· Полубайт (Нибл). Содержит 4 бит. Отображает содержимое половинки байта.
· Байт. Содержит 8 бит. Отображает содержимое одной из 8-разрядных ячеек памяти или одного из 8-разрядных регистров. Это минимальный размер адресуемой в МП ячейки памяти.
· Слово. Содержит 2 байта, 16 бит. Отображает содержимое одной из 16-разрядных ячеек памяти или одного из 16-разрядных регистров.
· Двойное слово. Содержит 2 слова, 4 байта, 32 бит. Отображает содержимое 32-разрядных ячеек памяти или регистров, поэтому характеризует представление числе с удвоенной точностью.
· Учетверенное слово. Содержит 2 двойных слова, 4 слова, 8 байт, 64 бит.
Различают две формы представления чисел:
С фиксированной точкой (ФТ), например, 12.34 – обычное представление вещественного числа.
С плавающей точкой (ПТ), например, 1.234 Е 2.
Это представление числа 12.34 Е- мантисса, 2-Порядок.
Для записи с фиксированной точкой применяют термины:
MSD (Most Significant Bit) – наиболее значащий бит.
LSB (Least Significant Bit) – наименование значащий бит.
В формате с фиксированной точкой в представлении данных чисел в поле числа присутствует логическая позиция точки (бита точки нет, он логически подразумевается), задающая начало или конец значащей части.
Число целое со знаком. Бит знака S размещается в MSB. Значащие биты выравниваются по правому краю формата. Логическая точка справа от LSB. Например, для 8-и разрядного процесса двоичное целое число 1101. Его десятичный эквивалент 8+4+1=13.
Биты | ||||||||
Значения | ||||||||
MSB+S | LSB |
Число целое без знака. Бит знака S=0 по умолчанию. Значащие биты начинаются с MSB. При одинаковом N число битов значащей части в 2 раза больше. Значащие биты выравниваются по правому краю формата. Логическая точка справа от LSB. Например, для 8-и разрядного процессора двоичное число 101. Его десятичный эквивалент 4+1=5.
Биты | ||||||||
Значения | ||||||||
MSB | LSB |
Число дробное. Значащие биты выравниваются по левому краю формата. Логическая точка справа от бита знака S. например, для 8-ми разрадного процессора двоичное дробное число 0.101. его десятичный эквивалент 0.5+0.125=0.625.
Биты | ||||||||
Значения | ||||||||
MSB=S | LSB |
Число дробное число без знака. Значащие биты начинаются с MSB. При одинаковом N число битов значащей части в 2 раза больше. Значащие биты выравниваются по левому краю формата Логическая точка слева от бита знака S. Например, для 8-и разрадного процессора двоичное дробное число 0.0101. его десятичный эквивалент 0.25+0.0625=0.3125.
|
|
Биты | ||||||||
значения | ||||||||
MSB | LSB |
Форматы с плавающей точкой предназначен для компактного отображения вещественных чисел в очень широком диапазаное. Число представляется в алгебраическом формате:
(S)(F)*2p,
Где (S) – знак числа. Для положительного S=0, для отрицательного S=1.
F(Fraction) – мантисса
P(Power) – порядок
Согласно стандарту IEEE 754 слово данных разбивается на три поля:
Однобитовое поле S – для указания знака числа.
Поле F – в нем записывается дробная часть мантиссы.
Поле экспоненты E - содержит смещенный порядок E=P-Biass (смещение выбирается так чтобы смещенный порядок был положительным или равным нулю)
Если целая часть мантиссы равна единице, то число считается нормализованным, а если она равна нулю, то ненормализованным.
Целая часть мантиссы считается равной нулю, только в том случае когда смещенный порядок числа также равен нулю. Во всех остальных случаях целая часть мантиссы равна единице.
В зависимости от формы представления от точности представления форма с плавающей точкой имеет 3 стандарта:
· С одинарной точностью SP (Single Precision floating-point format)
· С двойной точностью DP (Double Precision floating-point format)
· С расширенной одинарной точностью формат SEP (Single Extended Precision floating-point format). Применяется для данных которые не могут быть представлены в формах SP DP
Интерфейсы
Интерфейс определяет правило взаимодействия компонент и модулей системы. Типы интерфейсов.
Последовательный. Биты данных передаются последовательно во времени по одному каналу.
Параллельный. Данные передаются группами битов, для каждого бита свой канал.
Bluetooth. Данные передаются последовательно использованием радиоканала.
|
|
USB. Представляет собой шину, по которой к периферийному устройству подводится питание и осуществляется двунаправленный побитовый обмен данными.