
- •Им.В.И.Ульянова (Ленина)» (сПбГэту)
- •По дисциплине
- •140400.62 – “Электроэнергетика и электротехника" Санкт-Петербург
- •Методические указания к проведению лабораторного практикума по дисциплине “Вычислительные машины системы и сети” автор доц. Каф. Вт а.А. Валов
- •Необходимые пояснения.
- •Необходимые пояснения.
- •Необходимые пояснения.
- •Задание
- •Задание
- •Задание
- •Необходимые пояснения.
- •Необходимые пояснения.
- •Необходимые пояснения.
- •Задание
- •Задание
Необходимые пояснения.
На начальной стадии работы выполняется программа, варианты исходного текста которой приведены ниже. На завершающей стадии работы необходимо написать и отладить программы, требования к которым изложены в разделе “Задание”, а ниже поясняются четыре этапа разработки программы на языке ассемблера.
Этап 1. Создание текста исходного модуля программы. С помощью любого текстового редактора ввести текст исходного модуля программы, осуществляющей, во-первых, перемещение линейного массива цифр, отображаемого в виде одной n-байтной строки, в другой массив, отображаемый в виде другой строки и, во-вторых, выдающей на экран дисплея одну из перемещаемых цифр и ФИО автора программы. Перемещение адресуемых байтов данных осуществить, последовательно, начиная с последнего байта исходной строки, содержимое которого перемещается в первый байт результирующей строки. Цифру, выводимую на экран, необходимо предварительно преобразовать в ASCII код. Для ввода текста программы необходимо вызвать программы-оболочки Total Commander или FAR и нажать клавиши SHIFT_F4. После нажатия этих клавиш нужно задать имя программы с расширением asm, например nameprog.asm и нажать клавишу Enter. Далее ввести текст исходного программного модуля и сохранить его в файле nameprog.asm.
Этап 2. Построение объектного модуля, обладающего возможностью дальнейшей отладки с помощью программы td.exe.Для достижения этой цели необходимо задать следующую командную строку.
>TASM/z/zi/l nameprog.asm
Можно не набирать .asm, используя правило умолчания. В результате выполнения этого этапа создается и сохраняется файл nameprog.obj.
Этап 3. Построение исполняемого модуля, обладающего возможностью дальнейшей отладки программы с помощью программы td.exe. Для достижения этой цели необходимо задать следующую командную строку.
>TLINK/i/m/l/s/v nameprog.obj
Можно не набирать .obj, используя правило умолчания. В результате выполнения этого этапа создается и сохраняется файл nameprog.exe.
Этап 4. Осуществить отладку созданной программы, используя программу td.exe, а при отладке использовать окно наблюдения WATCHES.
Возможный вариант исходного текста программы приводится ниже.
TITLE LAB4
data segment
a DB 0,1,2,3,4,5,6,7
b DB 8 dup(?)
auth DB 'IVAN','$'
mess DB 'NAZMITE KNOPKU DLY VIHODA $'
data ends
code segment
assume cs:code, ds:data
begin:
mov ax,data
mov ds,ax
mov cx,8
lea si,a
lea di,b
label1:
mov al,[si]
mov [di],al
inc si
inc di
loop label1
mov dl,b+2
or dl,30h
mov ah,02h
int 21h
mov ah,09h
lea dx,auth
int 21h
lea dx,mess
int 21h
mov ah,1
int 21h
mov ax,4c00h
int 21h
code ends
END begin
Возможно упрощение описания сегментов. Для этого нужно определить модель используемой памяти. Пусть программа (код) располагается в одном сегменте, а данные и стек располагаются в другом сегменте. Такая модель памяти называется SMALL. Пример использования упрощенного описания сегментов приведен ниже.
TITLE LAB4
.Model Small
.STACK100h
.Data
a DB 0,1,2,3,4,5,6,7
b DB 8 dup(?)
auth DB 'IVAN','$'
mess DB 'NAZMITE KNOPKU DLY VIHODA $'
.Code
begin:
mov ax,data
mov ds,ax
mov cx,8
lea si,a
lea di,b
label1:
mov al,[si]
mov [di],al
inc si
inc di
loop label1
mov dl,b+2
or dl,30h
mov ah,02h
int 21h
mov ah,09h
lea dx,auth
int 21h
lea dx,mess
int 21h
mov ah,1
int 21h
mov ax,4c00h
int 21h
END begin