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

            LOOP M9                          ;повторить цикл с М9           

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

M10:   MOV AX,BX                     ;пересылка в регистр AX содержимого BX

            LOOP M9                          ;повторить цикл с М9

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

M11:   MOV DX,AX                     ;пересылка в регистр AX содержимого BX

                                                        ;преобразование  в ASCII код

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

M20:   MOV AL,DH                      ;пересылка в регистр AX содержимого DH

            SHR AL,4H                         ;логический сдвиг вправо на 4 бита

            CMP AL,0AH                     ;сравнение вида AL<0АН и если условие верно...

            JB M21                                ;... переход к метке М21

            ADD AL,37H                      ;увеличение AL на 37Н

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

M21:   ADD AL,30H                      ;увеличение AL на 30Н

M22:   MOV [SI],AL                      ;пересылка из AL в SI

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

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

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

            SHR AL,4H                          ;логический сдвиг вправо на 4 бита

            CMP AL,0AH                       ;сравнение вида AL<0АН и если условие верно...

            JB M23                                  ;... переход к метке М23

            ADD AL,37H                        ;увеличение AL на 37Н

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

M23:   ADD AL,30H                        ;увеличение AL на 30Н

M24:   MOV [SI],AL                        ;пересылка из AL в SI

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

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

            SHR AL,4H                           ;логический сдвиг вправо на 4 бита

            CMP AL,0AH                       ;сравнение вида AL<0АН и если условие верно...

            JB M26                                  ;... переход к метке М26

            ADD AL,37H                        ;увеличение AL на 37Н

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

M26:   ADD AL,30H                        ;увеличение AL на 30Н

M27:   MOV [SI],AL                        ;пересылка из AL в SI

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

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

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

            SHR AL,4H                            ;логический сдвиг вправо на 4 бита

            CMP AL,0AH                        ;сравнение вида AL<0АН и если условие верно...                    

            JB M28                                  ;... переход к метке М28

            ADD AL,37H                        ;увеличение AL на 37Н

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

M28:   ADD AL,30H                        ;увеличение AL на 30Н

M29:   MOV [SI],AL                        ;пересылка из AL в SI

                MOV AH,3CH                   ;открытие файла для записи

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

            MOV AL,01H                        ;режим открытия"только для записи"

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

            MOV BX,AX                         ;запись в файл

            MOV AH,40H

            MOV CX,4H                          ;число записываемых байт

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

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

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

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

            MOV AX,4C00H                    ; формирование функции стандартного выхода

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

main    endp                                         ; конец процедуры main

end      main                                         ; конец программы с точкой входа main

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

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

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

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

n          equ      10                            ;длина массива

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