Библиотека knigago >> Компьютеры: Языки и системы программирования >> Assembler >> Основы программирования на Ассемблере для ОС Windows: учебное пособие

Н. И. Черкасова - Основы программирования на Ассемблере для ОС Windows: учебное пособие

Основы программирования на Ассемблере для ОС Windows: учебное пособие
Книга - Основы программирования на Ассемблере для ОС Windows: учебное пособие.  Н. И. Черкасова  - прочитать полностью в библиотеке КнигаГо
Название:
Основы программирования на Ассемблере для ОС Windows: учебное пособие
Н. И. Черкасова

Жанр:

Учебники и самоучители по компьютеру, Windows, Assembler

Изадано в серии:

неизвестно

Издательство:

МГТУ ГА

Год издания:

ISBN:

978-5-903865-22-2

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Основы программирования на Ассемблере для ОС Windows: учебное пособие"

Данные тексты лекций содержат материалы учебно-методического характера, необходимые для освоения знаний и умений по предмету «Основы программирования на Ассемблере для ОС Windows». Содержит материал второй части учебной дисциплины «программирование на машинно-ориентированном языке», в котором рассматриваются вопросы работы с ассемблерами в современных операционных системах. Данное учебное пособие издается в соответствии с рабочей программой учебной дисциплины «Основы программирования на Ассемблере для ОС Windows» по Учебному плану направления 09.03.01 всех форм обучения. Рассмотрено и одобрено на заседании кафедры 25.04.17 г. и методического совета 25.04.17 г .

Читаем онлайн "Основы программирования на Ассемблере для ОС Windows: учебное пособие". [Страница - 3]

четырёхбуквенное
сокращение английского глагола (см. табл. 1).
Таблица 1

Мнемоники команд
Мнемоника

Смысл команды

Производное
английское слова

jmp

Продолжать
jump – прыгнуть
выполнение с нового
адреса в памяти

mov

переместить данные

sub

получить разность двух substract – вычесть
значений

xchg

обменять значения в exchange – обменять
регистрах/
ячейках
памяти

move – переместить

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

7

Рис. 2. Примеры ассемблерных команд МП IA32/64
Машинный код определяется конструкцией микропроцессора и не
изменяется. Мнемоника языка ассемблера разрабатывается изготовителем
микропроцессора, чтобы обеспечить удобство программирования и не зависит
от конструкции микропроцессора.
Каждый микропроцессор имеет свой собственный машинный код и,
следовательно, собственный язык ассемблера (разрабатываемый изготовителем
микропроцессора).
Язык ассемблер для микропроцессоров IA32/64 поддерживают два
синтаксиса Intel и AT&T. Под Intel-синтаксис разработаны следующие
ассемблеры:
MASM (Macro Assembler – Microsoft Corporation), BASM, TASM (Build-in
Assembler, Turbo Assembler – Borland Inc), ASM-86 (Intel Corporation), FASM
(Flat Assembler – Tomasz Grysztar), LZASM (lazzy assebmler – Степан
Половников), WASM (Open Watcom Assembler – фирма Watcom), HLASM, HLA
(High Level Assembler – IBM), NASM (NetWide Assembler – Simon Tatham,
Julian Hall, Peter Anvin), YASM (Yet Another Assembler – Peter Johnson, Michael
Urman), RosAsm (ReactOS Assembler), GoAsm (Jeremy Gordon) и т.д.
Синтаксис AT&T используют AS (UNIX assembler) и GAS (GNU
assembler).
Все
вышеперечисленные
ассемблеры
включают
стандартные
мнемонические команды, в том числе команды арифметических операций для
чисел с плавающей запятой для сопроцессора. Несмотря на имеющиеся
различия между этими ассемблерами, их структуры и форматы команд языков в
значительной мере совместимы. Краткие характеристики ассемблеров
представлены в Приложении 1.

8

1.2.1. Разработка приложения на Ассемблере
Разработка программы на ассемблере обычно включает несколько этапов:
1.
подготовка (изменение) исходного текста программы,
2.
ассемблирование программы (получение объектного кода),
3.
компоновка программы (получение исполняемого файла программы),
4.
запуск программы,
5.
отладка программы.
Эти этапы циклически повторяются, потому что при нахождении ошибок
при ассемблировании, компоновки или отладке приходится вновь возвращаться
к первому этапу и изменять текст программы для устранения ошибок.
Ассемблера требует помещение определенного количества строк в
качестве заголовка программ, то есть нужно записывать несколько
псевдооператоров, которые сообщают языку ассемблера основную
информацию. Ниже приведен абсолютный минимум, необходимый для
программ:
Листинг 1:
1
2
3
4
5
6
7
8
9

.686P
.model flat
.code
star:
;тело программы
ret
.data
;данные программы
end star

В первой строке .686P – это директива описания типа микропроцессора
(может быть еще и .8086, .8087, .186, .286, .287, .386, .387, .486, .586, .mmx с
добавлением или без добавления букв P (привилегированные команды) и C или
N (непривилегированные команды)). Если не указывать тип микропроцессора,
то программа будет сгенерирована в кодах i8086.
Директива описания типа микропроцессора
Представим назначение директив описания типа микропроцессора:
1.
.8086 - Разрешены инструкции базового процессора i8086 (и идентичные
им инструкции процессора i8088). Запрещены инструкции более поздних
процессоров.
2.
.186 .286 .386 .486 .586 .686 - Разрешены инструкции соответствующего
процессора x86 (x=1,…,6). Запрещены инструкции более поздних процессоров.

9

3.
.187 .287 .387 .487 .587 -Разрешены инструкции соответствующего
сопроцессора x87 наряду с инструкциями процессора x86. Запрещены
инструкции более поздних процессоров и сопроцессоров.
4.
.286c .386c .486c .586c .686c Разрешены
непривилегированные
инструкции соответствующего процессора x86 и сопроцессора x87. Запрещены
инструкции более поздних процессоров и сопроцессоров.
5.
.286p .386p .486p .586p .686p Разрешены
ВСЕ
инструкции
соответствующего процессора x86, включая привилегированные команды и
инструкции сопроцессора x87. Запрещены инструкции более поздних
процессоров и сопроцессоров.
6.
.mmx Разрешены инструкции MMX-расширения.
7.
.xmm Разрешены инструкции XMM-расширения.
8.
.K3DРазрешены инструкции AMD 3D.
Подробно описание --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.