Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №3 / Отчет(5 лаба)

.doc
Скачиваний:
35
Добавлен:
02.05.2014
Размер:
49.66 Кб
Скачать

Федеральное агентство по образованию

Уфимский государственный авиационный технический университет

Кафедра технической кибернетики

Отчет

По лабораторной работе №3

«Ассемблер: программирование операций ввода-вывода»

Выполнил: студент гр. РС-218

Потапов В.М.

Проверила: ассистент Семененко Д.В.

Уфа 2007

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

Задание: найти последний максимальный элемент двухмерного массива и указать его местоположение. Элементы массива однобайтовые.

Листинг программы

TITLE MAX_EL_B

STACK SEGMENT PARA STACK 'STACK'

DB 64 DUP('STACK ')

STACK ENDS

DSEG SEGMENT PARA PUBLIC 'DATA'

Mas db 1,3,4,2,6,7,8,2,2,2

db 1,0,9,8,6,7,8,4,5,4

db 7,1,9,8,3,7,8,9,2,3

db 1,2,9,8,0,7,9,4,2,3

db 4,7,8,2,8,2,1,8,3,2

Len_mas equ 10

Mes1 db 0ah,0dh,'Maximalnyi element massiva = $'

Mes2 db 0ah,0dh,'Adres elementa massiva = $'

Max db ?

I dw ?

J dw ?

DSEG ENDS

CSEG SEGMENT PARA PUBLIC 'CODE'

ASSUME CS:CSEG, DS:DSEG, SS:STACK

START PROC FAR

PUSH DS

SUB AX,AX

PUSH AX

MOV AX,DSEG

MOV DS,AX

XOR AX,AX

XOR DI,DI

MOV CX,5

LEA BX,Mas

MOV DL,byte ptr [BX];

CYC1: PUSH CX

XOR SI,SI

MOV CX,Len_mas

INC DI;

CYC2: CMP byte ptr [BX+SI],DL

JB NOT_MAX

MOV DL,BYTE ptr [BX+SI]

MOV Max,DL

MOV I,DI;

MOV J,SI

NOT_MAX:

INC SI

LOOP CYC2

POP CX

ADD BX, Len_mas

LOOP CYC1

XOR DX,DX

MOV AH,09H

MOV DX,OFFSET Mes1

INT 21h

MOV AH,02H

MOV DL,Max

ADD DL,30h

INT 21h

MOV AH,09H

MOV DX,OFFSET Mes2

INT 21h

MOV AH,02H

MOV DX,I

ADD DX,30h

INT 21h

MOV AH,02H

MOV DL,02Ch

INT 21h

MOV AH,02H

INC J

MOV DX,J

ADD DX,30h

INT 21h

EXIT: RET

START ENDP

CSEG ENDS

END START

Тестирование

Тест

Ожидаемый результат

Фактический результат

Mas db 1,3,4,2,6,7,8,2,2,2

db 1,0,9,8,6,7,8,4,5,4

db 7,1,9,8,3,7,8,9,2,3

db 1,2,9,8,0,7,9,4,2,3

db 4,7,8,2,8,2,1,8,3,2

Mas[4,7]=9

Mas[4,7]=9

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

Соседние файлы в папке Лабораторная работа №3
  • #
    02.05.20141.13 Mб355.bmp
  • #
    02.05.20141.17 Кб43lab3.asm
  • #
    02.05.2014430 б31LAB3.OBJ
  • #
    02.05.20141.18 Кб31Копия lab3.asm
  • #
    02.05.201449.66 Кб35Отчет(5 лаба).doc
  • #
    02.05.20142.86 Кб31Ярлык для LAB3.EXE.pif
  • #
    02.05.20142.86 Кб31Ярлык для MASM.EXE.pif