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

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

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

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

Расчетно-графическая работа по

Ассемблеру

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

Иванов О.В.

Проверила: Мукасеева В.Н.

Уфа 2008

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

Математическое описание задачи обработки: Дан двухмерный массив 5*5, состоящий из , ,, .Найти или такой, что или который будет находиться на главной диагонали или нет

Метод решения задачи: Метод частных целей

Алгоритм:

  • найти очередной элемент строки матрицы имеющий наименьшее значение ;

  • сравнить его с предыдущими строками;

  • определение нахождения этого элемента на главной диагонали.

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

IBM Macro Assembler/2 Version 1.00 1/8/8MIN_EL_B Page 1-1

TITLE MIN_EL_B

0000 STACK SEGMENT PARA STACK 'STACK'

0000 0040[ DB 64 DUP('STACK ')

53 54 41 43 4B

20

]

0180 STACK ENDS

0000 DSEG SEGMENT PARA PUBLIC 'DATA'

0000 01 03 04 02 06 Mas db 1,3,4,2,6

0005 01 01 09 08 06 db 1,1,9,8,6

000A 07 01 02 08 03 db 7,1,2,8,3

000F 01 02 09 08 01 db 1,2,9,8,1

0014 04 07 08 02 08 db 4,7,8,2,8

= 0005 Len_mas equ 5

0019 0A 0D 4D 69 6E 69 6D Mes1 db 0ah,0dh,'Minimalnyi element massiva = $

'

61 6C 6E 79 69 20 65

6C 65 6D 65 6E 74 20

6D 61 73 73 69 76 61

20 3D 20 24

0039 0A 0D 45 6C 65 6D 65 Mes2 db 0ah,0dh,'Element massiva nahoditsj na g

lav diag! $'

6E 74 20 6D 61 73 73

69 76 61 20 6E 61 68

6F 64 69 74 73 6A 20

6E 61 20 67 6C 61 76

20 64 69 61 67 21 20

24

0064 ?? Min db ?

0065 ???? I dw ?

0067 ???? J dw ?

0069 DSEG ENDS

0000 CSEG SEGMENT PARA PUBLIC 'CODE'

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

0000 START PROC FAR

0000 1E PUSH DS

0001 2B C0 SUB AX,AX

0003 50 PUSH AX

0004 B8 ---- R MOV AX,DSEG

0007 8E D8 MOV DS,AX

0009 33 C0 XOR AX,AX

000B 33 FF XOR DI,DI

000D B9 0005 MOV CX,5

0010 8D 1E 0000 R LEA BX,Mas

0014 8A 17 MOV DL,byte ptr [BX];

0016 51 CYC1: PUSH CX

0017 33 F6 XOR SI,SI

0019 B9 0005 MOV CX,Len_mas

IBM Macro Assembler/2 Version 1.00 1/8/8MIN_EL_B Page 1-2

001C 47 INC DI;

001D 38 10 CYC2: CMP BYTE ptr [BX+SI],DL

001F 77 0E JA NOT_MIN

0021 8A 10 MOV DL,BYTE ptr [BX+SI]

0023 88 16 0064 R MOV Min,DL

0027 89 3E 0065 R MOV I,DI;

002B 89 36 0067 R MOV J,SI

002F NOT_MIN:

002F 46 INC SI

0030 E2 EB LOOP CYC2

0032 59 POP CX

0033 83 C3 05 ADD BX, Len_mas

0036 E2 DE LOOP CYC1

0038 33 D2 XOR DX,DX

003A 8B 16 0065 R MOV DX,I

003E 3B 16 0067 R CMP DX,J

0042 75 07 JNE K1

0044 B4 09 MOV AH,09H

0046 BA 0039 R MOV DX,OFFSET Mes2

0049 CD 21 INT 21h

004B K1:

004B B4 09 MOV AH,09H

004D BA 0019 R MOV DX,OFFSET Mes1

0050 CD 21 INT 21h

0052 B4 02 MOV AH,02H

0054 8A 16 0064 R MOV DL,Min

0058 80 C2 30 ADD DL,30h

005B CD 21 INT 21h

005D CB EXIT: RET

START ENDP

005E CSEG ENDS

END START

IBM Macro Assembler/2 Version 1.00 1/8/8MIN_EL_B Symbols-1

Segments and Groups:

N a m e Size Align Combine Class

CSEG . . . . . . . . . . . . . . 005E PARA PUBLIC 'CODE'

DSEG . . . . . . . . . . . . . . 0069 PARA PUBLIC 'DATA'

STACK . . . . . . . . . . . . . 0180 PARA STACK 'STACK'

Symbols:

N a m e Type Value Attr

CYC1 . . . . . . . . . . . . . . L NEAR 0016 CSEG

CYC2 . . . . . . . . . . . . . . L NEAR 001D CSEG

EXIT . . . . . . . . . . . . . . L NEAR 005D CSEG

I . . . . . . . . . . . . . . . L WORD 0065 DSEG

J . . . . . . . . . . . . . . . L WORD 0067 DSEG

K1 . . . . . . . . . . . . . . . L NEAR 004B CSEG

LEN_MAS . . . . . . . . . . . . Number 0005

MAS . . . . . . . . . . . . . . L BYTE 0000 DSEG

MES1 . . . . . . . . . . . . . . L BYTE 0019 DSEG

MES2 . . . . . . . . . . . . . . L BYTE 0039 DSEG

MIN . . . . . . . . . . . . . . L BYTE 0064 DSEG

NOT_MIN . . . . . . . . . . . . L NEAR 002F CSEG

START . . . . . . . . . . . . . F PROC 0000 CSEG Length = 005E

77 Source Lines

77 Total Lines

18 Symbols

46918 Bytes symbol space free

0 Warning Errors

0 Severe Errors

Тестирование программы:

Тест

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

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

Mas db 1,3,4,2,6

db 1,5,9,8,6

db 7,1,2,8,3

db 1,2,9,8,1

db 4,7,8,2,8

Element massiva nahoditsj na glav diag

Minimalnyi element massiva =1

Element massiva nahoditsj na glav diag

Minimalnyi element massiva =1

Тест №1:

Тест №2:

Тест

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

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

Mas db 3,3,4,2,6

db 1,2,9,8,6

db 7,1,2,0,3

db 0,2,9,8,1

db 4,7,0,2,8

Minimalnyi element massiva =0

Minimalnyi element massiva =0

Соседние файлы в папке Расчетно-графическая работа