Инфоурок Информатика Другие методич. материалыПрактическая работа на тему "Программирование арифметических и логических команд (часть 1)"

Практическая работа на тему "Программирование арифметических и логических команд (часть 1)"

Скачать материал

Практическая работа №2.

Тема: Программирование арифметических и логических команд (часть 1).

Цель: Практическое освоение составления простейших программ на языке Ассемблера и работы с программами TASM и TLINK.

 

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

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

 

Исходный модуль программы на Ассемблере представляет собой последовательность строк, имеющих следующий формат:

 

[метка] команда [операнд(ы)] [комментарий]

 

После метки ставится двоеточие, команда и операнд разделяются по крайней мере одним пробелом ; если операндов несколько, то они разделяются запятыми; перед комментарием ставится точка с запятой. В квадратные скобки заключены необязательные компоненты.

 

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

 

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

 

имя SEGMENT [параметры]

 

имя ENDS

 

 

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

 

имя сегмента SEGMENT имя процедуры PROC

 

RET имя процедуры ENDP имя сегмента ENDS

 

 

Пример простой исходной программы на Ассемблере представлен ниже:

 

TITLE PROG1 ПРИМЕР РЕГИСТРОВЫХ ОПЕРАЦИЙ;

 

STACKSG SEGMENT PARA STACK 'Stack'

 

DB 12 DUP(?) STACKSG ENDS

 

CODESG SEGMENT PARA 'Code' BEGIN PROC FAR ASSUME SS:STACKSG,CS:CODESG,DS:NOTHING

 

PUSH DS; cохранение DS в стеке. (1)

 

SUB AX,AX ; формирование нуля в АХ. (2)

 

PUSH AX ; cохранение АХ в стеке. (3)

 

MOV AX,0123H; передача константы в регистр. (4)

 

ADD AX,0025H; сложение регистра с константой. (5)

 MOV BX,AX; передача из регистра в регистр. (6)

 

ADD BX,AX; сложение содержимого регистров. (7)

 MOV CX,BX; передача из регистра в регистр. (8)

 

SUB CX,AX; вычитание содержимого регистров (9)

 SUB AX,AX; формирование нуля в АХ. (10)

 

NOP; нет операции (задержка). (11)

 

RET; возврат из процедуры. (12)

 

BEGIN ENDP;КОНЕЦ ПРОЦЕДУРЫ.

 

CODESG ENDS;КОНЕЦ СЕГМЕНТА.

 

END BEGIN;КОНЕЦ ПРОГРАММЫ.

 

В приведенном примере директива ASSUME сообщает Ассемблеру соответствие между сегментными регистрами и именами сегментов.

 

Исходный текст программы на Ассемблере создается с использованием любого доступного текстового редактора и сохраняется на магнитном диске под именем *.ASM или *. TXT. Компилятор Турбо Ассемблер является программой в виде загрузочного файла TASM.EXE, работающей в режиме командной строки. Он вызывается командой

 

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

 

TASM/ZI PROG1 PROG1 PROG1

 

приводит к созданию из исходного файла PROG1.ASM объектного модуля PROG1.OBJ и файла листинга PROG1.LST. Параметр /ZI приводит к внесению в файл листинга полных сведений о номерах строк и именах исходного модуля.

 

С целью создания исполнительной программы необходимо произвести компоновку объектных модулей с библиотечными модулями. Компоновщик является программой с именем TLINK.EXE. Он может быть вызван командой

 

TLINK имя объектного модуля

 

После компоновки создается загрузочный файл PROG1.EXE, а также файл карты сборки PROG1.МАР.

 

Компоновка в режиме TLINK /t приводит к созданию исполняемого *.СОМ файла, а компоновка в режиме TLINK /v включает в файл исполняемой программы информацию, необходимую для ее инициализации и отладки.

 

Практическая часть

 

1. Изучить методические указания.

 

2. Используя текстовый редактор, создайте исходный модуль программы HELLO.ASM:

 

Data SEGMENT

 

Greet DB 'Привет, Маша!',13,10,'$' Data ENDS

 

Stack SEGMENT Stack

 

DB 100H DUP(?) ;стек размером 256 байтов.

 

Stack ENDS

 

ASSUME CS:Code, DS:Data, SS:Stack

 

Code SEGMENT Start:

загрузка номера сегмента (1) в регистр DS. (2) загрузка в DX адреса симв. строки. (3) задание функции вывода строки. (4) вывод строки. (5) завершение программы через (6) систем ную функцию возврата (7) в диспетчер MS DOS. (8)

 

MOV AX,DATA

 

MOV DS,AX

 

MOV DX,OFFSET Greet

 

MOV AH,9

 

INT 21H

 

MOV AL,0

 

MOV AH,4CH

 

INT 21H

 Code ENDS

 END Start; адрес начала программы.

 

3. Используя компилятор Турбо Ассемблер, создайте файлы HELLO.OBJ и HELLO.LST. Выведите на экран текст HELLO.LST и проанализируйте его.

 

4. Используя компоновщик TLINK, создайте файлы HELLO.EXE и HELLO.MAP.

 

5. Выведите на экран файл HELLO.MAP и ознакомьтесь с ним.

 

6. Убедитесь в работоспособности программы HELLO.

 

7. Проанализировать приведенную ниже программу HELLO.ASM и вставить в нее фрагмент, реализующий вывод на экран Вашей фамилии, имени, отчества с помощью символьной переменной STUDENT

 

8. Подготовить ответы на контрольные вопросы.

 

 

Контрольные вопросы

 

1. Какова цель сегментации памяти?

 

2. Что такое базовый адрес сегмента?

 

3. Какие значения может принимать базовый адрес сегмента?

 

4. Каков максимальный размер сегмента и почему?

 

5. Какие типы сегментов использует ассемблерная программа?

 

6. Какими директивами описывается сегмент?

 

7. Каково назначение директивы ASSUME?

 

8. Каково назначение директив TITLE и PAGE?

 

9. Что такое процедура и какими директивами она определяется?

 

10. Что такое ассемблирование и компоновка программы?

 

11. Каково содержание файлов с расширениями *.ASM, *.LST, *.OBJ, *.MAP, *.EXE?

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Практическая работа на тему "Программирование арифметических и логических команд (часть 1)""

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Директор риск-менеджмента

Получите профессию

Копирайтер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 670 699 материалов в базе

Материал подходит для УМК

Скачать материал

Другие материалы

Тренировочная работа по информатике "Алгоритмизация и программирование" (11 класс)
  • Учебник: «Информатика (углублённый уровень) (в 2 частях)», Семакин И.Г., Хеннер Е.К., Шестакова Л.В.
  • Тема: Глава 2. Методы программирования
  • 15.06.2018
  • 5397
  • 86
«Информатика (углублённый уровень) (в 2 частях)», Семакин И.Г., Хеннер Е.К., Шестакова Л.В.

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 20.06.2018 1486
    • DOCX 18.2 кбайт
    • 12 скачиваний
    • Оцените материал:
  • Настоящий материал опубликован пользователем Мельников Николай Алексеевич. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Мельников Николай Алексеевич
    Мельников Николай Алексеевич
    • На сайте: 6 лет и 10 месяцев
    • Подписчики: 0
    • Всего просмотров: 140924
    • Всего материалов: 21

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Менеджер по туризму

Менеджер по туризму

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Педагогическая деятельность по проектированию и реализации образовательного процесса в общеобразовательных организациях (предмет "Информатика")

Учитель информатики

300 ч. — 1200 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Этот курс уже прошли 20 человек

Курс профессиональной переподготовки

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

Специалист по формированию электронного архива

600 ч.

9840 руб. 5600 руб.
Подать заявку О курсе
  • Сейчас обучается 30 человек из 22 регионов
  • Этот курс уже прошли 36 человек

Курс повышения квалификации

Специфика преподавания информатики в начальных классах с учетом ФГОС НОО

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 39 человек из 20 регионов
  • Этот курс уже прошли 284 человека

Мини-курс

Стратегии клиентоориентированного бизнеса

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Российское движение школьников (РДШ): воспитательная работа

3 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Этот курс уже прошли 13 человек

Мини-курс

Организация и планирование воспитательной работы в СПО

6 ч.

780 руб. 390 руб.
Подать заявку О курсе