Шпаргалка по предмету "Основы информатики"

Автор работы: Пользователь скрыл имя, 18 Марта 2015 в 02:52, шпаргалка

Описание работы

Ответы на вопросы к экзамену по предмету "Основы информатики".

Файлы: 1 файл

Архитектура ЭВМ.docx

— 219.75 Кб (Скачать файл)

код

обозначение

операция

01

ADD

Сложение

02

SUB 

Вычитание

03

MUL

Умножение

04

MUL

Деление


 

СТРУКТУРА ПРОГРАММЫ: программа на языке Ассемблер содержит такие блоки: - ДЕКЛАРАТИВНАЯ часть - описание символических имен данных и адресов, которые используют в программе, а также директивы выделения памяти для переменных и указания значений констант (посредством директивы Ассемблера); - блок ИНИЦИАЛИЗАЦИИ - настройка портов и блоков периферийных функций на необходимые режимы работы, инициализация стека (посредством команд); - блок РЕАЛИЗАЦИИ алгоритмов и функций управления (посредством команд).

Модель памяти SMALL.

Small (малая). Эта модель хорошо подходит для небольших прикладных программ. Сегменты кода и данных расположены отдельно друг от друга и не перекрываются, что позволяет иметь 64К кода программы и 64К данных и стека. Используются только указатели near.

Модель small поддерживает один сегмент кода и один сегмент данных. Данные и код при использовании этой модели адресуются как near (ближние).

SMALL — код  размещается в одном сегменте, а данные и стек — в другом (для их описания могут применяться  разные сегменты, но объединенные  в одну группу). Эту модель памяти  также удобно использовать для  создания программ на ассемблере; model small, В данной модели памяти код размещается в одном сегменте, а данные и стек в другом, для их описания могут применяться разные сегменты, но объединённые в одну группу. В малой (small) модели памяти программа занимает два стандартных сегмента: сегмент кода и сегмент данных, в котором размещен также стек. Как код, так и данные программы не могут превышать 64 Кбайтов; следовательно, суммарный размер программы не может превышать 128 Кбайтов. Малая модель подходит для большинства программ и потому назначается компилятором по умолчанию.  В малой модели для доступа к объектам кода или данных используются указатели типа near. Можно, однако, изменить это умолчание, применяя модификаторы far или huge для объявления элементов данных и модификатор far для функций.

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

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

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

3) директивы, являющиеся указанием транслятору  ассемблера на выполнение некоторых  действий. У директив нет аналогов  в машинном представлении;

4) строки  комментариев, содержащие любые  символы, в том числе и буквы  русского алфавита. Комментарии  игнорируются транслятором.

рограмма на ассемблере состоит из предложений, каждое из которых записывается на отдельной строке. <предложение>... Переносить предложение на следующую строку или записывать два предложения на одной строке нельзя. Если более 131 символа, то 132-й и далее - игнорируются. Правила расстановки пробелов:

¾ пробел обязателен между стоящими рядом идентификаторами и/или числами,

¾ внутри идентификаторов и чисел пробелы недопустимы,

¾ там где допустим один пробел, допустимо и несколько пробелов подряд. Предложения в ассемблере делятся на три группы по смыслу: комментарии, команды, директивы (приказы ассемблеру). Рассмотрим.

комментарии. Не отражаются на ходе выполнения программы, игнорируются компилятором и предназначены для людей. Могут быть любые символы. Комментарием считается любая строка, начинающаяся со знака ; или пустая строка. Возможен многострочный комментарий COMMENT <маркер> <текст>. В качестве комментария берется первый за словом COMMENT символ, отличный то пробела COMMENT * бред* бред.

Команды. Это символьная форма записи машинных команд.

[<метка>:] <мнемокод> [<операнды>] [;<комментарий>]

Метка с двоеточием, а также точка с запятой и комментарий могут отсутствовать.

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

Мнемокод (мнемонический код) является обязательной частью команды и указывает ту операцию, которую должна выполнить команда. Записывается в символьной форме.

Операнды, если они есть отделяются друг от друга запятыми.

Комментарий - после знака ; не влияет на смысл команды, а лишь поясняет ее. Действителен для данной строки.

Регистры указываются своими именами, например:

MOV AX,SI ;оба операнда - регистры

Непосредственные операнды задаются константными выражениями (их значениями являются константы-числа), например:

MOV BH,5 ;5 - непосредственный операнд

MOV DI,SIZE X ;SIZE X (число байтов, занимаемых переменной X) - ;непосредственный операнд

Адреса описываются адресными выражениями (например, именами переменных), которые могут быть модифицированы по одному или двум регистрам; например, в следующих командах первые операнды задают адреса:

MOV X,AH

MOV X[BX][DI],5

MOV [BX],CL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13.Ассемблер. Описание сегмента данных. Способы  адресации памяти.

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

Язык ассемблера (автокод) — язык программирования низкого уровня. В отличие от языка машинных кодов, позволяет использовать более удобные для человека мнемонические (символьные) обозначения команд. При этом для перевода программы с языка ассемблера в понимаемый процессором машинный код требуется специальная программа, называемая ассемблером.

Содержание языка

Команды языка ассемблера один к одному соответствуют командам процессора, фактически, они представляют собой более удобную для человека символьную форму записи (мнемокод) команд и их аргументов. При этом одной команде языка ассемблера может соответствовать несколько команд процессора. (http://www.samvel.net/text/lib/00034542.txt)

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

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

Каждая модель (или семейство) процессоров имеет свой набор команд и соответствующий ему язык ассемблера. Наиболее популярные синтаксисы — Intel-синтаксис и AT&T-синтаксис.

Существуют компьютеры, реализующие в качестве машинного язык программирования высокого уровня (Forth, Lisp, Эль-76); фактически, в них он является языком ассемблера.

Описание сигмента данных

Сегмент данных

Сегмент данных содержит определенные данные, константы и рабочие области, необходимые программе. Регистр сегмента данных (DS) адресует данный сегмент.

Для хорошего понимания, как работает программа на ассемблере, нужно очень четко представлять себе организацию сегментов. Применительно к процессорам Intel Pentium термин “сегмент” имеет два значения:

Область физической памяти заранее определенного размера. Для 16-разрядных процессоров размер сегмента физической памяти не может превышать 64 Кбайт, в то время как для 32-разрядных может достигать 4 Гбайт.

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

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

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

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

Логические сегменты могут содержать три основных компонента программы: программный код, данные и стек. Макроассемблер MASM обеспечивает правильное отображение этих компонентов на физические сегменты памяти, при этом сегментные регистры CS, DS и SS содержат адреса физических сегментов памяти.

Способы адресации памяти.

Задача адресации заключается в указании на текущую ячейку памяти, к которой происходит обращение процессора. Адрес текущей ячейки как правило записывается в один или несколько регистров процессора. Методы адресации памяти имеют особое значение при программировании на языке низкого уровня (языке ассемблера). Существует два вида адресации: прямая и косвенная

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14.Ассемблер. Команды пересылки данных. Арифметические  команды

Язык ассемблера (автокод) — язык программирования низкого уровня. В отличие от языка машинных кодов, позволяет использовать более удобные для человека мнемонические (символьные) обозначения команд. При этом для перевода программы с языка ассемблера в понимаемый процессором машинный код требуется специальная программа, называемая ассемблером.

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

Команды пересылки данных.

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

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

– команды общего назначения,

– команды ввода-вывода,

– команды пересылки адреса,

– команды пересылки флагов.

Основная команда общего назначения MOV (move - переслать) может пересылать байт или слово между регистром и ячейкой памяти или между двумя регистрами. Она может также пересылать непосредственно адресуемое значение в регистр или в ячейку памяти.

Команда обмена XCHG (exchange - обменять) меняет между собой значения двух регистров или регистра и ячейки памяти. Однако она не может выполнить обмен значений регистров сегмента.

Команды ввода-вывода используются для взаимодействия с периферийными устройствами системы. Они имеют формат

IN аккумулятор, порт 

OUT порт, аккумулятор, где аккумулятор — регистр AL при  обмене байтами или регистр  АХ при обмене словами. Операндом  порт может быть десятичное  значение от 0 до 255, что позволяет  адресоваться к 256 устройствам.

Информация о работе Шпаргалка по предмету "Основы информатики"