Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Выполнение арифметических действий и строковых операций

Тип Реферат
Предмет Информатика
Просмотров
1598
Размер файла
40 б
Поделиться

Ознакомительный фрагмент работы:

Выполнение арифметических действий и строковых операций

АННОТАЦИЯ

Сердце персонального компьютера - микропроцессор, выполняющий арифметические, логические и вспомогательные операции, необходимые для решения задач. Первые микропроцессоры появились в конце 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 Алгоритм программы

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



3.2 Текст программы, реализующий алгоритм

.modelsmall

.386

.stack 100h

.data

str1 db 09h,0d5h ,"========",0B8h,0ah,0dh

db "Enter a ", 0b3h,09h, " ",0b3h,0ah,0dh

db 09h, 0c3h,"========",0b4h,0ah,0dh

db "Enter b ",0b3h,09h, " ",0b3h,0ah,0dh

db 09h, 0c3h,"========",0b4h,0ah,0dh

db "Result :",0b3h,09h, " ",0b3h,0ah,0dh

db 09h, 0d4h,"========",0beh,0ah,0dh, '$'

InBufa DB 7

kola DB ?

a DB ?, ?, ?, ?, ?, ?, ?

InBufb DB 7

kolb DB ?

b DB ?, ?, ?, ?, ?, ?, ?

Error DB "Input data ERROR !!!", 0dh, 0ah, '$'

DivErr DB "Dividing by Zero !!!", 0dh, 0ah, '$'

chA DW 0

chB DW 0

tabl DW 10000, 1000, 100, 10, 1

ResBin DW 0

ResBCD DB '+', '0', ?, ?, ?, ?, 0ah, 0dh, '$'

kol db 3

flag db 0

.code

include math.lib

.startup

cls

locate 0,0

mov ax,dgroup

mov ds,ax

cikl:

mov flag, 0

mov chA, 0

mov chB, 0

mov ResBin, 0

mov bp, offset ResBCD

mov ds:[bp], '+'

mov ds:[bp+1], '0'

mov ds:[bp+2], ?

mov ds:[bp+3], ?

mov ds:[bp+4], ?

mov ds:[bp+5], ?

mov al, 3

mov ah, kol

sub al, ah

imul ax, 7

locate 0, al

push ax

; Вывод таблицы

mov dx,offset str1

mov ah,09h

int 21h

; Ввод чисел

pop ax

push ax

inc al

locate 10, al

mov dx,offset InBufa

mov ah,0ah

int 21h

pop ax

push ax

add al, 3

locate 10, al

mov dx,offset InBufb

mov ah,0ah

int 21h

; Проверка на числа

prov InBufA

prov InBufB

; Проверка на знак

znak a

znak b

; ASCII > BIN

ASCII_2_BIN kola, chA

ASCII_2_BIN kolb, chB

funtion

; Bin 2 Ascii

mov cx, 5

mov bp, offset tabl

mov si, offset ResBCD

inc si

v:

mov bx, ds:[bp]

mov dx, 0

idiv bx

cmp al, 0

je nul

mov flag, 1

add al, 30h

mov ds:[si], al

inc si

jmp nol

nul: cmp flag, 0

je nol

mov ds:[si], 30h

inc si

nol: mov ax, dx

add bp, 2

loop v

; Выход_1

pop ax

add al, 5

locate 10, al

mov dx, offset ResBCD

mov ah, 09h

int 21h

locate 0, 35

dec kol

jnz cikl

; Выход

jmp ex

Er: cls

locate 25, 8

mov dx, offset Error

mov ah, 09h

int 21h

jmp ex

DEr: locate 25, 9

mov dx, offset DivErr

mov ah, 09h

int 21h

ex:

.exit(0)

END

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

IFDEF @Model

IFIDN @Model, <1>

TINYMODEL TYPEDEF

ENDIF

ENDIF

cls macro

push ax

push bx

push cx

push dx

mov cx,0

mov dh,24

mov dl,79

mov ah,6

mov al,0

mov bh,7

int 10h

pop dx

pop cx

pop bx

pop ax

endm

locate macro col,row

push dx

mov dh,row

mov dl,col

move_cursor

pop dx

endm

move_cursor macro

LOCAL ok,vs

push ax

push bx

cmp dh,24

jna ok

sub dh,dh

ok: cmp dl,79

jna vs

sub dl,dl

vs: mov ah,15

int 10h

mov ah,2

int 10h

pop bx

pop ax

endm

prov macro InBuf

local c1

mov bp, offset InBuf

inc bp

mov ch, 0

mov cl, ds:[bp]

dec cl

add bp, 2

c1: cmp byte ptr [ds:[bp]], 30h

jl Er

cmp byte ptr [ds:[bp]], 39h

ja Er

inc bp

loop c1

endm

znak macro per

local m1

cmp per, '-'

je m1

cmp per,'+'

jne Er

m1:

endm

ASCII_2_BIN macro kol, res

local p, plus

mov bp, offset kol

mov bx, offset kol

mov ax, 0

mov al, ds:[bx]

add bp, ax

mov ch, 0

mov cl, ds:[bx]

dec cl

mov bx, offset tabl

add bx, 8

mov ax, 0

mov dx, 0

p: mov ax, ds:[bx]

mov dl, ds:[bp]

sub dl, 30h

imul ax, dx

add res, ax

sub bx, 2

sub bp, 1

dec cx

jnz p

; Проверка на знак

mov bp, offset kol

add bp, 1

cmp ds:byte ptr[bp], '-'

jne plus

neg res

plus:

endm

funtion macro

;Задание:

; b / a - 1, если a>b;

;Y = -295, если a=b;

; (a - 235) / b, если a<b;

mov ax, chA

mov bx, chB

cmp ax, bx

jne net

cmp ax, 0

je equal

net:

mov bp, offset a

mov si, offset b

mov dl, ds:[bp]

mov dh, ds:[si]

cmp dl, dh

jl more

ja low

cmp dl, '-'

jne pl

cmp ax, bx

jg more

je equal

ja low

pl: cmp ax, bx

ja more

je equal

jl low

more: cmp al, 0

je DEr

mov ax, chB

mov bx, ax

and bx, 7FFFh

cmp ax, bx

je pluss

mov dx,0FFFFh

jmp did

pluss: mov dx, 0

did: idiv chA

sub ax,1

jmp www

equal: mov ax, 00h

sub ax,295

jmp www


low: cmp bl, 0

je DEr

mov ax,chA

sub ax,235

mov bx, ax

and bx, 7FFFh

cmp ax, bx

je plu2

mov dx,0FFFFh

jmp mnu2

plu2: mov dx, 0

mnu2:

idiv chB

www: mov bx, ax

and bx, 7FFFh

cmp ax, bx

je OK

neg ax

mov ResBCD, '-'

OK: mov ResBin, ax

endm


4. Строки

4.1 Блок-схема алгоритма обработки строки



4.2 Текст программы, реализующий данный алгоритм:

.model small

.586

.stack 100h

.data

Mes1 db "Input the first string",0ah,0dh,'$'

Mes2 db "Input the second string",0ah,0dh,'$'

Mes3 db "Input the simbol, from which you want to paste the second string",0ah,0dh,'$'


Str1 db 255

db ?

db 255 dup (0)

Str2 db 255

db ?

db 255 dup (0)

Char1 db 2

db ?

db 0,'$'

Res db "Result is:",0Ah,0Dh,'$'

Str db 255 dup (0)

.code

include string.lib

.startup

mov ax,dgroup

mov ds,ax

cls

locate 0,0

lea dx, Mes1

mov ah,09h

int 21h

lea dx, Str1

mov ah,0ah

int 21h

locate 0, 3

lea dx, Mes2

mov ah,09h

int 21h

lea dx, Str2

mov ah,0ah

int 21h

locate 0, 6

lea dx, Mes3

mov ah,09h

int 21h

lea dx, Char1

mov ah,0ah

int 21h

obrabotka

locate 0, 9

lea dx, Res

mov ah,09h

int 21h

lea dx, Str

mov ah,09h

int 21h

.exit(0)

END


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

IFDEF @Model

IFIDN @Model, <1>

TINYMODEL TYPEDEF

ENDIF

ENDIF

cls macro

push ax

push bx

push cx

push dx

mov cx,0

mov dh,24

mov dl,79

mov ah,6

mov al,0

mov bh,7

int 10h

pop dx

pop cx

pop bx

pop ax

endm

locate macro col,row

push dx

mov dh,row

mov dl,col

move_cursor

pop dx

endm

move_cursor macro

LOCAL ok,vs

push ax

push bx

cmp dh,24

jna ok

sub dh,dh

ok: cmp dl,79

jna vs

sub dl,dl

vs: mov ah,15

int 10h

mov ah,2

int 10h

pop bx

pop ax

endm

obrabotka macro

mov bp,offset Char1

add bp, 2

mov dl, ds:[bp]

mov bp,offset Str1

add bp, 1

mov cl, ds:[bp]

inc bp

mov si,offset Str2

add si, 1

mov ch, ds:[si]

inc si

mov bx, offset Str

inc bx

lp:

mov al,ds:[bp]

mov ds:[bx],al

cmp al,dl

je m1

inc bx

inc bp

dec cl

jnz lp

m1: inc bx

inc bp

lpo:

mov al,ds:[si]

mov ds:[bx],al

inc bx

inc si

dec ch

jnz lpo

lopa:

mov al,ds:[bp]

mov ds:[bx],al

inc bx

inc bp

dec cl

jnz lopa

inc bx

mov ds:[bx],'$'

endm


ВЫВОД

В данной работе были разработаны программы, направленные на выполнение арифметических действий и строковых операций.

Программы были написаны на языке низкого уровня BorlandTurboAssembler(TASM), для процессоров семейства Intel.

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

Были практически закреплены полученные навыки работы с TASM, знание о структуре языка и его синтаксиса.

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


Нет нужной работы в каталоге?

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

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

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

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

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

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно