Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: CIV Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 09 августа 2021 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Лаптев Ю.В., Талалайкина Е.И. ОСОБЕННОСТИ И РАЗЛИЧИЯ ПОДХОДОВ К СОСТАВЛЕНИЮ ПРОГРАММ НА ЯЗЫКЕ АССЕМБЛЕР ПОД РАЗЛИЧНЫЕ ПЛАТФОРМЫ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. CIV междунар. студ. науч.-практ. конф. № 8(103). URL: https://sibac.info/archive/technic/8(103).pdf (дата обращения: 22.11.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

ОСОБЕННОСТИ И РАЗЛИЧИЯ ПОДХОДОВ К СОСТАВЛЕНИЮ ПРОГРАММ НА ЯЗЫКЕ АССЕМБЛЕР ПОД РАЗЛИЧНЫЕ ПЛАТФОРМЫ

Лаптев Юрий Владиславович

магистрант, факультет компьютерных наук и информационных технологий, Саратовский национальный исследовательский государственный университет имени Н.Г. Чернышевского,

РФ, г. Саратов

Талалайкина Елизавета Игоревна

магистрант, факультет компьютерных наук и информационных технологий, Саратовский национальный исследовательский государственный университет имени Н.Г. Чернышевского,

РФ, г. Саратов

Трунов Александр Алексеевич

научный руководитель,

ассистент, факультет компьютерных наук и информационных технологий, Саратовский национальный исследовательский государственный университет имени Н.Г. Чернышевского,

РФ, г. Саратов

FEATURES AND DIFFERENCES OF APPROACHES TO CREATING PROGRAMS IN THE ASSEMBLER LANGUAGE FOR DIFFERENT PLATFORMS

 

Elizaveta Talalaikina

student, Faculty of Computer Science and Information Technologies, Saratov State University,

Russia, Saratov

Iurij Laptev

student, Faculty of Computer Science and Information Technologies, Saratov State University,

Russia, Saratov

Alexander Trunov

scientific advisor, PhD in Physics and Mathematics, assistant, Faculty of Computer Science and Information Technologies, Saratov State University,

Russia, Saratov

 

АННОТАЦИЯ

В данной статье описываются особенности подходов к составлению программ на языке ассемблер под Windows и Linux, а также их различия.

ABSTRACT

This article describes the features of approaches to compiling assembly language programs for Windows and Linux, as well as their differences.

 

Ключевые слова: ассемблер; операционные системы; Windows; Linux; MASM; FASM; YASM.

Keywords: assembler; OS; Windows; Linux; MASM; FASM; YASM.

 

Семейство языков программирования Ассемблер являются языками низкого уровня. Также Ассемблером называют трансляторы текста на языке ассемблер, в программу на машинном языке.

Трансляторы с языка ассемблер специфичны для конкретной архитектуры и операционной системы. Также синтаксис каждого из трансляторов отличен, поскольку работают с мнемониками машинных инструкций определенного процессора. Некоторые из трансляторов могут быть мультиплатформенными. В данной статье будут рассмотрены особенности и различия следующих трансляторов: MASM, TASM, NASM.

MASM является транслятором компании Microsoft, который был изначально разработан для создания операционной системы MS-DOS, а позднее для Windows 9x/NT.  В современном мире данный транслятор используется для создания драйверов под Windows. MASM не является мультиплатформенными транслятором и предназначен только для архитектур х86 16/32, х86-64.

Ниже приведен пример кода для данного транслятора:

.586P

.model flat, stdcall

 _data segment

 _data ends

 _text segment

 start:

 ret

 _text ends

 end start

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

FASM расшифровывается как flat assembler. Данный транслятор разработан Томасом Гриштаром. Данный транслятор распространяется в исходных текстах на бесплатной основе и к настоящему моменту перенесен на MS-DOS, Windows9x/NT, Linux, BSD.

К преимуществам данного транслятора можно отнести то, что он мультиплатформенный, поддерживает уникод и все х86 процессоры вплоть до Pentium-4. FASM позволяет обходиться без линкера, при этом раскладку секций в PE-файле и таблицу импорта нужно создавать вручную.

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

Ниже приведен пример кода для данного транслятора, выводящего в командную строку «Hello world»:

include 'win32ax.inc'

 .code start:

 invoke MessageBox,HWND_DESKTOP,"Hello world",invoke GetCommandLine,MB_OK invoke ExitProcess,0

.end start

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

YASM является свободно распространяемым транслятором под Unix-подобные системы. Лицензируется под лицензией BSD и в настоящее время развивается Питером Джонсоном и Майклом Ерманом.

Основными отличиями, от предшествующего его NASM, являются: поддержка платформы AMD х86-64, оптимизированный парсер, генерация отладочной информации в формате CodeView.

Ниже представлен пример кода для данного транслятора, выводящий «Hello world»:

%include "stud_io.inc"

global _start

section .text

_start: mov eax, 0

again: PRINT "Hello world"

PUTCHAR 10

inc eax

cmp eax, 5

jl again

FINISH

Синтаксис данного транслятора достаточно простой и мало отличается от остальных трансляторов.

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

 

Список литературы:

  1. Специфические особенности языка ассемблер [электронный ресурс] — Режим доступа. — URL: http://skachivaem.ru/articles/9-2008-09-18-15-17-46/213-2009-07-21-20-46-40.html (дата обращения 12.02.2021)
  2. MASM для x64 (ml64.exe) [электронный ресурс] — Режим доступа. — URL: https://docs.microsoft.com/ru-ru/cpp/assembler/masm/masm-for-x64-ml64-exe?view=msvc-160 (дата обращения 23.03.2021)
  3. flat assembler [электронный ресурс] — Режим доступа. — URL: https://flatassembler.net/ (дата обращения 23.03.2021)
  4. The Yasm Modular Assembler Project [электронный ресурс] — Режим доступа. — URL: https://yasm.tortall.net/ (дата обращения 04.04.2021)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

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

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