Ассемблирование и выполнение программ

Автор работы: Пользователь скрыл имя, 21 Ноября 2012 в 19:19, лабораторная работа

Описание

Цель работы: показать процессы ассемблирования, компоновки и выполнения программ на высокопроизводительных микропроцессорных отладочных устройствах.
При разработке программ на ассемблере требуются: любой редактор для набора текста исходной программы, Ассемблер (в данном случае MASM) и программа-компоновщик LINK.
Шаг ассемблирования включает в себя трансляцию исходного текста в машинный объектный код и генерацию модуля с расширением .OBJ. Этот формат еще не готов к исполнению, необходим шаг компоновки - то есть преобразование модуля .OBJ в модуль .EXE (исполняемый модуль).

Работа состоит из  1 файл

лаба4.docx

— 142.17 Кб (Скачать документ)

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.

 


Информация о работе Ассемблирование и выполнение программ