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
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.