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

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

1. Основные сведения по программированию на ассемблере.

2. Листинг программы с комментариями на каждую команду (или группы команд, логически связанные).

3. Заполненная таблица хранения переменных в сегменте данных.

4. Заполненная таблица машинных кодов.

5. Полное описание каждого прерывания, используемого в программе;

6. Пояснение, что происходит в строках 20-22.

7. Пояснение, что делает программа.

8. Что произойдет, если в строке 23 поменять переменную message на переменную fin?

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

1. Что такое язык ассемблера? Как он связан с машинным языком?

2. Зачем нужны подпрограммы на языке ассемблера в программах на языках высокого уровня?

3. Перечислите этапы разработки программы на языке ассемблера.

4. Какие существуют режимы работы ассемблера? Чем они отличаются?

5. Напишите формат команды языка ассемблер.

6. Что такое программное прерывание?

7. Для чего нужны входные и выходные параметры сервиса?

8. Как определяются переменные в программе на языке ассемблера?

9. Как определяются сегменты в программе?

10. Каких типов бывают сегменты?

Задание на занятие

1. Сделать исполняемый модуль (файл с расширением exe) для программы:

1) masm

2) model small

3).stack 100h

4).data

5) message db 'Запустите эту программу в отладчике$'

6) perem_1 db 0ffh

7) perem_2 dw 3a7fh

8) perem_3 dd 0f54d567ah

9) mas db 10 dup ('0')

10) pole_1 db 5 dup (?)

11) adr dw perem_3

12) adr_full dd perem_3

13) fin db 'Конец сегмента данных программы$'

14).code

15) start:

16) xor bh,bh

17) mov dx,0a0fh

18) mov ah,02h

19) int 10h

20) mov ax,@data

21) mov ds,ax

22) mov ah,09h

23) mov dx, offset message

24) int 21h

25) mov ax,4c00h

26) int 21h

27) end start

2. Определить структуру программы (режим программирования, количество и виды сегментов, модель памяти)

3. Определить с помощью электронного справочника, что делает каждое программное прерывание, и с помощью Turbo Debugger – какие регистры меняются после каждого из них.

4. C помощью программы Turbo Debugger определить:

4.1. как хранятся переменные в сегменте данных. Заполните следующую таблицу:

Имя переменной Значение в теле программы Смещение в сегменте данных Значение в сегменте данных

4.2. машинные коды используемых команд. Заполните следующую таблицу, записывая команды по алфавиту:

Команда на языке ассемблера Машинный код в шестнадцатеричном виде

Лабораторная работа №7

Команды переходов и логических операций

Продолжительность: 4 часа.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: