Язык ассемблер

Заказать уникальный реферат
Тип работы: Реферат
Предмет: Программирование Ассемблер
  • 20 20 страниц
  • 0 + 0 источников
  • Добавлена 13.11.2022
748 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
ВВЕДЕНИЕ 3
История создания ассемблера 4
Описание различных версий ассемблера 6
FASM Assembler 13
ЗАКЛЮЧЕНИЕ 19
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 20
Фрагмент для ознакомления

Например, "db 1,2,3" описывает три байта со значениями 1, 2 и 3 соответственно.Директивы" Du "и" db "поддерживают сроки любой длины, взятые в цепочку байтов, если используется директива" db", или в кавычки, которые превращаются в цепочку слов с нулевым байтом, если используется директива"du". Например, значения " DB ' abc '" определяют три байта, которые равны 61, 62 и 63.Директива " Dp "или ее синоним" df " позволяет значениям состоять из двух числовых выражений, разделенных двоеточием, где первое значение - верхнее слово, а второе-нижнее двоеточие значений Дальнего показателя. Кроме того," dd "допускает такие показатели из двух слов, разделенных двоеточием, в то время как" dt " допускает Слово и четвертичное слово, разделенное двоеточием, четвертичное слово запоминается первым. Однопараметрическая директива " dt " допускает только значения с плавающей запятой и генерирует данные в формате FPU с удвоенной точностью.Все вышеперечисленные директивы поддерживают использование специального оператора "dup" для создания копий этих значений. Число копий должно стоять перед этим оператором, а их значение должно стоять после-это может быть даже последовательность значений, разделенная запятой, но эта цепь должна быть заключена в скобки, например," db 5 dup (1,2) " определяет пять экземпляров данной последовательности, состоящей из двух байтов."file" - это специальная директива и её синтаксис может быть различным. Эта директива включает цепь байтов из файла. В качестве параметра за ней должно идти в кавычках имя файла, далее, опционально, двоеточие и числовое выражение, указывающее начало цепочки байтов, далее, также опционально, запятая и числовое выражение, определяющее количество байтов в этой цепочке (если этот параметр не определен, то будут включены все данные до конца файла). Например, "file 'data.bin'" включит весь файл как двоичные данные, а "file 'data.bin':10h,4" включит только четыре байта, начиная со смещения 10h.За директивой резервирования данных должно следовать одно числовое выражение, значение которого определяет количество резервируемых ячеек установленного размера. Все директивы описания данных также поддерживают значение "?", которое значит, что этой ячейке не должно быть присвоено какое-то значение. Эффект от этой директивы такой же, как от директивы резервирования данных. Неинициализированные данные не могут быть включены в файл вывода, и, таким образом, их значения всегда будут считаться неизвестными.Таблица 1.1 Директивы данныхРазмер(байты)ОпределениеданныхРезервированиеданных1dbfilerb2dwdurw4ddrd6dpdfrprf8dqrq10dtrtИнструкции ассемблера состоят из мнемоника (имени инструкции) и нескольких операндов (от нуля до трех). Если операндов два или три, то обычно первым идет адресат, а вторым источник.Некоторые инструкции работают как префиксы и могут предшествовать другим инструкциям в той же строке. В одной строке может быть несколько приставок. Название каждого сегментного регистра также Мнемотехника инструкции префикса, хотя вместо этих префиксов рекомендуется заменить сегмент внутри квадратных скобок."mov" переносит байт, слово или двойное слово из исходного операнда в операнд-адресат. Эта Мнемотехника может передавать данные между регистрами общего назначения, из этих регистров в память, обратно, но не может перемещать данные из памяти в память. Он также может передавать прямое значение в регистр общего назначения или память, сегментный регистр в регистр общего назначения или память, сегментный регистр общего назначения или память, контрольный или отладочный регистр в регистр общего назначения и обратно. "mov" может быть собран только в том случае, если размер исходного операнда и размер операнда адресата совпадают. Ниже приведены примеры каждой из перечисленных комбинаций:movbx,ax ; из регистра общего назначения в регистр общего назначенияmov [char],al ; из регистра общего назначения в памятьmovbl,[char] ; из памяти в регистр общего назначенияmov dl,32 ; непосредственное значение в регистр общего назначенияmov [char],32 ; непосредственное значение в памятьmovax,ds ; из сегментного регистра в регистр общего назначенияmov [bx],ds ; из сегментного регистра в памятьmovds,ax ; из регистра общего назначения в сегментный регистрmovds,[bx] ; из памяти в сегментный регистрmov eax,cr0 ; из контрольного регистра в регистр общего назначенияmov cr3,ebx ; из регистра общего назначения в контрольный регистр"xchg" меняет местами значения двух операндов. Инструкция может поменять два байтовых операнда, операнды размером в слово и размером в двойное слово. Порядок операндов не важен. В их роли могут выступать два регистра общего назначения либо регистр общего назначения и адрес в памяти. Например:xchgax,bx ; меняет местами два регистра общего назначенияxchgal,[char] ; регистр общего назначения и память.В данной главе затронута лишь малая часть синтаксиса и нюансов работы FASM АссемблераЗАКЛЮЧЕНИЕВ работе рассмотрены виды ассемблеров, история развития языка и область применения.При программировании на языке Ассемблера и только через написание программ на этом уровне детализации можно понять, как работает машина на самом нижнем уровне.Самыми популярными на сегодняшний день являются пакеты TurboAssembler (TASM) фирмы Borland, MacroAssemblerforWindows32 (MASM32), созданный Hutch (на основе старого MASM фирмы Microsoft), а также FlatAssembler (FASM), и NetwideAssembler (NASM), развиваемый командой NASMDevelopmentTeam. Все эти ассемблеры предоставляют весьма широкие возможности для программиста. На них можно писать программы как под DOS, так и под Windows.Существует также множество других видов ассемблера, число которых растет. Например, CodeX Assembler, Gema Assembler, Light Macro Assembler (LASM), Lazy Assembler (LZASM), Table Driven Assembler (TDASM), NewBasic++ Assembler (NBASM), TMA Macro Assembler идр.СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВЮров В. Assembler. Учебник. – М.: Издательский дом "Питер", 2003.Крупник А.Б. Изучаем Ассемблер. – М.: Издательский дом "Питер", 2005.Tom Swan. Mastering Turbo Assembler. Carmel, Indiana: Howard W. Sams & Company, Hayden Books division of Macmillan Computer Publishing, 1989.Рудольф Марек. Ассемблер на примерах. Базовый курс. — СПб.: Наука и техника, 2005.А. В. Столяров. Программирование на языке ассемблера NASM для ОС Unix. — М.: МАКС Пресс, 2011.

1. Юров В. Assembler. Учебник. – М.: Издательский дом "Питер", 2003.
2. Крупник А.Б. Изучаем Ассемблер. – М.: Издательский дом "Питер", 2005.
3. Tom Swan. Mastering Turbo Assembler. Carmel, Indiana: Howard W. Sams & Company, Hayden Books division of Macmillan Computer Publishing, 1989.
4. Рудольф Марек. Ассемблер на примерах. Базовый курс. — СПб.: Наука и техника, 2005.
5. А. В. Столяров. Программирование на языке ассемблера NASM для ОС Unix. — М.: МАКС Пресс, 2011.

Вопрос-ответ:

Когда и почему был создан язык ассемблер?

Язык ассемблер был создан в 1947 году для программирования первых компьютеров. Это был низкоуровневый язык, который позволял программистам работать ближе к аппаратному уровню и управлять ресурсами компьютера.

Какие версии языка ассемблер существуют?

Существует множество версий языка ассемблер, каждая из которых предназначена для определенных процессоров. Некоторые из них: NASM для процессоров x86, GAS для процессоров ARM, TASM для процессоров x86 и многие другие.

Что такое FASM Assembler?

FASM Assembler (Flat Assembler) - это один из видов ассемблера, который изначально разрабатывался для работы с 16-битными процессорами. FASM является open-source проектом и позволяет программистам писать эффективный и быстродействующий код.

Как описать последовательность байт в ассемблере?

В ассемблере существует несколько директив для описания последовательности байт. Директивы db и du позволяют описывать последовательность байт фиксированной и переменной длины соответственно. Например, db 1, 2, 3 описывает три байта со значениями 1, 2 и 3.

Какие источники использовались при написании статьи?

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

Какова история создания языка ассемблер?

Язык ассемблер был разработан в 1947 году Джоном фон Нейманом в рамках проекта по созданию ЭВМ. Он предназначался для программирования машины Mark I, первого полностью электромеханического компьютера. С тех пор язык ассемблер стал широко распространенным средством программирования, используемым для разработки низкоуровневых системного и прикладного программного обеспечения.

Какие версии языка ассемблер существуют?

Существует множество версий языка ассемблер, каждая из которых разработана для конкретной архитектуры процессора. Некоторые из наиболее популярных версий ассемблера включают NASM (Netwide Assembler), GAS (GNU Assembler), MASM (Microsoft Macro Assembler) и FASM (Flat Assembler).

Что такое FASM Assembler?

FASM (Flat Assembler) - это одна из наиболее популярных версий языка ассемблер. Он отличается от других ассемблеров тем, что поддерживает практически все современные архитектуры процессоров, а также предоставляет возможность написания кросс-платформенного кода. FASM имеет простой и интуитивно понятный синтаксис, позволяющий быстро и эффективно разрабатывать программное обеспечение на языке ассемблер.