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


"15 суток, или Можете жаловаться!" Андрея Кивинова – это искрометный ироничный детектив, который заставит вас смеяться и волноваться в равной мере. Главным героем книги является капитан Фролов, которого ошибочно арестовывают и отправляют под стражу на 15 суток. Однако, находясь за решеткой, он становится свидетелем убийства и решает провести собственное расследование. Автор погружает читателей в мир криминала, коррупции и бюрократических неурядиц. Кивинов мастерски создает ярких и...

Наталья Юрьевна Добровольская , Олег Васильевич Гаркуша - Ассемблер в примерах и задачах

Ассемблер в примерах и задачах
Книга - Ассемблер в примерах и задачах.  Наталья Юрьевна Добровольская , Олег Васильевич Гаркуша  - прочитать полностью в библиотеке КнигаГо
Название:
Ассемблер в примерах и задачах
Наталья Юрьевна Добровольская , Олег Васильевич Гаркуша

Жанр:

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

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

неизвестно

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

Кубанский государственный университет

Год издания:

ISBN:

978-5-8209-2052-3

Отзывы:

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

Рейтинг:

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

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

Краткое содержание книги "Ассемблер в примерах и задачах"

Изложены фундаментальные темы: организация современного компьютера, устройство процессоров семейства IA-32, синтаксис языка ассемблера, макросредства, программирование типовых управляющих структур, сложные структуры данных, оптимизация программ. Приведены многочисленные примеры, иллюстрирующие материал. Адресуется студентам факультета компьютерных технологий и прикладной математики, изучающим основы программирования.

Читаем онлайн "Ассемблер в примерах и задачах". [Страница - 3]

различать большие и маленькие буквы в метках
и именах процедур.
Директивы .data, .data?, .const и .code определяют то,
что называется секциями. В Win32 нет сегментов, но адресное
пространство можно поделить на логические секции. Начало
одной секции отмечает конец предыдущей. Есть две группы
секций: данных и кода.
Секция .data содержит инициализированные данные
программы.
Секция .data? содержит неинициализированные данные
программы. Иногда нужно только предварительно выделить
некоторое количество памяти, не инициализируя её. Эта секция
для
этого
и
предназначается.
Преимущество
неинициализированных данных в том, что они не занимают места
в исполняемом файле. Вы всего лишь сообщаете компилятору,
сколько места вам понадобится, когда программа загрузится в
память.
Секция
.const
содержит
объявления
констант,
используемых программой. Константы не могут быть изменены.
Попытка изменить константу вызывает аварийное завершение
программы.
Задействовать все три секции не обязательно.
Есть только одна секция для кода: .code. В ней содержится
весь код.
Предложения и end устанавливают
границы кода. Обе метки должны быть идентичны. Весь код
должен располагаться между этими предложениями.
2. ЯЗЫК АССЕМБЛЕРА
Программа, написанная символическими мнемокодами,
которые используются в языке ассемблер (ЯА), представляет
собой исходный модуль. Для формирования исходного модуля
применяют любой текстовый редактор. Затем программу подают
на вход специальному транслятору, называемому ассемблером,
который переводит ее на машинный язык, и далее полученную
машинную программу выполняют.
11

Ассемблер в примерах и задачах

При описании синтаксиса ЯА мы будем использовать
формулы Бэкуса – Наура (БНФ) со следующими дополнениями:
− в квадратных скобках будем указывать конструкции,
которые можно опускать; например, запись А[В]С означает либо
текст ABC, либо текст АС;
− в фигурные скобки будем заключать конструкции,
которые могут быть повторены любое число раз, в том числе и ни
разу; например, запись А{ВС} означает любой из следующих
текстов: А, АВС, АВСВС, АВСВСВС и т. д.
2.1. РЕГИСТРЫ ПРОЦЕССОРОВ СЕМЕЙСТВА IA-32
К регистрам общего назначения (РОН) относится группа из 8
регистров, которые можно использовать в программе на языке
ассемблера. Все регистры имеют размер 32 бита и могут быть
разделены на 2 части или более.
Регистры данных (32 разряда)
AH
BH
CH
DH
SI
DI
BP
SP

AL
BL
CL
DL

EAX
EBX
ECX
EDX
ESI
EDI
EBP
ESP

Регистры EAX, EBX, ECX и EDX позволяют обращаться как к
младшим 16 битам (по именам AX, BX, CX и DX), так и к двум
младшим байтам по отдельности (по именам AH/AL, BH/BL, CH/CL
и DH/DL).
Регистры ESI, EDI, ESP и EBP позволяют обращаться к
младшим 16 битам по именам SI, DI, SP и BP соответственно.
Названия регистров происходят от их назначения:
EAX/AX/AH/AL (accumulator register) — аккумулятор;
EBX/BX/BH/BL (base register) — регистр базы;
ECX/CX/CH/CL (counter register) — счётчик;
EDX/DX/DH/DL (data register) — регистр данных;
ESI/SI (source index register) — индекс источника;
12

Регистры процессоров семейства IA-32

EDI/DI (destination index register) — индекс приёмника

(получателя);
ESP/SP (stack pointer register) — регистр указателя стека;
EBP/BP (base pointer register) — регистр указателя базы стека.
Несмотря на существующую специализацию, все регистры
можно использовать в любых машинных операциях. Однако надо
учитывать тот факт, что некоторые команды работают только с
определёнными регистрами. Например, команды умножения и
деления используют регистры EAX и EDX для хранения исходных
данных и результата операции. Команды управления циклом
используют регистр ECX в качестве счётчика цикла.
Ещё один нюанс состоит в использовании регистров в
качестве базы, т.е. хранилища адреса оперативной памяти. В
качестве регистров базы можно использовать любые регистры, но
желательно использовать регистры EBX, ESI, EDI или EBP. В этом
случае размер машинной команды обычно бывает меньше.
К сожалению, количество регистров катастрофически мало,
и зачастую бывает трудно подобрать способ их оптимального
использования.
Любые регистры общего назначения могут использоваться
для сложения и вычитания как 8-, 16-, так и 32-битовых значений.
2.1.1. Сегментные регистры CS, DS, SS и ES
Процессор имеет 6 так называемых сегментных регистров:
CS, DS, SS, ES, FS и GS. Их существование обусловлено спецификой
организации и --">

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


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

Книги схожие с «Ассемблер в примерах и задачах» по жанру, серии, автору или названию:

Изучаем Ассемблер. Александр Борисович Крупник
- Изучаем Ассемблер

Жанр: Assembler

Год издания: 2005

Серия: КомпАс (Школьный клуб Компьютерный ас)

Программирование на C++ в примерах и задачах. Алексей Николаевич Васильев
- Программирование на C++ в примерах и задачах

Жанр: C, C++, C#

Год издания: 2017

Серия: Российский компьютерный бестселлер