Справочник по ассемблеру - IT Справочник
Llscompany.ru

IT Справочник
7 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Справочник по ассемблеру

Справочник по ассемблеру

В литературе при описании команд микропроцессоров часто встречаются досадные ошибки. Стараясь избежать таких ошибок, автор выверял описание команд по нескольким источникам [3,5,6,8,9,10]. Часть команд была проверена программным путем.

Список регистров микропроцессора Pentium

Регистры общего назначения

Регистры EAX, EBX, EDX, ECX называют рабочими регистрами. Регистры EDI, ESI — индексные регистры, играют особую роль в строковых операциях. Регистр EBP обычно используется для адресации в стеке параметров и локальных переменных. Регистр ESP — указатель стека, автоматически модифицируется командами PUSH, POP, RET, CALL. Явно используется реже.

Регистр флагов. Содержит 32 бита. Вот используемые значения битов.

  • 0-й бит, флаг переноса (CF), устанавливается в 1 если был перенос из старшего бита;
  • 1-й бит, 1;
  • 2-й бит, флаг четности (PF). Устанавливается в 1, если младший байт результата содержит четное число единиц.
  • 3-й бит, 0;
  • 4-й бит, флаг вспомогательного переноса (AF). Устанавливается в 1, если произошел перенос из третьего бита в четвертый.
  • 5-й бит, 0;
  • 6-й бит, флаг нуля (ZF). Устанавливается в единицу, если результат операции ноль;
  • 7-й бит, флаг знака (SF). Равен старшему биту результата;
  • 8-й бит, флаг ловушки (TF). Установка в единицу этого флага приводит к тому, что после каждой команды вызывается INT 3. Используется отладчиками в реальном режиме;
  • 9-й бит, флаг прерываний (IF). Сброс этого флага в 0 приводит к тому, что микропроцессор перестает воспринимать прерывания;
  • 10-й бит, флаг направления (DF). Данный флаг учитывается в строковых операциях. Если флаг равен 1, то в строковых операциях адрес автоматически уменьшается;
  • 11-й бит, флаг переполнения (OF). Устанавливается в единицу, если результат операции над числом со знаком вышел за допустимые пределы;
  • 12,13-й биты, уровень привилегий ввода-вывода (IOPL);
  • 14-бит, флаг вложенной задачи (NT);
  • 15-й бит, 0;
  • 16-й бит, флаг возобновления (RF). Используется совместно с регистрами точек отладочного останова;
  • 17-й бит, в защищенном режиме включает режим виртуального режима 8086 (VM);
  • 18-й бит, флаг контроля выравнивания (AC). При равенстве этого флага 1 и при обращении к невыровненному операнду вызывает исключение 17;
  • 19-й бит, виртуальная версия флага IF (VIF). Работает в защищенном режиме;
  • 20-й бит, виртуальный запрос прерывания (VIP);
  • 21-й бит, флаг доступности команды идентификации;
  • 22-31-й, 0;

CS — сегмент кода,
DS — сегмент данных,
SS — сегмент стека,
ES,GS,FS — дополнительные регистры. Сегментные регистры 16-битны.

Регистр CR0.

  • 0-й бит, разрешение защиты (РЕ). Переводит процессор в защищенный режим.
  • 1-й бит, мониторинг сопроцессора (МР). Вызывает исключение 7 по каждой команде WAIT.
  • 2-й бит, эмуляция сопроцессора (ЕМ). Вызывает исключение 7 по каждой команде сопроцессора.
  • 3-й бит, бит переключения задач (TS). Позволяет определить, относится данный контекст сопроцессора к текущей задаче или нет. Вызывает исключение 7 при выполнении следующей команды сопроцессора.
  • 4-й бит, индикатор поддержки инструкций сопроцессора (ЕТ).
  • 5-й бит, разрешение стандартного механизма сообщений об ошибке сопроцессора (NE).
  • 5-15-й бит, не используются.
  • 16-й бит, разрешение защиты от записи на уровне привилегий супервизора (WP).
  • 17-й бит, не используется.
  • 18-й бит, разрешение контроля выравнивания (AM).
  • 19-28-й бит, не используются.
  • 29-й бит, запрет сквозной записи кэша и циклов аннулирования (NW).
  • 30-й бит, запрет заполнения кэша (CD).
  • 31-й бит, включение механизма страничной переадресации.

Регистр CR1 пока не используется.

Регистр CR2 хранит 32-битный линейный адрес, по которому был получен последний отказ страницы памяти.

Регистр CR3 — в старших 20 битах хранится физический базовый адрес таблицы каталога страниц.

Остальные биты.

  • 3-й бит, кэширование страниц со сквозной записью (PWT).
  • 4-й бит, запрет кэширование страницы (PCD).

Регистр CR4

  • 0-й бит, разрешение использования виртуального флага прерываний в режиме V8086 (VME).
  • 1-й бит, разрешение использования виртуального флага прерываний в защищенном режиме (PVI).
  • 2-й бит, превращение инструкции RDTSC в привилегированную (TSD).
  • 3-й бит, разрешение точек останова по обращению к портам ввода-вывода (DE).
  • 4-й бит, включает режим адресации с 4-мегабайтными страницами (PSE).
  • 5-й бит, включает 36-битное физическое адресное пространство (РАЕ).
  • 6-й бит, разрешение исключения МС (МСЕ).
  • 7-й бит, разрешение глобальной страницы (PGE).
  • 8-й бит, разрешает выполнение команды RDPMC (РМС).
  • 9-й бит, разрешает команды быстрого сохранения/восстановления состояния сопроцессора (FSR).

Системные адресные регистры

GDTR — 6-байтный регистр, в котором содержится линейный адрес глобальной дескрипторной таблицы.
IDTR — 6-байтный регистр, содержащий 32-битный линейный адрес таблицы дескрипторов обработчиков прерываний.
LDTR — 10-байтный регистр, содержащий 16-битный селектор (индекс) для GDT и 8-байтный дескриптор.
TR — 10-байтный регистр, содержащий 16-битный селектор для GDT и весь 8-байтный дескриптор из GDT, описывающий TSS текущей задачи.

Регистры отладки
DR0. DR3 — хранят 32-битные линейные адреса точек останова.
DR6 (равносильно DR4) — отражает состояние контрольных точек.
DR7 (равносильно DR5) — управляет установкой контрольных точек.

Assembler

Русский

Assembler. Практикум. 2-е ed. В. Юров

