Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум [ассемблер].doc
Скачиваний:
92
Добавлен:
02.05.2014
Размер:
562.18 Кб
Скачать

Программа типа ехе

ЕХЕ-программы немного сложнее в исполнении, но для них отсутствует ограничение размера в 64 килобайта, так что все достаточно большие программы используют именно этот формат. Конечно, ассемблер позволяет уместить и в 64 килобайтах весьма сложные и большие алгоритмы, а все данные хранить в отдельных файлах, но ограничение размера все равно очень серьезно, и даже чисто ассемблерные программы могут с ним сталкиваться.

; hello-2.asm

; Выводит на экран сообщение "Hello World!" и завершается

.model small ; модель памяти, используемая для ЕХЕ

.stack 100h ; сегмент стека размером в 256 байт

.code

start: mov ax,DGROUP ; сегментный адрес строки message

mov ds,ax ; помещается в DS

mov dx,offset message

mov ah,9

int 21h ; функция DOS "вывод строки"

mov ax,4C00h

int 21h ; функция DOS "завершить программу"

.data

message db "Hello World!",0Dh,0Ah,'$'

end start

В этом примере определяются три сегмента — сегмент стека директивой .STACK размером в 256 байт, сегмент кода, начинающийся с директивы .CODE, и сегмент данных, начинающийся с .DATA и содержащий строку. При запуске ЕХE-программы регистр DS уже не содержит адреса сегмента со строкой message (он указывает на сегмент, содержащий блок данных PSP), а для вызова используемой функции DOS этот регистр должен иметь сегментный адрес строки. Команда MOV AX,DGROUP загружает в АХ сегментный адрес группы сегментов данных DGROUP, a MOV DS,AX копирует его в DS. Для ассемблеров MASM и TASM можно использовать вместо DGROUP предопределенную метку «@data», но единственная модель памяти, в которой группа сегментов данных называется иначе, — FLAT (ей мы пока пользоваться не будем). И наконец, программы типа ЕХЕ должны завершаться системным вызовом DOS 4Ch: в регистр АН помещается значение 4Ch, в регистр AL помещается код возврата (в данном примере код возврата 0 и регистры АН и AL загружаются одной командой MOV AX,4C00h), после чего вызывается прерывание 21h.

Компиляция hello-2.asm:

Для TASM:

tasm hello-2.asm

tlink /x hello-2.obj

Размер получаемого файла hello-2.exe — 559 байт.

Содержание отчета:

  1. Название работы

  2. Цель работы

  3. Приборы и оборудование

  4. Краткие теоретические сведения

  5. Индивидуальное задание

  6. Распечатанный текст программы

  7. Выводы.

Вопросы к защите лабораторной работы.

1. Этапы получения .СОМ и .ЕХЕ файлов.

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

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

Цель работы:научиться применять команды условной передачи управления при написании программ

Приборы и оборудование:IBM-совместимый компьютер,QC2.00wASM.

Вычислить выражение

1 вариант

x+13 15<x

z=y*35+5 5<x<=15

 x+y+5 x<=5

x – int

y – char

2 вариант

x*3+18 25<=y

z=y*3+5*x17<=y<25

 x*y+7 y<17

x – unsigned long

y – unsigned char

3 вариант

 y–12 35<x

z=  x/3+5*y –7<=x<=35

 x%y+5 x<– 7

x – char

y–long

4 вариант

x*18 12<=x

z=y*35+5 2<x<12

 x+y%5 x<=2

x – unsigned int

y – unsigned long

5 вариант

 y%10 105 <= x

z=  y*7+x*2 –15 <= x< 105

 y+15 x < –15

x – int

y–int

6 вариант

y+10%x17 <=y

z=  x – 35+y 10 < y < 17

 y*7+5 y <= 10

x – unsigned char

y – unsigned long

7 вариант

 y–13 –15 < x

z=  y+x+50 –50 < x <= –15

 x*y+1 x <= –50

x – int

y – char

8 вариант

 y%13 150 <= y

z=  y/5+50 50 < y < 150

 x/3+y+5 y <= 50

x – unsigned int

y – unsigned long

9 вариант

y/ 13 155 <y

z=x+35+y%5 –5 <y<= 155

 x+y y <= –5

x – long

y – long

10 вариант

x+13 15<x

z=y/5+x/5 5 <x<= 15

 x+y–5 x <= 5

x – unsigned int

y – unsigned long

11 вариант

 y%7+130 121 < y

z=  y+35+x*5 –17 < y <= 121

 x+2 y <= –17

x – int

y – long

12 вариант

 y+13 88 < y

z=  x/5+y%5 32 < y<= 88

 x+y y <= 32

x – unsigned char

y – unsigned int

13 вариант

 x+y+13 –15 < x

z=  x*3+y/5 –25 < x <= –15

 x/y+5 x <= –25

x – char

y–char

14 вариант

(x+y)%7 159 <=x

z=  y*(35+x) 7 <= x <159

 (x+y)*5 x < 7

x – unsigned char

y – unsigned long

15 вариант

 x+13%y 150 < y+x

z=  y*35%x 57 < y+x <= 150

 x+y+2 y+x <= 57

x – long

y – int

Содержание отчета

  1. Титульный лист

  2. Наименование работы

  3. Цель работы

  4. Приборы и оборудованеи

  5. Индивидуальное задание

  6. Исходный модуль программы

  7. Отладка на конкретном примере

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

«Изучение команд управления циклами»

Цель работы:научиться испоьзовать команды управления циклами при написании ассемблерных программ.

Индивидуальные задания

  1. y=

  2. y=

  3. y=

  4. y=

  5. y=

  6. y=

  7. y=

  8. y=

  9. y=

  10. y=

  11. y=

  12. y=

  13. y=

  14. y=

  15. y=

Для четных вариантов i – char

Для нечетных вариантов i–unsignedchar

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

«Изучение команд обработки строк»

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

Замечания: реализовать работу со строками при помощи команд обработки строк

Индивидуальные задания

  1. Написать процедуру копирования строки.

  2. Написать процедуру объединения двух строк.

  3. Дана строка. Преобразовать строчные буквы в прописные. Рассмотреть только латинский алфавит

  4. Дана строка. Преобразовать строчные буквы в прописные. Рассмотреть только русский алфавит

  5. Дана строка. Преобразовать прописные буквы в строчные. Рассмотреть только латинский алфавит.

  6. Дана строка. Преобразовать прописные буквы в строчные. Рассмотреть только русский алфавит.

  7. Написать процедуру, осуществляющую сравнение строк. Рассмотреть только латинский алфавит.

  8. Написать процедуру, осуществляющую сравнение строк. Рассмотреть только русский алфавит.

  9. Написать процедуру, выводящую строку на экран путем прямого доступа к видеопамяти.

  10. Зашифровать и расшифровать исходную строку.

  11. Написать процедуру копирования массива типа char. Во входных параметрах необходимо задать количество элементов массива.

  12. Написать процедуру копирования массива типа long. Во входных параметрах необходимо задать количество элементов массива.

  13. Обменять между собой содержимое 0-й и 1-й страниц видеопамяти.

  14. Сохранить содержимое 0-й страницы видеопамяти в файле на диске.

  15. Очистить экран заданным цветом путем прямого доступа к видеопамяти.

Соседние файлы в предмете Архитектура вычислительных систем