14 мая 2018
1610

Форматы и системы команд, методы адресации. Квантованный учебный текст с заданиями в тестовой форме

Александр Рыбанов,

Лидия Макушкина

Волжский политехнический институт (филиал)

Волгоградский государственный технический университет

 

Опубликовано в ж. Педагогические измерения №2, 2015 г. С.50-57.

Аннотация

    В данной статье приводится квантованный учебный текст и задания в тестовой форме по дисциплине «Машинно-зависимые языки», для студентов направления 09.03.01 «Информатика и вычислительная техника». Приведены количественные метрики для оценки качества квантования представленного учебного текста. В учебном тексте рассмотрены системы команд микропроцессора Intel 8080, типы операндов и методы адресации. Представленный квантованный учебный текст и тестовые задания включены в авторскую автоматизированную обучающую систему по дисциплине «Машинно-зависимые языки»

    Ключевые слова: машинно-зависимые языки, микропроцессор, системы команд, режимы адресации, квантованный текст,  задания в тестовой форме, качество квантования

 

Введение

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

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

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

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

Таблица №1

Анализ качества квантования учебного текста

Метрика качества квантования учебного текста

Исходный текст

Квантованный текст

Сложность формальной удобочитаемости

4.586

3.782

Коэффициент лексического разнообразия

0.273

0.346

Коэффициент синтаксического разнообразия

0.952

0.936

 


 

Квантованный учебный текст

«Форматы и системы команд, методы адресации»

 

Типы предложений ассемблера

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

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

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

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

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

Примеры предложений ассемблера:

1) mov ax,bx

2) assume ds:data, cs:code, ss:stack

 

Формат команды ассемблера

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

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

Обязательным в команде ассемблера является только мнемокод. В зависимости от команды может не быть операндов, может быть один или два операнда.

Метка - служит для присвоения имени команде. На эту метку можно будет ссылаться из любой части программы. Она может содержать до 31-го символа и заканчиваться двоеточием и содержать символы алфавита от a до Z. и от a до z, цифры от 0 до 9 и символы "?", ".", "@", "_", "$". Метка не должна начинаться с цифры. Если используется «.», то она должна быть первым символом метки. Имя метки не должно совпадать с названием команд. В метку не должны вставляться пробелы.

Комментарии — должны быть отделены от команд ";". Это комментарии к команде, программе и блоку команд.

Мнемокод - это имя команды микропроцессора.

Поле операндов - в поле операндов может быть 0, 1 или 2 операнда в зависимости от типа команды. Операнд - часть команды, макрокоманды или директивы ассемблера, обозначающие объекты,  над которыми производятся действия. Операнды ассемблера описываются выражениями с числовыми и текстовыми константами, метками и идентификаторами переменных с использованием знаков операций и некоторых зарезервированных слов.

Если в команде 2 операнда, то первый операнд называется приемником, а второй источником.

Классификация операндов

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

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

Перемещаемые операнды - любые символьные имена, представляющие некотрые адреса памяти.

Счетчик адреса - специфический вид операнда. Он обозначается "$". Когда транслятор ассемблера встречает в исходной программе символ "$", то подставляет вместо него текущее значение счетчика адреса. Значение счетчика адреса, или как его иногда называют счетчика размещения, представляет собой смещение текущей машинной команды относительно начала сегмента кода.

Регистровый операнд - это просто имя регистра.

Базовый и индексный операнды - используется для косвенной адресации

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

Записи - используется для доступа к битовому полю некоторой записи.

 

Режимы адресации

Существует семь основных режимов адресации:

1) Регистровая адресация;

2) Непосредственная адресация;

3) Прямая адресация;

4) Косвенная регистровая адресация;

5) Адресация по базе;

6) Прямая адресация с индексированием;

7) Адресация по базе с индексированием;

Микропроцессор по формату записи операнда определяет тип адресации.

 

 

Режимы адресации

Формат операнда

Регистр сегмента

Регистровый

регистр (кроме ip)

Не используется

Непосредственный

данные

Не используется

Прямой

сдвиг метка

DS DS

