Смекни!
smekni.com

Выполнение арифметических действий и строковых операций (стр. 1 из 2)

АННОТАЦИЯ

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

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

В курсе "машинно-ориентированное" программирование мы изучили язык ассемблера для процессора Intel 8086. Завершающим этапом данного курса является написание расчетно-графической работы.


Содержание

Введение

1. Задания к расчетно-графической работе

2. Теоретическая часть

2.1 Уровни языков программирования

2.2 Преимущество языка ассемблера

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

2.4 Синтаксис языка ассемблера

3. Арифметика

3.1 Алгоритм

3.2 Текст программы

3.3 Листинг кода библиотеки, в которой находятся макросы, вызываемые в данной программе

4.Строки

4.1 Алгоритм

4.2 Текст программы

4.3 Листинг кода библиотеки, в которой находятся макросы, вызываемые в данной программе

Вывод

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

ВВЕДЕНИЕ

Курсовая работа по курсу «Машинно-ориентированное программирование» является завершающим этапом в изучении данной дисциплины.

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

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


1. Задания к работе

1. Арифметика

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

1.2. Написать на языке Ассемблера программу корректного ввода исходных данных (с контролем допустимого диапазона) в таблицу и вывода полученного результата в виде таблицы.

2. Строки

2.1. Написать модуль на языке Ассемблера для обработки строк.

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

2.4. Произвести тестовые проверки, сделать анализ результатов.

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


2.Теоретическая часть

2.1 Уровни языков программирования

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

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

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

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

2.2 Преимущество языка ассемблера

Знание и использование языка программирования дает следующие преимущества:

· ясен способ взаимодействия программы с операционной системой, процессором и BIOS;

· доступен выбор способа представления и хранение данных в операционной памяти и во внешних накопителях;

· можно видеть, как процессор получает инструкции, как инструкции выполняются и как обрабатываются данные;

· доступно непосредственное управление внешними устройствами;

Кроме того, язык ассемблера полезен благодаря следующим свойствам:

· программа, написанная на ассемблере, значительно компактнее и быстрее выполняется, чем написанная на языке программирования высокого уровня;

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

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

· резидентные программы (находящиеся в памяти во время выполнения других программ) и обработчики прерываний (выполняющие, например, операции ввода/вывода) почти всегда создаются на языке ассемблера.

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

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

Предложения на языке ассемблера бывают 4 типов:

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

2. Макрокоманды – оформляемые определенным образом предложения текста программы, замещаемые во время трансляции другими предложениями.

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

4. Строки комментариев – любые последовательности символов, транслятором полностью игнорируются.

2.4 Синтаксис языка ассемблера

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

Общий формат команд на языке ассемблера.

рис.1


Команда

рис.2

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

КОП – код операции, мнемоническое обозначение машинной команды или макрокоманды.

Операнды – части команды (макрокоманды) обозначающие объекты над которыми производится действие.

Допустимые символы для написания текста программ:

· все латинские буквы (заглавные и строчные являются эквивалентными);

· цифры 0-9;

· символы ?, _ , @, $, &;

· разделители и знаки операций.

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

Лексемами являются:

1. Идентификаторы – последовательности допустимых символов, использующиеся для обозначения кодов операций, переменных, констант, меток. Идентификатор может состоять из 1 или нескольких символов. В качестве символов могут использоваться латинский алфавит, цифры, символы ?, _ , @, $, &. Идентификатор не может начинаться с цифры. Допустимая длина до 255 символов, при этом транслятор воспринимает только 32 первых. Существует возможность указывать транслятору различие заглавных и строчных букв.

2. Цепочки символов – это последовательность символов, заключенные в одинарные или двоичные кавычки.

3. Целые числа – в одной из следующих систем исчисления: 2-ой, 10-ой, 16-ой.

Отожествление чисел производится по следующим правилам:

а) 10-е числа не требуют указания каких-либо дополнительных символов (25, 16);

б) 2-е числа требуют, чтобы после них стояла буква b (10011010b)

в) 16-е числа имеют больше условий при записи: во-первых – они состоят как из цифр, так и из символов латинского алфавита; во-вторых – у транслятора могут возникнуть сложности с распознаванием 16-ого числа, так как число может начинаться как с цифры, так и с символа. Для этого 16-е число обязательно заканчивается латинской буквой h (019ch).

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

Операнды- это объекты (значение, регистры, ячейки памяти), на которые действуют инструкции или директивы или это объекты, которые уточняют действие инструкций и ли директив.

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


3. Арифметика

3.1 Алгоритм программы

Блок-схема алгоритма вычисления выражения