Программа для МК48
- 74
- 0
- Опубликовано: 2015-05-19
; Бо'льшие числа перемещаются вверх к младшим адресам памяти через сравнение двух соседних ячеек
; Это код, который не проверен: ввод данных с третьей страницы ПП
; CLR A
; MOV P3A,@A
; MOV 20H,A
; MOV A,#01H
; MOV P3A,@A
; MOV 21H,A
; MOV A,#02H
; MOV P3A,@A
; MOV 22H,A
; MOV A,#03H
; MOV P3A,@A
; MOV 23H,A
; MOV A,#04H
; MOV P3A,@A
; MOV 24H,A
;Вводим исходные данные
MOV 20H,#13H
MOV 21H,#CAH
MOV 22H,#0DH
MOV 23H,#44H
MOV 24H,#15H
;Готовим счётчики циклов
MOV R2,#02H
MOV R1,#03H
MOV R0,#04H
Start: ;Метка начала цикла
MOV A,21H
CPL A
ADD A,20H
JC Metka0 ;Переход, если числа не нужно менять местами
MOV A,20H
MOV R4,A
MOV A,21H
MOV 20H,A
MOV A,R4
MOV 21H,A
Metka0:
DJNZ R0,Metka01 ;Продолжаем сортировку
CLR A
JZ MetkaE
MetkA01:
MOV A,22H
CPL A
ADD A,21H
JC Metka1 ;Переход, если числа не нужно менять местами
MOV A,21H
MOV R4,A
MOV A,22H
MOV 21H,A
MOV A,R4
MOV 22H,A
Metka1:
DJNZ R1,Metka11 ;Продолжаем сортировку
CLR A
JZ Start
MetkA11:
MOV A,23H
CPL A
ADD A,22H
JC Metka2 ;Переход, если числа не нужно менять местами
MOV A,22H
MOV R4,A
MOV A,23H
MOV 22H,A
MOV A,R4
MOV 23H,A
Metka2:
DJNZ R2,Metka21 ;Продолжаем сортировку
CLR A
JZ Start
MetkA21:
MOV A,24H
CPL A
ADD A,23H
JC Start; Переход, если числа не нужно менять местами
MOV A,23H
MOV R4,A
MOV A,24H
MOV 23H,A
MOV A,R4
MOV 24H,A
CLR A
JZ Start
MetkaE:
;Располагаем исходные данные в памяти программ на третьей странице
;ORG 300H
;DB #13H, #CAH, #0DH, #44H, #15H
END