Косвенный регистровый

[BX] [BP] [DI] [SI]

DS SS DS DS

По базе

[BX]+сдвиг

[BP]+ сдвиг

DS

CS

Прямой индексированием

[DI]+сдвиг

[SI]+сдвиг

DS

DS

По базе с индексированием

[DХ][SI]+сдвиг

[BX][SI]+сдвиг

[BP][SI]+сдвиг

[BP][DI]+сдвиг

DS

DS

SS

SS

 

 

 

Регистровая и непосредственная адресация

При регистровой адресации микропроцессор извлекает операнд из регистра(или загружает его в регистр).

Непосредственная   адресация позволяет  Вам указывать 8- или   16-битовое значение константы в качестве операнда-источника. Эта константа содержится в команде, а не в регистре или в ячейке памяти.

При таком способе адресации необходимо помнить о диапазоне чисел, соответствующих 8-или 16-битовых значений.

Ассемблер всегда расширяет знак при пересылке непосредственных значений в операнд-приемник.

Примеры:

1) Регистровая адресация: MOV AX,CX

2) Непосредственная адресация: MOV CX,500

 

Прямая адресация

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

Существует абсолютная и относительная прямая адресация.

Относительная прямая адресация: используется в командах перехода

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

Пример:

MOV AX, Table

Table:

 

Косвенная регистровая адресация

При косвенной регистровой адресации исполнительный адрес операнда содержится в базовом регистре BX, в регистре указателя BP или индексном регистре (SI или DI). Косвенные регистровые операнды надо заключать в квадратные скобки, чтобы отличить их от регистровых операндов.

Для загрузки адреса в BX используется операция OFFSET(смещение) к адресу ячейки памяти.

Примеры:

1) Косвенная регистровая адресация: MOV AX,[BX]

2) Использование операции OFFSET:

MOV BX, OFFSET TABLE

MOVAX,[BX]

 

Адресация по базе

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

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

Примеры:

  1. MOVAX,[BX]+4

  2. MOV AX,4[BP]

  3. MOVAX,[BP+4]

 

Прямая адресация с индексированием

При прямой адресации с индексированием исполнительный адрес вычисляется как сумма значений сдвига и индексного регистра (DI или SI). Этот тип адресации удобен для доступа к элементам таблицы, когда сдвиг указывает на начало таблицы, а индексный регистр - на ее элемент.

Пример:

MOV DI,2

MOV AL,B_TABLE[DI]

Загрузится 3-й элемент таблицы.

 

Адресация по базе с индексированием

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

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

MOV AX, SMECH[BX][DI]

Начальный адрес в BX, в DI сдвиг блока(номер строки), а SMECH - сдвиг

Примеры:

  1. MOV AX,[BX+2+DI]

  2. MOV AX,[DI+BX+2]

  3. MOV AX,[BX+2][DI]

  4. MOVAX,[BX][DI+2]

 

ТЕСТОВЫЕ ЗАДАНИЯ

В таблице 2 представлены данные по покрытию фрагментов квантованного текста  заданиями.

Таблица №2

Покрытие фрагментов квантованного текста тестовыми заданиями

Фрагмент квантованного текста

Номера тестовых заданий

Количество тестовых заданий

Типы предложений ассемблера

1, 16

2

Формат команды ассемблера

2, 3, 4

3

Классификация операндов

5, 6, 7

3

Режимы адресации  

8, 9

2

Регистровая и непосредственная адресация

10, 17

2

Прямая адресация

11, 18

2

Косвенная регистровая адресация

12, 19

2

Адресация по базе

13, 20

2

Прямая адресация с индексированием

14, 21

2

Адресация по базе с индексированием

15, 22

2

 

 

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

1. В ЯЗЫКЕ АССЕМБЛЕР СУЩЕСТВУЮТ

1) аналоги машинных команд

2) макрокоманды

3) директивы

4) системные команды

5) управляющие команды

 

2. ВЕРНЫЙ ФОРМАТ КОМАНДЫ

1) [Метка:] Мнемокод [операнд] [;комментарий]

2) [Метка:] [Мнемокод] [операнд] [;комментарий]

3) Метка: Мнемокод [операнд] [;комментарий]

4) Метка: Мнемокод операнд ;комментарий

 

3. МНЕМОКОД - ЭТО

1)  имя команды микропроцессора

2) любая арифметическая команда

3) любая команда управления

4) команда манипулирования битами

 

4. МЕТКА СЛУЖИТ ДЛЯ

1)  присвоения имени команде

2) выполнения переходов в качестве имени строки

3) именования области памяти

 

5. ТИП ОПЕРАНДА ЯВЛЯЮЩИЙСЯСЯ РЕГИСТРОМ, НАЗЫВАЕТСЯ:

1) адресным операндом

2) перемещаемым операндом

3) счетчиком адреса

4) структурным операндом

5) регистровым операндом

6) базовым и индексным операндом

 

6. ТИП ОПЕРАНДА ХАРАКТЕРИЗУЮЩИЙСЯ БАЗОВЫМ АДРЕСОМ И СМЕЩЕНИЕМ, НАЗЫВАЕТСЯ

1) адресным операндом

2) перемещаемым операндом

3) счётчиком адреса

4) структурным операндом

5) регистровым операндом

6) базовым и индексным операндом

 

7. РАСПОЛАГАЮЩИЙСЯ В ОПЕРАТИВНОЙ ПАМЯТИ ОПЕРАНД ЯВЛЯЕТСЯ

1) адресным операндом

2) перемещаемым операндом

3) счетчиком адреса

4) структурным операндом

5) регистровым операндом

6) базовым и индексным операндом

 

8. ЧИСЛО ОСНОВНЫХ РЕЖИМОВ АДРЕСАЦИИ

1) 5

2) 7

3) 9

4) 15

 

9. СУЩЕСТВУЮТ ВИДЫ АДРЕССАЦИИ:

1) регистровая

2) по счетчику адреса

3) по базе

4) по индексу

5) комбинированная

 

10. РЕГИСТРОВАЯ АДРЕСАЦИЯ ПОКАЗАНА В ПРИМЕРЕ

1) MOV AX,BX

2) MOV CX,250

3) MOVAX,[BX]

4) MOV AX, ‘Имя метки’

5) MOV AX,[BX]+7

6) MOVAX,[BX+3+SI]

 

11. ПРЯМАЯ АДРЕСАЦИЯ ПОКАЗАНА В ПРИМЕРЕ

1) MOV AX,CX

2) MOV CX,500

3) MOVAX,[BP]

4) MOV AX, ‘Имя метки’

5) MOV AX,[BX]+4

6) MOVAX,[BX+2+DI]

 

12. КОСВЕННАЯ РЕГИСТРОВАЯ АДРЕСАЦИЯ ПОКАЗАНА В ПРИМЕРЕ

1) MOV AX,DX

2) MOV CX,100

3) MOVAX,[BX]

4) MOV AX, ‘Имя метки’

5) MOV AX,[BP+2]

6) MOVAX,[BX+DI+3]

 

13. АДРЕСАЦИЯ ПО БАЗЕ ПОКАЗАНА В ПРИМЕРЕ

1) MOV AH,CH

2) MOV BX,60

3) MOVAX,[BP]

4) MOV AX, ‘Имя метки’

5) MOV AX,[BX]+1

6) MOVAX,[BX+1+DI]

 

14. ПРЯМАЯ АДРЕСАЦИЯ С ИНДЕКСИРОВАНИЕМ ПОКАЗАНА В ПРИМЕРЕ

1) MOV CL,DL

2) MOV AL,30

3) MOVAX,[SI]

4) MOV AX, ‘Имя метки’

5) MOV AX,[BX]+6

6) MOVAX,[BP+6+DI]

 

15. АДРЕСАЦИЯ ПО БАЗЕ С ИНДЕКСИРОВАНИЕМ ПОКАЗАНА В ПРИМЕРЕ

1) MOV DH,BL

2) MOV BL,252

3) MOVAX,[SI]

4) MOV AX, ‘Имя метки’

5) MOV AX,[BP]+5

6) MOVAX,[BX+2+DI]

7) MOVAX,[BX+SI+1]

 

16. ВЕРНЫЕ УТВЕРЖДЕНИЯ

1) команды представляют собой символические аналоги машинных команд

2) макрокоманды - обычные предложения текста программы, которые остаются неизменными во время трансляции

3) директивы являются указанием транслятору ассемблера на выполнения некоторых действий

4) строки комментариев выполняются транслятором

 

17. ПРЕДЛОЖЕНИЕ MOV AH,AL ЯВЛЯЕТСЯ ПРИМЕРОМ

1) регистровой адресации

2) прямой адресации

3) косвенной регистровой адресации

4) адресации по базе

5) прямой адресации с индексированием

6) адресации по базе с индексированием

 

18. ПРЕДЛОЖЕНИЕ MOV AX, ‘Имя метки’  ЯВЛЯЕТСЯ ПРИМЕРОМ АДРЕСАЦИИ

1) регистровой

2) прямой

3) косвенной регистровой

4) по базе

5) прямой, с индексированием

6) по базе, с индексированием

 

19. ПРЕДЛОЖЕНИЕ MOV BX,[DX] ЯВЛЯЕТСЯ ПРИМЕРОМ АДРЕСАЦИИ

1) регистровой

2) прямой

3) косвенной регистровой

4) по базе

5) с индексированием

6) по базе, с индексированием

 

20. ПРЕДЛОЖЕНИЕ MOV CX,[BX]+1+3 ЯВЛЯЕТСЯ ПРИМЕРОМ АДРЕСАЦИИ

1) регистровой

2) прямой

3) косвенной, регистровой

4) по базе

5) прямой, с индексированием

6) по базе, с индексированием

 

21. ПРЕДЛОЖЕНИЕ MOV AL,MASIV[SI] ЯВЛЯЕТСЯ ПРИМЕРОМ АДРЕСАЦИИ

1) регистровой

2) прямой

3) косвенной, регистровой

4) по базе

5) прямой, с индексированием

6) по базе, с индексированием

 

22. ПРЕДЛОЖЕНИЕ MOV CL,[BX][SI] ЯВЛЯЕТСЯ ПРИМЕРОМ АДРЕСАЦИИ

1) регистровой

2) прямой

3) косвенной регистровой

4) по базе

5) прямой, с индексированием

6) по базе, с индексированием

 

[1] Опубликовано в ж. «Педагогическая диагностика» 2, 2015

[2]           Аванесов В.С. Применение заданий в тестовой форме и квантованных учебных текстов в новых образовательных технологиях // Педагогические измерения. 2012. № 2. С. 75-91.

[3]           Рыбанов А. Анализ качества квантования учебного текста // Педагогические измерения. 2014. № 1. С. 3-16

[4]           Свид. о гос. регистрации программы для ЭВМ № 2013611600 от 28 января 2013 г. РФ, МПК. Программный модуль построения онтологической модели структуры учебного курса / Рыбанов А.А., Макушкина Л.А., Макушкин И.А.; ВолгГТУ. - 2013.

[5]           Свид. о гос. регистрации программы для ЭВМ № 2014611622 от 06 февраля 2014 г. РФ, МПК. Онтологически-ориентированный программный модуль обучения и контроля знаний / Рыбанов А.А., Макушкина Л.А.; ВолгГТУ. - 2014.

[6]           Макушкина Л.А., Рыбанов А.А., Приходько Е.А. Электронный учебник как знаковое средство построения и организации обучения // Известия Волгоградского государственного технического университета. 2009. Т. 6. № 10 (58). С. 98-100.

[7]           Рыбанов А. Количественные метрики для оценки качества квантования учебной информации // Педагогические измерения. 2013. № 4. С. 3-12.

Рейтинг всех персональных страниц

Избранные публикации

Как стать нашим автором?
Прислать нам свою биографию или статью

Присылайте нам любой материал и, если он не содержит сведений запрещенных к публикации
в СМИ законом и соответствует политике нашего портала, он будет опубликован