Каждая из двенадцати глав практикума посвящена определенной прикладной теме. Исчерпывающе .

    Программирование на языке ассемблера NASM для ОС Unix. А. Столяров

    Пособие основано на лекциях, читавшихся автором в рамках курса «Архитектура .

    Программирование на ассемблере на платформе x86-64. Р. Аблязов

    Издание предназначено для системных и низкоуровневых программистов, а также для .

    Ассемблер и программирование для IBM PC. Питер Абель

    Книга наиболее широко и полно охватывает все наиболее важные вопросы, .

    Ассемблер. Самоучитель. Александр Крупник

    Книга знакомит читателя с ассемблером — универсальным языком «низкого уровня», .

    Ассемблер — это просто. Учимся программировать . О. А. Калашников

    Подробно и доходчиво объясняются все основные вопросы программирования на ассемблере. .

    Assembler. Учебный курс. Пирогов

    Язык ассемблера фактически представляет собой машинный язык (язык процессора), где .

    Программирование на языке ассемблера для IBM PC. Д.Бредли

    Цель этой книги — научить писать программы на языке ассемблера .

    Ассемблер на примерах. Базовый курс. Рудольф Марек

    Эта книга представляет собой великолепное практическое руководство по основам программирования .

    Ассемблер для чайников. Поляков А.В.

    Данная книга предназначена для тех, кто уже имеет навыки программирования .

    Assembler. Учебник для вузов. 2-е изд. В. И. Юров

    В учебнике рассматриваются вопросы программирования на языке ассемблера для компьютеров .

    Программирование на Ассемблере для PIC. Носов

    Этот самоучитель был написан в 2007-2008 годах.
    Самоучитель прошел .

    English

    Introduction to 64 Bit Windows Assembly Programming. Seyfarth,Ray

    This book introduces programmers to 64 bit Intel assembly language .

    Dick Grune — Modern Compiler Design

    Twelve years have passed since the first edition of Modern .

    AMD x86-64 Architecture Programmer’s Manual Volume 2: System Programming

    This book is part of a multivolume work entitled the .

    Assembly Language for x86 Processors. Kip R. Irvine

    Assembly Language for x86 Processors, Seventh Edition, teaches assembly language .

    Professional Assembly Language. Blum

    Assembly language is one of the most misunderstood programming languages .

    В.И. Юров: Справочник по языку Ассемблера IBM PC

    Книга представляет собой справочную систему по языку Ассемблер.

    Ассемблер является одним из тех языков, без знания которого невозможно стать профессионалом в области информационных технологий. Данная книга поможет читателю проникнуть в мир программирования на Ассемблере.

    Материал книги организован в форме уроков.

    На первых уроках читатель сможет получить представление об организации персонального компьютера об его архитектуре и устройстве.

    Остальные разделы книги непосредственно посвящены описанию самого языка, его синтаксическим конструкциям, правилам построения и отладки программ, машинным командам и многому другому.

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

    Заключительные разделы книги повествуют о современных микропроцессорах фирмы Intel.

    В книге приведено множество примеров с подробными описаниями.

    Книга может быть использована как учебник или справочное пособие.

    Скачано: 16121 раз

    Скачать книгу

    Комментарии

    Дмитрий, 01.09.2011 12:01

    hj, 24.11.2011 11:46

    Администрации сайта огромное спасибо за очень ценный труд!:)

    Данил, 14.05.2012 06:49

    А это точно полная и точная версия этой книги? Я оттуда брал в свое время для курсовика машинные описания команд (форматы команд, где в каких битах чего было расписано), а тут смотрю этой информации нет. А вот опять понадобилась..

    Данил, 14.05.2012 07:49

    Вот картинка обложки та, которая и нужна, а сама книга это не специальный справочник, а просто какой-то справочник

    Матвей, 02.05.2013 20:08

    Сайт оч хороший:) можно быстро и без проблем найти и скачать необходимую инфу. Большое спасибо администрации сайта!

    Игнатий, 26.11.2016 22:59

    Сайт очень хороший , Спасибо !

    Борис, 19.01.2017 21:52

    Sheraz, 24.04.2019 19:21

    Зачем врать?Совсем не та книга в архиве,хотя и тоже не плохая,но,всё же,похуже будет. хотя бы тем,что в реальном справочнике «форматы команд, где в каких битах чего было расписано».

    to.bomb.moscow.or.not, 14.01.2020 08:25

    Власть в Израиле переходит к «жертве русских хакеров» Изображение недоступно 34 Россияне принялись запасаться продуктами Изображение недоступно 219 Предсказано ослабление эпидемии COVID-19 Изображение недоступно 15 «Они умирают в сознании. Они умирают одн, 16.03.2020 09:48

    eto nado po etomu ebanomu likudu kardanvalom ebnut modelirovat budut dolgo kto sdelal

    ForCoder

    Книги по Assembler, скачать бесплатные книги, самоучители и учебники по Assembler в хорошем качестве

    Assembly Language for x86 Processors, 7e is suitable for undergraduate courses in assembly language programming and introductory courses in computer systems and computer architecture. Proficiency in one other programming language, preferably Java, C, or C++, is recommended.

    Written specifically for 32- and 64-bit Intel/Windows platform, this complete and fully updated study of assembly language teaches students to write and debug programs at the machine level. This text simplifies and demystifies concepts that students need to grasp before they can go on to more advanced computer architecture and operating systems courses. Students put theory into practice through writing software at the machine level, creating a memorable experience that gives them the confidence to work in any OS/machine-oriented environment.

    3,242 просмотров всего, 1 просмотров сегодня

    Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера

    Изложены принципы функционирования, особенности архитектуры и приемы программирования микроконтроллеров Atmel AVR. Приведены готовые рецепты для программирования основных функций современной микроэлектронной аппаратуры: от реакции на нажатие кнопки или построения динамической индикации до сложных протоколов записи данных во внешнюю память или особенностей подключения часов реального времени. Особое внимание уделяется обмену данными микроэлектронных устройств с персональным компьютером, приводятся примеры программ. В книге учтены особенности современных моделей AVR и сопутствующих микросхем последних лет выпуска. Приложение содержит основные параметры микроконтроллеров AVR, перечень команд и тексты программ для них, а также список используемых терминов и аббревиатур. Для учащихся, инженерно-технических работников и радиолюбителей. 3-е издание, ипсравленное.

    5,099 просмотров всего, сегодня нет просмотров

    Программирование на ассемблере на платформе х86-64

    В данной книге речь идет о работе процессора в двух его основных режимах: защищенном режиме и 64-битном, который также называют long mode («длинный режим»). Также помимо изложения принципов и механизмов работы процессора в защищенном и 64-битном режимах, речь пойдет о программировании на ассемблере в операционных системах семейства Windows, как в 32-битных, так и 64-битных версиях. Рассматривается не только разработка обычных приложений для операционных систем Windows, но и разработка драйверов на ассемблере. При написании книги уделялось большое внимание именно практической составляющей, т.е. изложение материала идет только по делу и только то, что необходимо знать любому системному и низко-уровневому программисту. Последний раздел книги посвящен принципам работы многопроцессорных систем, а также работе с расширенным программируемым контроллером прерываний (APIC).
    На диске, прилагаемом к книге, находятся полные исходные коды примеров к книге, а также дополнительные программы и материалы.

    Издание предназначено для системных и низкоуровневых программистов, а также для студентов и преподавателей технических специальностей высших и средне-специальных учебных заведений.

    7,237 просмотров всего, сегодня нет просмотров

    Ассемблер — это просто. Учимся программировать

    Подробно и доходчиво объясняются все основные вопросы программирования на ассемблере. Рассмотрены команды процессоров Intel, 16- и 32-разрядные регистры, основы работы с сопроцессором, сегментация памяти в реальном масштабе времени, управление клавиатурой и последовательным портом, работа с дисками и многое другое. Описано, как разработать безобидный нерезидентный вирус и антивирус против этого вируса, как написать файловую оболочку (типа Norton Commander или FAR Manager) и как писать резидентные программы.
    Каждая глава состоит из объяснения новой темы, описания алгоритмов программ, многочисленных примеров и ответов на часто задаваемые вопросы. Во второе издание внесены исправления и добавлены новые примеры.
    Компакт-диск содержит исходные коды всех примеров, приведенных в книге, с подробными описаниями.

    12,566 просмотров всего, 1 просмотров сегодня

    Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера

    Описание книги Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера:
    Изложены принципы функционирования, особенности архитектуры и приемы программирования микроконтроллеров Atmel AVR. Приведены готовые рецепты для программирования основных функций современной микроэлектронной аппаратуры: от реакции на нажатие кнопки или построения динамической индикации до сложных протоколов записи данных во внешнюю память или особенностей подключения часов реального времени. Особое внимание уделяется обмену данными микроэлектронных устройств с персональным компьютером, приводятся примеры программ.

    В книге учтены особенности современных моделей AVR и сопутствующих микросхем последних лет выпуска. Приложения содержат основные параметры микроконтроллеров AVR, перечень команд и тексты программ для них, а также список используемых терминов и аббревиатур. Для учащихся, инженерно-технических работников и радиолюбителей.

    21,892 просмотров всего, сегодня нет просмотров

    Assembler. Программирование на языке ассемблера IBM PC

    Описание книги Assembler. Программирование на языке ассемблера IBM PC:
    Один из лучших учебников по ассемблеру. Книга имеет малый объем. Очень хорошо изложены многие важнейшие темы — сегментация, прерывания, двоичная арифметика. Подробно рассмотрены команды ЭВМ, конструкции языка и методы программирования на нем. Изложение сопровождается многочисленными примерами. Как «краткий курс» пожалуй не имеет себе равных.

    Книга представляет собой учебное пособие по языку ассемблер для персональных компьютеров типа IBM PC. Подробно рассмотрены команды этих ЭВМ, конструкция языка и методы программирования на нем. Изложение сопровождается многочисленными примерами. Для студентов и преподавателей ВУЗов, для всех желающих детально изучить язык ассемблер и приемы программирования на нем.

    19,586 просмотров всего, сегодня нет просмотров

    Программирование на языке Ассемблера для микроконтроллеров семейства i8051

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

    Для широкого круга специалистов, занимающихся разработкой промышленной и бытовой аппаратуры, радиолюбителей, может быть полезна студентам и аспирантам.

    9,208 просмотров всего, сегодня нет просмотров

    Ассемблер для процессоров Intel Pentium

    Описание книги Ассемблер для процессоров Intel Pentium:
    Издание посвящено вопросам программирования на языке ассемблера для процессоров Intel Pentium. Рассмотрен широкий круг вопросов, начиная с основ программирования на ассемблере и заканчивая применением самых современных технологий обработки данных, таких как MMS, SSE и SSE2. Материал книги раскрывает методику оптимизации программного кода для всех поколений процессоров Intel Pentium, включая Intel Pentium 4. Теоретический материал подкреплен многочисленными примерами программного кода. Для широкого круга читателей, от студентов до опытных разработчиков программного обеспечения.

    Вовсе необязательно быть хакером, чтобы писать программы на языке ассемблера. Бесспорно лишь одно – добиться полного контроля над различными компонентами компьютера без знания языка ассемблера вряд ли возможно. В настоящей книге автор в доступной форме знакомит читателей со всеми основными конструкциями языка ассемблера, демонстрируя на конкретных примерах варианты решения различных практических задач. Можно предположить, что именно подбор задач отличает различные издания по данной тематике. Ведь набор операций по сути неизменен. Особенность настоящей книги заключается в удачном сочетании формального стиля изложения с доступными для понимания примерами. С другой стороны, значительная часть материала представляет интерес для читателей, уже имеющих опыт работы с этим языком. Это касается особенностей новых архитектур процессоров, обеспечения интерфейса с языками высокого уровня и командам расширений современных процессоров. Эти темы практически не освещены в литературе, что значительно увеличивает интерес к данной книге. Содержание книги и доступный характер изложения материала позволяют рекомендовать ее для самой широкой аудитории читателей, не только решивших самостоятельно изучить язык ассемблера, но и почерпнуть дополнительную информацию по более тонким вопросам системного программирования.

    10,449 просмотров всего, 1 просмотров сегодня

    Изучаем Ассемблер

    Описание книги Изучаем Ассемблер:
    Книга посвящена основам программирования на Ассемблере в системах Windows и DOS. Знание Ассемблера необходимо профессиональному программисту для понимания работы операционной системы и компилятора. Ассемблер позволяет написать программу (или ее часть) так, что она будет быстро выполняться и при этом занимать мало места. Это любимый язык хакеров; его знание позволяет менять по своему усмотрению программы, имея только исполнимый файл без исходных текстов. В основу изложения положены короткие примеры на ассемблере MASM фирмы Microsoft, вводящие читателя в круг основных идей языка, знание которых позволяет не только писать простые программы, но и самостоятельно двигаться дальше.

    Книга рассчитана на школьников средних и старших классов, а также на всех, интересующихся программированием вообще и ассемблером в частности.

    11,254 просмотров всего, 2 просмотров сегодня

    Использование ассемблера для оптимизации программ на C++

    Описание книги Использование ассемблера для оптимизации программ на C++:
    Рассматривается использование языка ассемблера для оптимизации программ, написанных на языке C++. Подробно изложены вопросы применения современных технологий обработки данных ММХ и SSE, а также использования особенностей архитектур современных процессоров для оптимизации программ. Приведены практические рекомендации по оптимизации логических структур высокого уровня, использованию эффективных алгоритмов вычислений, работе со строками и массивами данных.

    В книгу включены примеры программного кода приложений, иллюстрирующие различные аспекты применения ассемблера. В качестве средств разработки примеров используются макроассемблер MASM 6.14 и Microsoft Visual C++ .NET 2003. Исходные тексты программ содержатся на прилагаемом к книге компакт-диске.

    8,582 просмотров всего, 1 просмотров сегодня

    Ассемблер с нуля. Часть 13. Команды ассемблера.

    Команды ассемблера и команды процессора.

    Стоит пояснить, что если к вопросу подойти формально строго, то команды процессора и команды ассемблера — это не одно и то же. Ассеммблер — хоть и низкоуровневый язык программирования, но иногда он без спроса программиста «корректирует код под себя». Причём у каждого ассемблера (masm, tasm, fasm) это может быть по-разному. Самый яркий пример — команда ret. В ассемблерном коде мы запишем ret, а реальный ассемблер ассемблирует её как retf или retn 8. Может также изменяться код, добавлением в качестве выравнивания кода команды процессора nop (об этом ниже в статье) и т.п. Чтобы не усложнять суть вопроса, под понятиями команды процессора и команды ассемблера мы будем подразумевать одно и то же.

    Команды процессора (команды ассемблера) в большинстве своём работают с аргументами, которые в ассемблере называются операндами. Система машинного кода процессоров Intel содержит более 300 команд (команды процессора, сопроцессора, MMX-расширения, XMM-расширения). С каждым новым процессором их количество растёт. Для того, чтобы профессионально программировать, не надо зубрить и разбирать все команды процессора. При необходимости можно воспользоваться справочником. В процессе чтения статей, вы поймёте, что основная суть знания ассемблера состоит не в доскональном знании всех команд, а в понимании работы системы.

    Не следует забывать, что команды процессор видит в виде цифр, которые можно рассматривать как данные. Например, команда NOP занимает один байт и её машинный код — 90h.

    Начиная изучать язык низкого уровня, мы будем иметь дело с ограниченным набором старых-добрых команд процессора. Иные команды ассемблера понадобятся специалистам, заинтересованным в оптимизацией кода, связанного со сложными математическими расчетами данных большого объёма.

    Основные (т.н. целочисленные) команды ассемблера позволяют написать практически любую программу для операционных систем MS-DOS и Windows. Количество команд ассемблера, которыми вы будете пользоваться будет расти со временем прохождения курса. Для более детального понимания, в последствии можете обратиться к справочнику команд.

    Рассмотрим команды ассемблера на практическом примере.

    С использованием среды разработки TASMED или любого текстового редактора набираем код. Программа, задаст вопрос на английском языке о половой принадлежности (имеется ввиду ваш биологический пол при рождении). Если вы нажмете m (Man), будет выведено приветствие с мужчиной, если w (Woman), то с женщиной, после этого программа прекратит работу. Если будет нажата любая другая клавиша, то программа предположит, что имеет дело с гоблином, не поверит и будет задавать вам вопросы о половой принадлежности, пока вы не ответите верно.

    Читать еще:  Delphi tstringlist create
Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector