Поддерживает ассемблеры

Среды разработки

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. Представляет собой шину, по которой к периферийному устройству подводится питание и осуществляется двунаправленный побитовый обмен данными.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: