Assembler
скачать (132.5 kb.)
Доступные файлы (1):
1.doc | 133kb. | 15.11.2011 20:07 | ![]() |
содержание
- Смотрите также:
- Flat assembler 1.64 (FASM) [ документ ]
- Перемножение матриц (Assembler) [ документ ]
- Ввод/вывод в Assembler [ документ ]
- Решенные задачи на языке Assembler [ лабораторная работа ]
- Язык программирования Assembler [ реферат ]
- Backer Reiner. Assembler von Anfang an mit Windows Programmirung [ документ ]
- Программирование на языке Assembler [ лекция ]
- Арифметические операции целочисленной обработки информации (assembler) [ документ ]
- Шпоры по архитектуре ЭВМ [ документ ]
- Лабораторные работы по МПС [ лабораторная работа ]
- Проектирование программ на языке ASSEMBLER [ документ ]
- Borland Turbo Assembler - Tasm [ документ ]
1.doc
Министерство образования и науки РФУфимский Государственный Авиационный Технический Университет
Кафедра АПрИС
Лабораторная работа №1
Трансляция, компоновка и отладка программ.
Выполнила:
студентка гр. ИВТ-325
Проверила:
Семененко Д.В.
Уфа-2009 г.
Цель работы: Целью работы является освоение инструментальных средств создания программ на языке ассемблера и получение начальных навыков трансляции, компоновки и отладки программ.
Задача 1: С использованием редактора текста набрать указанную программу, оттранслировать программу в объектный код, скомпоновать программу, изучить листинг программы.
Листинг программы:
TITLE EX_PROG
PAGE ,132
STACK SEGMENT PARA STACK 'STACK'
DB 64 DUP('STACK')
STACK ENDS
DSEG SEGMENT PARA PUBLIC 'DATA'
SOURCE DB 10,20,30,40
DEST DB 4 DUP(?)
DSEG ENDS
SUBTTL
PAGE
CSEG SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CSEG, DS:DSEG, SS:STACK
OUT_PROG PROC FAR
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
MOV AL,SOURCE
MOV DEST+3,AL
MOV AL,SOURCE+1
MOV DEST+2,AL
MOV AL,SOURCE+2
MOV DEST+1,AL
MOV AL,SOURCE+3
MOV DEST,AL
RET;
OUT_PROG ENDP
CSEG END
END OUT_PROG
^

Задача 2:
Внести в программу следующие изменения: задать исходную таблицу ^ из 5 двухбайтовых шестнадцатеричных переменных и скопировать эту новую таблицу в DEST.
Листинг программы:
TITLE EX_PROG
PAGE ,132
STACK SEGMENT PARA STACK 'STACK'
DB 64 DUP('STACK')
STACK ENDS
DSEG SEGMENT PARA PUBLIC 'DATA'
SOURCE DW 10,20,30,40,50
DEST DW 5 DUP(?)
DSEG ENDS
SUBTTL
PAGE
CSEG SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CSEG, DS:DSEG, SS:STACK
OUT_PROG PROC FAR
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
MOV AX,SOURCE
MOV DEST+8,AX
MOV AX,SOURCE+2
MOV DEST+6,AX
MOV AX,SOURCE+4
MOV DEST+4,AX
MOV AX,SOURCE+6
MOV DEST+2,AX
MOV AX,SOURCE+8
MOV DEST,AX
RET;
OUT_PROG ENDP
CSEG ENDS
END OUT_PROG
^

Задача 3: В программе пункта 5 в сегменте данных дополнительно определить переменные, заполнив их следующими значениями:
5 байтовых переменных AA, BB, CC, DD, EE;
5 двухбайтовых слов AABB, BBCC, CCDD, DDEE, EEFF;
Листинг программы:
TITLE EX_PROG
PAGE ,132
STACK SEGMENT PARA STACK 'STACK'
DB 64 DUP('STACK')
STACK ENDS
DSEG SEGMENT PARA PUBLIC 'DATA'
SOURCE DW 10,20,30,40,50
DEST DW 5 DUP(?)
BYTE1 DB 0AAH,0BBH,0CCH,0DDH,0EEH
WORD1 DD 0AABBH,0BBCCH,0CCDDH,0DDEEH,0EEFFH
DSEG ENDS
SUBTTL
PAGE
CSEG SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CSEG, DS:DSEG, SS:STACK
OUT_PROG PROC FAR
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
MOV AX,SOURCE
MOV DEST+8,AX
MOV AX,SOURCE+2
MOV DEST+6,AX
MOV AX,SOURCE+4
MOV DEST+4,AX
MOV AX,SOURCE+6
MOV DEST+2,AX
MOV AX,SOURCE+8
MOV DEST,AX
RET;
OUT_PROG ENDP
CSEG ENDS
END OUT_PROG
^

Задача 4: Из заданного вектора двухбайтовых значений SOURSE переместить, используя косвенную адресацию, данные в область DEST, поменяв местами старшее и младшее слово (если начальное значение в SOURCE равно АAВB, то конечное значение д.б. ВВАА).
Подсказка: для перехода к следующему элементу вектора воспользуйтесь командой инкремента INC, преобразование данных восполните с использованием команды XCHG.
Листинг программы:
TITLE EX_PROG
PAGE ,132
STACK SEGMENT PARA STACK 'STACK'
DB 64 DUP('STACK ')
STACK ENDS
DSEG SEGMENT PARA PUBLIC 'DATA'
SOURCE DW 10,20,30,40
DEST DW 4 DUP(?)
DSEG ENDS
SUBTTL
PAGE
CSEG SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CSEG, DS:DSEG,SS:STACK
OUR_PROG PROC FAR
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
MOV CX,4
MOV SI,0
M1:
MOV AL,SOURCE[SI]
XCHG AL,1
XCHG AL,1
XCHG AL,1
XCHG AL,1
MOV DEST[SI],AL
INC SI
JCXZ EXIT
DEC CX
JMP M1
EXIT: RET
OUR_PROG ENDP
CSEG ENDS
END OUR_PROG
^

Вывод: Таким образом, в ходе данной лабораторной работы мы написали несколько простых программ на языке ассемблера и получили начальные навыки трансляции, компоновки и отладки программ.
Скачать файл (132.5 kb.)