Wednesday, September 30, 2009

BubbleSort

Микропроцессор дээр 10 тоо эрэмблэх даалгавар өгчээ.
Үүнийг өгөдлийн бүтэц үзсэн хүн болон энгийн логик сэтгэлгээтэй хүн бол Олон талаас нь хараад яаж л бол яаж хийх байх.
Жишээ нь эрэмблэлтийн Аргуудаас дурьдвал. Өгөгдсөн нөхцлөөс шалтгаалаад санах ой хүрэлцээтэй эсэх.
Нөөцийг хэр ашигтай байлгах зэргээс хамаараад Оруулан эрэмблэх, Бөмбөлгөн эрэмблэлт, модоор эрэмблэх, рекурсивэр эрэмблэх, санамсаргүй буюу хаос эрэмблэлт, байранд нь эрэмблэх, сонгон эрэмблэх, бүрхүүл эрэмблэлт гээд олон аргууд дурдаж болно.
би үүнд нэг жишээ 8085 н Ассемблэр дээр бичиж туршлаа. үүнийг дор сийрүүлье.
;org 2000h
;/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
;10 too 2100h hayagnaas ehelj bairalsan
;/\/\/\/\/\/\\\/\/\/\/\/\/\/\/\/\/\/\/\/\

lxi h,2100h ;10 too 2100h hayagnaas ehelj bairalsan
lxi d,2100h ;
mov a,m ;a(max)=[2100] anhnii utga onooj baina

mvi b,10h ; davtaltiin too

push b ;ogogdliig hadgalj baina
push h ;mon ogogdol hadgallaa
ehlel2: ;gadaad davtaltiin tooluur b
pop h
mov l,e
mov a,m
ehlel1: ; dotood davtaltiin tooluur b
cmp m
jnc bagaBish
;----------solih uildliin heseg
mov c,m
ldax d
mov m,a
mov a,c
stax d
;------------------------------
bagaBish:
inr l
dcr b
jnz ehlel1
inr e
pop b
dcr b
push b ; hoer tooluuriig holihguin tuld nootslono
push h
jnz ehlel2
pop b ;stek sanah oig zov ajilluulah uudnees
pop h ;zaagchiig heviin baidald oruulna
hlt
; Зөвхөн тухайн байрлалд нь эрэмбэлдэг Бөмбөлгөн эрэмблэлтийн жишээ.

2 comments:

  1. oh tnx,naadah chin heregtee bsiin ^^

    ReplyDelete
  2. Хэрэг болсон бол яамай даа.
    Стек санах ойг яаж ашигласан.
    Тоолуурыг хэрхэн хэрэглэсэн талаар сайн ойлгочвол болох нь тэр.
    ямар нэг тоолуур регистрыг хорогдуулхад дагаад ямар нэг флаг регистр өөрчлөгддөг. Тэрийг нь ашиглаад шууд нөхцөлт үсрэлт тавьчихсан байгаа. Тэрийг нь анзаараарай.

    ReplyDelete