Автор работы: Пользователь скрыл имя, 21 Ноября 2012 в 19:19, лабораторная работа
Цель работы: показать процессы ассемблирования, компоновки и выполнения программ на высокопроизводительных микропроцессорных отладочных устройствах.
При разработке программ на ассемблере требуются: любой редактор для набора текста исходной программы, Ассемблер (в данном случае MASM) и программа-компоновщик LINK.
Шаг ассемблирования включает в себя трансляцию исходного текста в машинный объектный код и генерацию модуля с расширением .OBJ. Этот формат еще не готов к исполнению, необходим шаг компоновки - то есть преобразование модуля .OBJ в модуль .EXE (исполняемый модуль).
002D BEGIN ENDP
; Очистить экран:
; ------------------------------
002D q10clr proc near ;очистка экрана
002D B8 0600 mov ax,0600h ;Функция прокрутки экрана
0030 B7 07 mov bh,07 ;Цвет
0032 B9 0000 mov cx,0000
0035 BA 184F mov dx,184fh
0038 CD 10 int 10h
003A C3 RET
003B q10clr endp
;
Установка курсора (строка/
;
------------------------------
003B q20curs proc near
003B B4 02 MOV AH,02 ;Запрос на установку курсора
003D B7 00 MOV BH,00 ;Экран 0
;MOV DH,00 ;Строка 00
;MOV DL,00 ;Столбец 00
003F CD 10 INT 10H ;Передача управления в BIOS
0041 C3 ret
0042 q20curs endp
; Вывод текста запроса:
;
------------------------------
0042 b10prmp proc near
0042 B4 09 mov ah,09 ;функция вывода на экран
0044 8D 16 0017 R lea dx, primpt
0048 CD 21 int 21h
004A C3 ret
004B b10prmp endp
; Ввод имени с клавиатуры:
; ------------------------------
004B d10inpt proc near ;функция ввода
004B B4 0A mov ah,0ah ;запрос функции ввода
004D 8D 16 0000 R lea dx,namepar ;загрузка адреса списка параметров
0051 CD 21 int 21h ;вызвать функцию ввода DOS
0053 C3 ret
0054 d10inpt endp
;
Установка сигнала и
;
------------------------------
0054 e10code proc near ;установка сигнала и ограничителя
0054 B7 00 mov bh,00 ;замена символа Return 0d
0056 8A 1E 0001 R mov bl,namelen ;на зв. сигнал 07
005A C6 87 0002 R 07 mov namefld[bx],07
005F C6 87 0003 R 24 mov namefld[bx+1],'$';установить ограничитель
0064 C3 ret
0065 e10code endp
; Центрирование и вывод имени на экран:
;
------------------------------
0065 f10cent proc near
0065 8A 16 0001 R MOV DL,namelen ;Определение столбца:
0069 D0 EA SHR DL,1 ; разделить длину на 2,
006B F6 DA NEG DL ; поменять знак,
006D 80 C2 28 ADD DL,40 ; прибавить 40
0070 B6 0C MOV DH,12 ;Центральная строка
0072 E8 003B R CALL q20curs ;Установить курсор
0075 B4 09 MOV Ah,09
0077 8D 16 0002 R LEA DX,namefld ;Вывести имя на экран
007B CD 21 INT 21H
007D C3 RET
007E f10cent endp
; тут и сказке конец!
;-----------------------------
007E CODESG ENDS
END BEGIN
Segments and Groups:
N a m e Length Align Combine Class
CODESG . . . . . . . . . . . . . 007E PARA NONE 'CODE'
DATASG . . . . . . . . . . . . . 0029 PARA NONE 'DATA'
STACKSG . . . . . . . . . . . . 0040 PARA NONE 'STACK'
Symbols:
N a m e Type Value Attr
A1LOOP . . . . . . . . . . . . . L NEAR 000E CODESG
A2 . . . . . . . . . . . . . . . L NEAR 002C CODESG
B10PRMP . . . . . . . . . . . . N PROC 0042 CODESG Length = 0009
BEGIN . . . . . . . . . . . . . F PROC 0000 CODESG Length = 002D
D10INPT . . . . . . . . . . . . N PROC 004B CODESG Length = 0009
E10CODE . . . . . . . . . . . . N PROC 0054 CODESG Length = 0011
F10CENT . . . . . . . . . . . . N PROC 0065 CODESG Length = 0019
MAXNLEN . . . . . . . . . . . . L BYTE 0000 DATASG
NAMEFLD . . . . . . . . . . . . L BYTE 0002 DATASG Length = 0014
NAMELEN . . . . . . . . . . . . L BYTE 0001 DATASG
NAMEPAR . . . . . . . . . . . . L BYTE 0000 DATASG
PRIMPT . . . . . . . . . . . . . L BYTE 0017 DATASG
Q10CLR . . . . . . . . . . . . . N PROC 002D CODESG Length = 000E
Q20CURS . . . . . . . . . . . . N PROC 003B CODESG Length = 0007
@FILENAME . . . . . . . . . . . TEXT D5e
103 Source Lines
103 Total Lines
22 Symbols
47262 + 397106 Bytes symbol space free
0 Warning Errors
0 Severe Errors
Print Screen экрана D5e.exe
5. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
5.1. Абель.П. Язык ассемблера для IBM PC и программирования., -М.: Высшая школа, 1992, - С. 61 - 133.