1 прикладные программы на языке ассемблер

Программирование на Ассемблере для начинающих с примерами программ

Многие считают, что Assembler – уже устаревший и нигде не используемый язык, однако в основном это молодые люди, которые не занимаются профессионально системным программированием. Разработка ПО, конечно, хорошо, но в отличие от высокоуровневых языков программирования, Ассемблер научит глубоко понимать работу компьютера, оптимизировать работку с аппаратными ресурсами, а также программировать любую технику, тем самым развиваясь в направлении машинного обучения. Для понимания этого древнего ЯП, для начала стоит попрактиковаться с простыми программами, которые лучше всего объясняют функционал Ассемблера.

IDE для Assembler

Первый вопрос: в какой среде разработки программировать на Ассемблере? Ответ однозначный – MASM32. Это стандартная программа, которую используют для данного ЯП. Скачать её можно на официальном сайте masm32.com в виде архива, который нужно будет распаковать и после запустить инсталлятор install.exe. Как альтернативу можно использовать FASM, однако для него код будет значительно отличаться.

Перед работой главное не забыть дописать в системную переменную PATH строчку:

Программа «Hello world» на ассемблере

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

Для начала запускаем редактор qeditor.exe в папке с установленной MASM32, и в нём пишем код программы. После сохраняем его в виде файла с расширением «.asm», и билдим программу с помощью пункта меню «Project» → «Build all». Если в коде нет ошибок, программа успешно скомпилируется, и на выходе мы получим готовый exe-файл, который покажет окно Windows с надписью «Hello world».

Сложение двух чисел на assembler

В этом случае мы смотрим, равна ли сумма чисел нулю, или же нет. Если да, то на экране появляется соответствующее сообщение об этом, и, если же нет – появляется иное уведомление.

Здесь мы используем так называемые метки и специальные команды с их использованием (jz, jmp, test). Разберём подробнее:

Программа суммы чисел на ассемблере

Примитивная программа, которая показывает процесс суммирования двух переменных:

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

Получение значения из командной строки на ассемблере

Одно из важных основных действий в программировании – это получить данные из консоли для их дальнейшей обработки. В данном случае мы их получаем из командной строки и выводим в окне Windows:

Также можно воспользоваться альтернативным методом:

Здесь используется invoke – специальный макрос, с помощью которого упрощается код программы. Во время компиляции макрос-команды преобразовываются в команды Ассемблера. Так или иначе, мы пользуемся стеком – примитивным способом хранения данных, но в тоже время очень удобным. По соглашению stdcall, во всех WinAPI-функциях переменные передаются через стек, только в обратном порядке, и помещаются в соответствующий регистр eax.

Циклы в ассемблере

Для создания цикла используется команда repeat. Далее с помощью inc увеличивается значение переменной на 1, независимо от того, находится она в оперативной памяти, или же в самом процессоре. Для того, чтобы прервать работу цикла, используется директива «.BREAK». Она может как останавливать цикл, так и продолжать его действие после «паузы». Также можно прервать выполнение кода программы и проверить условие repeat и while с помощью директивы «.CONTINUE».

Сумма элементов массива на assembler

Здесь мы суммируем значения переменных в массиве, используя цикл «for»:

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

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

Источник

Простая программа на ассемблере x86: Решето Эратосфена

Вступительное слово

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

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

Итак, посмотрим, что получилось.

С чего начать?

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

Так же встает вопрос, каким образом на таком низком уровне реализуется обмен данными между внутренним миром программы и внешней средой. Тут на сцену выходит API операционной системы. В DOS, как уже было упомянуто, интерфейс был достаточно простой. К примеру, программа «Hello, world» выглядела так:

В Windows же для этих целей используется Win32 API, соответственно, программа должна использовать методы соответствующих библиотек:

Здесь используется файл win32n.inc, где определены макросы, сокращающие код для работы с Win32 API.

Я решил не использовать напрямую API ОС и выбрал путь использования функций из библиотеки Си. Так же это открыло возможность компиляции программы в Linux (и, скорее всего, в других ОС) – не слишком большое и нужное этой программе достижение, но приятное достижение.

Читайте также:  Великолепный век империя кесем на украинском языке

Вызов подпрограмм

Потребность вызывать подпрограммы влечет за собой несколько тем для изучения: организация подпрограмм, передача аргументов, создание стекового кадра, работа с локальными переменными.

Для ее вызова нужно было бы использовать инструкцию call :

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

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

При входе в подпрограмму необходимо создать новый стековый кадр. Делается это следующим образом:

Соответственно, перед выходом нужно восстановить прежнее состояние стека:

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

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

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

Непосредственно программа

Источник

Реферат: Разработка программы на языке ассемблер Компиляция откладка программы

Федеральное агентство связи

БФ ГОУ ВПО СибГУТИ

По дисциплине: ОСНОВЫ СИСТЕМНОГО ПРОГРАММИРОВАНИЯ

ст-ка гр. преподаватель

Содержание

Задание на курсовой проект…………………………………………………….3

1. Состав и назначения ОС………………………………………………………5

2. Характеристики современных ОС……………………………………………7

5. Разработка программы на языке ассемблер………………………………..10

6. Компиляция откладка программы………………………………….……….11

Задания на курсовую работу

1. Создать командный файл, который выполняет следующие действия:

b. Создание директории C:\TMP

c. Копирование в директорию C:\TMP файлов из корневого каталога.

d. Создание нового файла NEW.TXT с консоли в директории C:\TMP.

e. Создание копий файлов *.TXT, сменив расширение на bat и оставив имя.

f. Сравнение копий с оригиналами.

g. Просмотр постранично содержимого директории C:\TMP.

2. Написать и отладить программу на языке ассемблера. В программе описать процедуру, которая выводит на экран элемент массива с заданным номером. Параметры передавать следующим образом:

в ВХ – смещение массива;

в СХ – число элементов в массиве;

в АХ – заданный номер элемента.

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

ВВЕДЕНИЕ

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

Несмотря на то, что в настоящее время программист может использовать большое количество языков программирования, которые гораздо проще Ассемблера, знание Ассемблера и умение программировать на нем никогда не будут лишними. Этот факт подтверждается следующими доводами:

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

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

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

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

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

Состав и назначение ОС

Операционная система (ОС) – это комплекс программ, входящих в состав программного обеспечения компьютера, обеспечивающих управление работой аппаратных средств компьютера, обменом данных между различными аппаратными узлами ПК, а также организующих диалог компьютера и человека. При параллельной работе процессора, памяти и внешних устройств ОС обеспечивает разделение ресурсов, что предотвращает возникновение конфликтов между компонентами компьютерной системы. ОС – неотъемлемая часть любого компьютера. Ни один из компонентов программного обеспечения, за исключением самой ОС, не имеет доступа к аппаратуре компьютера.

Наиболее важными частями ОС являются файловая система (ФС), драйверы внешних устройств, загрузчик, системная библиотека, сервисные программы (или утилиты), справочная система. Кроме того, в состав ОС могут входить такие программы, как текстовые редакторы, редакторы связей, системные мониторы, трансляторы и т.д.

Файловая система представляет собой способ организации хранения файлов в дисковой памяти. Тип ФС и организация хранения данных на носителях внешней памяти определяют удобство работы пользователя, скорость доступа к файлам, организацию многозадачной работы, возможность создания хороших баз данных. Файлы – это программы, тексты, данные, любая информация, хранящаяся в памяти, которая имеет уникальное имя. Имя каждого файла и основные сведения о нем хранятся в каталоге (директории), который упрощает поиски доступ к информации. Каталоги – это специальное место на диске, организованное для хранения имен файлов и сведений о них. Исходный каталог, в состав которого входят все остальные каталоги называется корневым каталогом. ФС поддерживает операции чтения, переименования, удаления файлов.

Задачи ОС заключаются в том, чтобы:

– облегчить проектирование, программирование, отладку и сопровождение программ, обеспечить их взаимодействие с аппаратурой;

– распределить ресурсы ЭВМ таким образом, чтобы обеспечить эффективную работу всех ее компонентов (центрального процессора, устройств ввода/вывода и т.п.);

– предоставить пользователям возможности общего управления машиной.

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

Главное назначение ОС – управление ресурсами компьютера. Операционная система управляет следующими основными ресурсами : процессорами, памятью, устройствами ввода/вывода, данными. При этом операционная система реализует следующие функции :

· определяет интерфейс пользователя;

· обеспечивает разделение аппаратных средств между пользователями;

· планирует доступ пользователей к общим ресурсам;

· обеспечивает эффективное выполнение операций ввода-вывода;

· осуществляет восстановление информации и вычислительного процесса в случае ошибок;

· обеспечивает сохранность данных и защиту одной программы от другой;

Операционная система взаимодействует с : операторами ЭВМ, прикладными программистами, системными программистами, административным персоналом, программами, аппаратными средствами, пользователями.

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

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

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

Программы обращаются к ОС при помощи специальных команд (вызов монитора, супервизора и т.п.), не нарушающих ее целостности и работоспособности.

Пользователи – это абоненты вычислительной сети.

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

Пользователь взаимодействует ПК через внешний интерфейс, организуемый ОС. Он вводит задания (команды) и получает результаты их выполнения. Существует два типа диалоговых интерфейсов – текстовый (MS DOS) и графический (Windows). В графических интерфейсах информация и команды представляются в виде пиктограмм (значков), и пользователь выполняет те или иные действия, указывая на эти пиктограмм и совершая с ними определенные действия.

Характеристики современных ОС

Современные операционные системы имеют следующие особенности:

· дружественный интерфейс, ориентированный на неподготовленного пользователя и при помощи меню предоставляющий пользователю ряд альтернатив, выраженных на естественном языке;

· использование концепции виртуальных машин, благодаря которой пользователь избавлен от необходимости знать физические особенности машин и систем; он имеет дело с функциональным эквивалентом компьютера, создаваемым для него операционной системой и называемым виртуальной машиной;

· распределенная обработка данных: гораздо целесообразнее иметь вычислительные мощности там, где они необходимы, вместо того, чтобы передавать данные для обработки в вычислительные центры.

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

Переносимость ОС – это возможность ОС работать на компьютерах, базирующихся на ЦП с различной архитектурой.

ОС MS DOS

Операционная система MS-DOS за годы своего существования прошла путь от простого загрузчика до универсальной системы для персональных компьютеров, построенных на базе микропроцессоров Intel 8086/8088.

Операционная система MS-DOS была разработана компанией Microsoft в 1981 г. и впервые использована фирмой IBM для персональных компьютеров – тогда она была названа PC DOS 1.0. В последующие годы MS-DOS многократно перерабатывалась и приобретала новые важные функции (версии 2.0 в 1983 г., 3.0 в 1984 г., 3.2 в 1986 г., 3.3 в 1987 г., 4.0 в 1988 г., 5.0, …, 6.22). Например, в версии 4.0 появилась графическая оболочка пользователя DOS-Shell, в версии 5.0 – целый ряд сервисных программ (редактор командной строки DOSKEY, страничный редактор EDIT, и т.д.).

MS-DOS является однозадачной однопользовательской системой. Она требует относительно небольшого объема памяти, легко адаптируется к разнообразным аппаратным конфигурациям и поэтому достаточно популярна среди пользователей. Кроме того, ее можно считать основой для изучения операционных систем и их возможностей – знакомство с общей структурой системы MS-DOS очень полезно для понимания поведения вычислительной системы в целом. Многие ОС, созданные позднее, имеют пользовательский интерфейс, совместимый с MS-DOS. Например, это система MS OS/2, в которой реализованы многозадачный и защищенный режим, система виртуальной памяти.

Система MS-DOS разбита на несколько уровней, которые служат для разделения логики ядра ОС и восприятия системы пользователем от технических средств, реализующих ее работу. К этим уровням относятся:

· BIOS (базовая система ввода-вывода),

· Командный процессор (оболочка).

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

содержатся аппаратно-зависимые драйверы следующих устройств:

· Консольный дисплей с клавиатурой (CON);

· Устройство построчной печати (PRN);

· Последовательный канал связи (AUX);

· Дисковое устройство начальной загрузки.

Ядро системы MS-DOS взаимодействует с драйверами этих устройств с помощью пакетов запросов ввода-вывода. Затем драйверы переводят эти запросы в сами команды для различных аппаратных контроллеров.

· управление файлами и записями;

· символьно-ориентированное устройство ввода-вывода;

· порождение других задач;

· доступ к часам реального времени.

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

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

Язык ассемблера позволяет лучше понять взаимодействие всех функциональных узлов компьютера с операционной системой. Язык ассемблера – это специфический язык программирования со взаимно однозначным соответствием между его операторами и командами процессора. Язык ассемблера существует для каждого типа процессоров или целого семейства процессоров, поскольку команды на языке ассемблера должны иметь взаимно однозначное соответствие с системой машинных команд и должны быть согласованы с архитектурой компьютера. В данном курсе рассматривается система команд для 16-разрядного 8086-88 процессоров производства Intel. Микропроцессоры 8086-88 характеризуются основным адресным пространством объемом 1 (MB) мегабайт, из которого первые 640 KB (килобайт) отведены под основную память (RAM) и адресным пространством ввода/вывода объемом 65536 байтов.

Ассемблер – это программа, преобразовывающая исходные коды языка ассемблера в машинные команды. Ассемблерные программы могут быть очень эффективными. Из программистов, с равными навыками и способностями, работающий на языке Ассемблера создаст программу более компактную и быстродействующую, чем такая же программа, написанная на языке высокого уровня. Это так практически для всех небольших или средних программ. Программы на языке Ассемблера очень точны. Поскольку этот язык позволяет программисту непосредственно работать со всем аппаратным обеспечением, ассемблерная программа может делать то, что недоступно никакой другой программе.

Хотя разработка и отладка программы на языке ассемблера занимают много времени, при этом получаются небольшие исполняемые модули, занимающие мало места в памяти и позволяющие достичь приемлемой скорости даже на медленных компьютерах. Язык ассемблера используется в основном для написания отдельных сегментов прикладных программ (для повышения скорости работы и прямого доступа к оборудованию), а также встроенных системных программ, которые хранятся в программируемой памяти отдельных устройств.

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

Разработка программы на языке ассемблера

Разработка программ на языке ассемблера отличается от написания программ на языках высокого уровня тем, что требует большого внимания и аккуратности при отслеживании содержимого памяти и регистров. При этом следует соблюдать следующие этапы разработки программы:

· постановка задачи и составление проекта программы;

· создание файла с текстом программы с помощью любого текстового редактора;

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

· преобразование результата работы ассемблера в исполняемый модуль с помощью компоновщика;

· запуск программы на исполнение;

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

Для создания программ на языке ассемблера в данном курсе используются программный продукт Турбо Ассемблер фирмы Borland Int. Компилятор Турбо Ассемблера – это выполняемая программа, размещенная в файле TASM.EXE, а компоновщик содержится в файле TLINK.EXE. Отладчик содержится в файле TD.EXE. Процесс компиляции и компоновки программы на языке ассемблера выглядит следующим образом.

Рисунок 1 Этапы разработки программы на языке ассемблера

Компиляция и отладка программы

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

C:\ASM\tasm /zi %1.asm, %1.obj, %1.lst

Во второй строчке вызывается компилятор с нужными опциями для файла с исходной программой, который будет указан в командной строке. В третьей строчке вызывается компоновщик для создания ехе-файла. Для компиляции программы в командной строке необходимо набрать a . bat Myprog (если исходная программа хранится в файле Myprog.asm)

Для исправления ошибок можно воспользоваться отладчиком Turbo Debugger. В командной строке необходимо набрать C :\А SM \ td Myprog . exe Можно оформить этот вызов в виде командного файла для удобства. После выполнения этой команды вызывается отладчик.

Просмотр содержимого регистров осуществляется командой Veiw\CPU. Пошаговое исполнение программы – F8. Выход из отладчика – ALT-X.

Задание 1:

В командной строке прописываем следующие команды:

Рис.2 Очистка экрана

b. md C:\TMP – создания директории

Рис.3 Создание директории

Рис.4 Копирование файлов

d. copy con C:\Tmp\new.txt – создания файла

Рис.5 Создание файла

e. copy С:\Tmp\new.txt C:\Tmp\new.bat – создания копии файла .txt c расширением .bat

Рис.6 Создание копии файла с другим расширением (.bat)

Рис.7 Сравнение файлов с различными расширениями

g. dir C:\tmp /p – просмотр директории постранично

Рис.8 Просмотр директории постранично

Задание 2:

mas dw 9,9,8,7,6,5,4,3,2,1,3,4,5 ; первый массив

mas1 dw 1,2,3,4,5,6,7,8,9,9 ; второй массив

me db “Index Massiva$”

.stack 100h ; размер стэка

mov dx,offset me ; заносим смещение сообщения в регистр дх

mov ah,09h ; функция вывода строки

int 21h; прерывание вызываем

mov cx,ax ; ставим счетчик цикла в значение ax

add bx,2 ; смещаемся на следуещее слово

mov dx,[bx]; выводим элемент под нужным номером

add dx,48 ; переводим число в соответствующий символ

mov ah,2 ; функция вывода символа

int 21h ; вызываем прерываение

mov ah,02h ; выводим конец строки в конце работы процедуры

mov bx,offset mas ; смещение 1го массива

mov cx,13 ; размер 1го массива

call print ; печетаем

mov bx,offset mas1 ; смещение 2го массива

mov cx,10 ; и размер его

Блок-схема

Название: Разработка программы на языке ассемблер Компиляция откладка программы
Раздел: Остальные рефераты
Тип: реферат Добавлен 04:33:40 05 октября 2011 Похожие работы
Просмотров: 1262 Комментариев: 6 Оценило: 1 человек Средний балл: 4 Оценка: неизвестно Скачать

Читайте также:  Известные люди россии на немецком языке

.

ЗАКЛЮЧЕНИЕ

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

К преимуществам Ассемблера можно отнести:

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

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

К недостаткам языка следует отнести:

1. По мере увеличения своего размера программа на Ассемблере теряет наглядность. Это связано с тем, что в ассемблерных программах следует уделять много внимания деталям. Язык требует планирования каждого шага ЭВМ. Конечно, в случае небольших программ это позволяет сделать их оптимальными с точки зрения эффективности использования аппаратных средств. В случае же больших программ бесконечное число деталей может помешать добиться оптимальности программы в целом, несмотря на то, что отдельные фрагменты программы будут написаны очень хорошо.

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

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

Список использованной литературы:

1. Методическое пособие «Основы системного программирования»

2. Электронный учебник по Ассемблеру

3. Абель П. Язык Ассемблера для IBM PC и программирования- М.: Высш.шк.,1992.

4. Скэнлон Л. Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера –М.: Радио и связь, 1991.

Читайте также:  Владею английским и французским языком или языками

5. Зубков С.В. Ассемблер. Язык неограниченных возможностей

Источник

Интересные факты из жизни