Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы по СП (1-20) / 08 / MASSORT
.txtTITLE MASSORT (EXE) Џа®Ја ¬¬ Їг§ламЄ®ў®© б®авЁа®ўЄЁ «ЁҐ©®Ј® ¬ ббЁў
;----------------------------------------
; ‚•Ћ„: Ї®б«Ґ¤®ў ⥫м®бвм н«Ґ¬Ґв®ў ¬ ббЁў ў ®ЇҐа вЁў®© Ї ¬пвЁ
; ‚›•Ћ„: гЇ®ап¤®зҐ п Ї®б«Ґ¤®ў ⥫м®бвм н«Ґ¬Ґв®ў ¬ ббЁў
; ў ®ЇҐа вЁў®© Ї ¬пвЁ (Їа®Ја ¬¬ Ґ ўлў®¤Ёв १г«мв в)
;----------------------------------------
STACKSG SEGMENT PARA STACK 'Stack'
DW 32 DUP (?)
STACKSG ENDS
;----------------------------------------
DATASG SEGMENT PARA 'Data'
MAS DB 14,6,0,24,1,3 ; § 票п н«Ґ¬Ґв®ў ¬ ббЁў
NUM DW 6 ; Є®«ЁзҐбвў® н«Ґ¬Ґв®ў ¬ ббЁў
ADR_EL DW (?) ; ¤аҐб з «м®Ј® н«Ґ¬Ґв
; ADR_EL - ЇҐаҐ¬Ґ п ¤«п еа ҐЁп ®¬Ґа (®в®бЁвҐ«м®Ј® ¤аҐб )
; ЇҐаў®Ј® Ё§ ¤ўге н«Ґ¬Ґв®ў, Ї®¤«Ґ¦ йЁе ®Ўа Ў®вЄҐ
SWAP DB 0 ; ЇҐаҐ¬Ґ п-д« ¦®Є
; SWAP - д« ¦®Є, § 票Ґ Є®в®а®Ј® Ї®Є §лў Ґв, ўлЇ®«п«Ёбм «Ё
; ЇҐаҐбв ®ўЄЁ н«Ґ¬Ґв®ў ў 室Ґ Їа®б¬®ва ¬ ббЁў :
; SWAP = 0 - Ґ ўлЇ®«п«Ёбм; SWAP = 1 - ўлЇ®«п«Ёбм
DATASG ENDS
;----------------------------------------
CODESG SEGMENT PARA 'Code'
BEGIN PROC FAR
ASSUME CS:CODESG, DS:DATASG, SS:STACKSG
PUSH DS
XOR AX,AX ; § ЇЁбм ў б⥪
PUSH AX ; г«Ґў®Ј® ¤аҐб
MOV AX,DATASG ; § бл«Є ¤аҐб
MOV DS,AX ; DATASG ў ॣЁбва DS
;----------------------------------------
MOV BX,NUM
; ЌЂ—Ђ‹Ћ ‚Ќ…Ќ…ѓЋ –€Љ‹Ђ
VNE: DEC BX ; зЁб«® Їа®е®¤®ў ўҐиҐЈ® жЁЄ«
MOV CX,BX
MOV SWAP,0 ; бЎа®б д« ¦Є
XOR SI,SI
; SI - ॣЁбва-Ё¤ҐЄб,
; ®ЎҐбЇҐзЁў ойЁ© ЇҐаҐе®¤ Є б«Ґ¤го饬г н«Ґ¬Ґвг ¬ ббЁў
MOV ADR_EL,SI ; ЇҐаўл© Ё§ ба ўЁў Ґ¬ле н«Ґ¬Ґв®ў
; ЌЂ—Ђ‹Ћ ‚Ќ“’ђ…ЌЌ…ѓЋ –€Љ‹Ђ
VNU: MOV SI,ADR_EL
MOV AH,MAS[SI] ; § 票Ґ ЇҐаў®Ј® н«Ґ¬Ґв
MOV AL,MAS[SI+1] ; § 票Ґ ўв®а®Ј® н«Ґ¬Ґв
; Ђ¤аҐб жЁп б Ё¤ҐЄбЁа®ў ЁҐ¬:
; MAS[SI] - ®ЎҐбЇҐзЁў Ґв Ї®«г票Ґ § 票п н«Ґ¬Ґв , ®¬Ґа Є®в®а®Ј®
; ᮤҐа¦Ёвбп ў ॣЁбвॠSI.
; MAS[SI+1] - ®ЎҐбЇҐзЁў Ґв Ї®«г票Ґ § 票п н«Ґ¬Ґв , ®¬Ґа Є®в®а®Ј®
; а ўҐ ®¬Ґаг, ᮤҐа¦Ё¬®¬г ў ॣЁбвॠSI, 㢥«ЁзҐ®¬г 1.
CMP AH,AL ; ба ўҐЁҐ н«Ґ¬Ґв®ў
JNG SLED ; ЇҐаҐбв ®ўЄ н«Ґ¬Ґвл Ґ г¦
XCHG AH,AL ; ЇҐаҐбв ®ўЄ н«Ґ¬Ґв®ў
; XCHG - Є®¬ ®Ў¬Ґ ¬Ґбв ¬Ё § 票©, гЄ § ле ®ЇҐа ¤ ¬Ё
MOV MAS[SI],AH ; § Ї®¬Ё ЁҐ
MOV MAS[SI+1],AL ; ЇҐаҐбв ў«Ґле н«Ґ¬Ґв®ў
MOV SWAP,1 ; гбв ®ўЄ д« ¦Є
; ¤®Ї®«ЁвҐ«мл© жЁЄ« ¤«п Їа®е®¤ Ї® ўбҐ¬ н«Ґ¬Ґв ¬
SLED: INC ADR_EL ; ®Ўа Ў®вЄ б«Ґ¤го饩 Ї ал н«Ґ¬Ґв®ў
INC SI ; и Ј Ї® н«Ґ¬Ґв ¬
DEC CX ; зЁб«® ®бв «мле н«Ґ¬Ґв®ў
CMP CX,0 ; н«Ґ¬Ґв Ї®б«Ґ¤Ё©?
JG VNU ; Ґв: Ї®ўв®а ўгв॥Ј® жЁЄ«
; ЉЋЌ…– ‚Ќ“’ђ…ЌЌ…ѓЋ –€Љ‹Ђ
CMP SWAP,1 ; Їа®ўҐаЄ д« ¦Є
JE VNE ; ¤ : Ї®ўв®а ўҐиҐЈ® жЁЄ«
; ЉЋЌ…– ‚Ќ…Ќ…ѓЋ –€Љ‹Ђ
NOP ; нвЁ Є®¬ ¤л ¤®Ў ў«Ґл,
NOP ; зв®Ўл Їа®йҐ ®вб«Ґ¤Ёвм
NOP ; ®Є®з ЁҐ Їа®Ја ¬¬л
NOP ; зҐаҐ§ ®в« ¤зЁЄ
RET ; § ўҐа襨Ґ Їа®Ја ¬¬л
BEGIN ENDP
CODESG ENDS
END BEGIN
Соседние файлы в папке 08