Нахождение максимального значения в массиве 10 двухбайтных чисел

Страницы работы

Содержание работы

Федеральное государственное образовательное учреждение

 высшего профессионального образования

СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ

ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ

Кафедра: «Радиотехника»

Лабораторная работа №2

                                                                                                                         Выполнил:

                                                                                                                                       Студент гр. Р54-4

                   Федосеев Е.В.

                                                                                                                          Проверил:

                                                                                                                                                Тронин О. А.

Красноярск 2007

Задание: Найти максимальное значение в массиве 10 двухбайтных чисел.

Текст программы 1:

model small                                   ;директива модели памяти model с параметром small

.data                                               ; упрощенная директива сегмента данных

MAS1 DW     20 DUP(0)             ; выделение памяти под  20-элементный массив

MAS2 DW     10 DUP(0)             ; выделение памяти под  10-элементный массив

MAS3 DB      5 DUP(0)               ; выделение памяти под  5-элементный массив

ENTS DB      4 DUP(0)               ; выделение памяти под  4-элементный массив

FIN      DB      'in.txt',00H             ;определение файла источника

FOUT  DB      'OUT.TXT',00H    ;определение файла приемника

.code                                             ; упрощенная директива сегмента кода

main    proc                                  ; начало процедуры main

            mov ax,@data                   ; инициализация сегментного...         

            mov ds,ax                          ; ...регистра ds

            MOV AH,3DH                  ;открытие файла

            MOV AL,00H                   ;режим открытия"только для чтения"

            LEA DX,FIN                    ;загрузка эффективного адреса файла FIN в DX       

            INT 21H                            ; формирование прерывания типа 21h

            MOV BX,AX                    ;чтение из файла

            MOV AH,3FH                          

            MOV CX,28H                   ;число байтов

            LEA DX,MAS1                 ;загрузка эффективного адреса файла MAS1 в DX

            INT 21H                            ; формирование прерывания типа 21h            

            MOV AH,3EH                   ;закрытие файла для чтения

            INT 21H                             ; формирование прерывания типа 21h

            MOV CX,0AH                   ;преобразование  из ASCII кода

            LEA SI,MAS1                    ;загрузка эффективного адреса MAS1 в регистр SI

            LEA DI,MAS2                   ;загрузка эффективного адреса MAS2 в регистр DI

M0:     MOV AL,[SI]                     ;пересылка в регистр AL SI-го элемента массива

            CMP AL,40H                     ;сравнение вида AL<40H и если условие верно...

            JB M1                                 ;... переход к метке М1

            SUB AL,37H                      ;в противном случае уменьшение AL на 37Н

            JMP M2                              ;безусловный переход на метку M2

M1:     SUB AL,30H                      ; уменьшение AL на 30Н

M2:     SHL AL,4H                        ;логический сдвиг влево на 4 бита

            MOV DH,AL                     ;пересылка содежмого AL в DH

            ADD SI,1H                         ;индекс SI увеличивается на 1

            MOV AL,[SI]                     ;пересылка в регистр AL SI-го элемента массива

            CMP AL,40H                     ;сравнение вида AL<40H и если условие верно...

            JB M3                                 ;... переход к метке М3

            SUB AL,37H                      ;в противном случае уменьшение AL на 37Н

            JMP M4                              ;безусловный переход на метку M4

M3:     SUB AL,30H                      ; уменьшение AL на 30Н

M4:     ADD DH,AL                      ;сложение содержимого DH и AL

            ADD SI,1H                         ;индекс SI увеличивается на 1

            MOV AL,[SI]                     ;пересылка в регистр AL SI-го элемента массива

            CMP AL,40H                     ;сравнение вида AL<40H и если условие верно...

            JB M5                                 ;... переход к метке М5

            SUB AL,37H                      ; уменьшение AL на 30Н

            JMP M6                              ;безусловный переход на метку M6

M5:     SUB AL,30H                      ; уменьшение AL на 30Н

M6:     SHL AL,4H                        ;логический сдвиг влево на 4 бита

            MOV DL,AL                      ;пересылка содежмого AL в DL

            ADD SI,1H                         ;индекс SI увеличивается на 1

            MOV AL,[SI]                      ;пересылка в регистр AL SI-го элемента массива

            CMP AL,40H                      ;сравнение вида AL<40H и если условие верно...

            JB M7                                  ;... переход к метке М7

            SUB AL,37H                       ; уменьшение AL на 30Н

            JMP M8                              ;безусловный переход на метку M6

M7:     SUB AL,30H                      ; уменьшение AL на 30Н   

M8:     ADD DL,AL                       ;сложение содержимого DL и AL

            ADD SI,1H                         ;индекс SI увеличивается на 1

            MOV [DI],DX                    ;пересылка из DX в DI

            ADD DI,2H                        ;индекс DI увеличивается на 2

            LOOP M0                           ;повторить цикл с М0        

            LEA SI,MAS2                    ;загрузка эффективного адреса MAS2 в SI

            MOV CX,9                         ;пересылка в CX числа 9

            MOV AX,[SI]                    ;пересылка в регистр AX SI-го элемента массива

            ADD SI,2                           ;индекс SI увеличивается на 2

M9:     MOV BX,[SI]                    ;пересылка в регистр AX SI-го элемента массива

            ADD SI,2                           ;индекс SI увеличивается на 2

            CMP AX,BX                     ;сравнение вида AX<BX и если условие верно...

            JB M10                              ;... переход к метке М10

Похожие материалы

Информация о работе