Transcript HW200_1
Компьютер бүтэц ба ассемблер хэл С.Байгалтөгс ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Оршил Компьютерийн үндсэн бүтэц Машины үйлдлүүд Машины хэл Ассемблер хэл Хэл хөрвүүлэлт Эмуляци Объект модулиуд ба модулиуд ачаалах Салангид ассемблер ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Компьютерийн үндсэн бүтэц ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Компьютерийн техникийн бүтэц ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Компьютерийн техникийн бүтэц ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Компьютерийн техникийн бүтэц ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Оршил Ассемблер хэлийг процессорын үйлдэлд тулгуурлаж програм бичихэд ашиглана. Энэ нь MIPS32 процессор чипд зориулсан ассемблер хэлний удирдамж юм. Энэ удирдамж нь одоогийн техник хангамжаас илүүтэй SPIM симуляторыг ашиглана. Компьютерийн архитектур нь компьютерийн эд анги болон үндсэн үйлдлүүдийн логик дүрслэл юм.Aссемблер хэлэнд нэг илэрхийлэл нь процессорын нэг үндсэн үйлдэлтэй тохирдог юм. Процессорын архитектур нь програмын илэрхийлэл бүрт харагдаж байдаг. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] a Цэвэр ассемблер хэл ховор байдаг. High түвшний хэл дээр бичигдсэн байх нь элбэг. Ассемблер хэлийг ашиглахдаа шинэчилэгдсэн хэлбэрийг нь голдуу ашигладаг. Программистэд илүү ойр болгохын тулд нэмэлт шинж чанаруудыг оруулсан байдаг. Энэ өргөтгөсөн ассемблер хэл нь хэд хэдэн үндсэн машин үйлдэлд тохирох илэрхийлүүдийг агуулдаг. MIPS өргөтгөсөн ассемблер хэл нь мөн ийм боловч процессорын чип нь харагдсан хэвээр байна. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Өндөр түвшний программчлалын хэлүүд болох C эсвэл Pascal нь (ихэнхдээ) ажиллаж буй процессороосоо хамааралгүй юм. Java програмууд нь процессороос огт хамааралгүй болсон байдаг. Харин ассемблер хэл дээрх програм процессорийн бутэц дээр тулгуурлаж бичигдэнэ. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Процессорын ялгаатай бүтэц Процессорын чип-н архитектур нь үндсэн компонентууд ба үндсэн үйлдлүүдийн set юм. Процессорын бүл бүр өөрийн архитектуртай байдаг. Ассемблер хэл бол тодорхойн процессорын архитектурын программчлалын үзэгдэл юм. Процессорын төрөл бүр өөрийн ассемблер хэлтэй байдаг. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Процессорын ялгаатай бүтэц Ассемблер хэл сурах үед тодорхой процессорын архитектурыг судалж байна гэсэн үг юм. Ассемблер хэл сурах нь таны компьютерийн мэргэжлийн ойлголтыг дээшлүүлэх юм. Жишээ нь MIPS процессор юм. MIPS ассемблерын ойлолтууд нь их олон талтай байдаг. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Процессорын ялгаатай бүтэц Энд компьютерийн шинжлэх ухааны хэтийн төлөвөөс ассемблер хэлний талаар авч үзэх болно. Ассемблер хэлний түвшинд компьютерийн системд юу болж байгааг тайлбарлах болно. Дээр өгүүлсэн нь копьютерийн архитектурын электрон үзэгдэл ба харин дараа өгүүлэх нь компьютерийн системийн үйлдлийн системийн үзэгдэл байх юм. Эрдэмтэд компьютерууд нь олон түвшинд хуваагддаг гэдгийг хүлээн зөвшөөрдөг. Хичнээн түвшин нэг нь нэгэн дээрээс байрладагыг ойлгодог ба эдгээр түвшин бүр компьютерийн шинжлэх ухааны хөтөлбөрийн нэг буюу түүнээс олон хичээлд тохирдогыг хүлээн зөвшөөрдөг ажээ. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Computer structure ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Суурь бүтэц MIPS нь орчин цагийн хамгийн сайн загвартай архитектур юм. MIPS чипүүд нь 1985 оноос эхлэн загварчлагдсан юм. Эдгээр загварууд нь компьютерийн архитектуруудын хамгийн шилдэг санаануудыг агуулсан байдаг. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Суурь бүтэц Ассемблер хэлний програм нь компьютерийн техник хангамж яг юу хийх ёстойг үйлдлийнх нь үндсэн дээр тулгуурлаж, алхам алхамаар тайлбарлаж өгнө. C, Java мэт дээд түвшний програмчлалын хэлд копьютерийн архитектурын талаарх мэдлэг шаардагддаггүй. Эх програмууд нь ямар ч бүлийн процессор дээр ажиллах чадвартай байдаг. Эдгээр нь компьютерийн архитектурын ассемблер түвшний фундаметалийн талаар юм. Ассемблер хэлийг суран, тодорхой процессорын нарийвчилсан мэдээллийг суран үүнд зориулсан програм бичих шаардлагатай юм. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Машины үндсэн цикл Ихэнх процессорууд гурван үндсэн алхамыг төгсгөлгүй давтдаг. Машины цикл бүр нь машин үйлдэл (комманд) бүрийн ажиллагааны үр дүн юм. Орчин үеийн процессор нь секундад хэдэн сая машины циклийг гүйцэтгэдэг. Машин үйлдэл процессор фундаменталь үйлдэлд (хоёр 32-битийн тоог нэмэх гэх мэт) хамаарах битүүдийн загвар юм. Машин циклийн нарийвчилсан мэдээлэл нь процессорын бүлүүдээс ялгагддаг. Ихэнх процессор чипүүдийн машин циклүүд дараах байдалтай харагдана: Үйлдлийг авчрах(fetch). Үйлдлийг санах ойгоос авчирна. Программын тоолуур нь (PC) нэг хэсэг юм. Энэ нь үйлдэл санах ойн аль хэсэгт байрлаж байгааг заана. Програмын тоолуурыг нэмэгдүүлэх. Програм тоолуур нь дараачийн үйлдлийг заадаг.Үйлдлийг ажиллуулах. Тухайн үйлдлийг ажиллуулна. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Машины үндсэн цикл ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Машины үйлдлүүд Үйлдлүүд нь дарааллаар гүйцэтгэгддэг. Програмын тоолуур нь тухайн хором бүрт санах ойгоор дамжин тоолуураа ихэсгэдэг . Үйлдэл ажиллах бүрт дараагийн үйлдэл нь ажиллахаар автоматаар сонгогддог. “Хоёр тоог нэмэх”, “Хоёр тоог харьцуулах ” гэх мэт үйлдүүд нь нэг машин циклд хийгдэх үйлдлүүд юм. Давталтын үйлдлүүд нь хэвийн дарааллыг өөрчлөх машин үйлдлүүд юм. Машин үйлдэл (комманд) нь процессорын нэг машин үйлдэл гүйцэтгэх битүүдийн загвар юм. MIPS процессорын хоёр 32-битийн регистерүүдийг нэмэх үйлдэл байна: (регистер нь бит загваруудыг хадгалж байдаг процессорын хэсэг юм). ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Машины үйлдлүүд 0000 0001 0010 1011 1000 0000 0010 0000 үйлдэл нь 32 бит урт. Бит бүр 0 эсвэл1. Битүүд нь дөрөв дөрвөөрөө групп үүсгэн дүрслэгдэнэ. Групп бүрийн хоорондах хоосон зай нь бит загварын хэсэг биш юм. Үйлдэл дэх зарим битүүд үйлдлүүдийг дангаараа тодорхойлдог. (хоёр регистр нэмэх), бусад регистрүүд нь нэмэх ёстой регистрүүдийг тодорхойлно. Зарим цөөн битүүд нь гарах үр дүнг агуулна. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Ассемблер хэлний илэрхийлэл Машин үйлдлийн гадна давхарга нь процессорын чипийн архитектурын хэсэг юм. Гадна давхаргыг мэдсэнээр үйлдэл юу илэрхийлж буй ойлгоно. Цэвэр ассемблер хэлний илэрхийлэл нь нэг машин үйлдэлтэй тохирно. Ассемблер хэл нь машины хэлийг бичихээс нэн хялбар юм. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Ассемблер хэлний илэрхийлэл Энд өмнөх машин үйлдлийг ассемблер хэл дээр дүрсэлж үзүүлэв: Машины үйлдэл ассемблер хэлний илэрхийлэл 0000 0001 0010 1011 1000 0000 0010 0000 add $t0,$t1,$t2 Энэ үйлдэл нь: $t1 болон $t2 регистр дэх тоонуудыг нэмж үр дүнг нь $t0 регистрд хийх юм. Ассемблер хэлний илэрхийллээс машин үйлдлийг үүсгэхэд хөрвүүлэлтийн Assembler програмыг ашигладаг. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Ассемблер хэлний илэрхийлэл Олон шалтгааны улмаас хүмүүс машин хэлнээс илүү ассемблер хэлийг ашигладаг. Хүмүүст эдгээр 0 болон 1 үүдийг боловсруулахад хүндрэлтэй байдаг Тэмдэглэгээ ашиглах нь программистуудад тооцоолол дүрслэх уян хатан байдал бий болгодог. Ассемблер хэл нь авсаархан бичлэгтэй. Сайжруулсан ассемблер хэл нь нэмэлт шинж чанаруудыг агуулдаг. Энэ нь хэд хэдэн машин үйлдлүүдэд тохирох коммандуудтай (pseudoinstructions). ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Програм хөрвүүлэлт Ассемблер хэлний илэрхийлэл нь машин хэлний үйлдэлтэй ижил утгыг агуулна.Гэвч ажиллахаасаа өмнө бит загварууд руу хөрвүүлэгдэх ёстой болдог. Ассемблер хэлний програм нь ассемблер хэлний илэрхийлэл, өгөгдөл тодорхойлох илэрхийлэл болон хөрвүүлэхэд шаардлагатай зарим нэмэлт мэдээллүүдийг агуулна. Ассемблер хэлний бит загварууд руу хөрвүүлэх жишээ байна. Машины үйлдлүүд ассемблер илэрхийлэл 0011 0100 0000 0001 0000 0000 0000 1001 ori $1, $0, 9 0000 0000 0100 0001 0000 0000 0001 1000 mult $2, $1 0000 0000 0000 0000 0100 0000 0001 0010 mflo $8 0011 0100 0000 0001 0000 0000 0000 1001 ori $1, $0, 5 0000 0000 0100 0000 0000 0000 0100 1000 div $8, $1 ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Програм хөрвүүлэлт Хэдэн жилийн өмнө FORTRAN хэл дээр бичигдсэн програмыг ажиллуулахад үүнийг ассемблер хэл рүү хөрвүүлэх компайлер ашиглаж байв. Ассемблер програм ашиглан ассемблер хэлийг маши хэлрүү хөрвүүлнэ. Эцэст нь машин хэлийг компьютерийн санах ойд ачаалах програмаа ажиллуулна. Орчин үеийн компайлерууд ихэвчлэн эх програмыг объект модуль гэж нэрлэгдэх файлд агуулагдаж буй машин хэл рүү хөрвүүлдэг. Одоохондоо FORTRAN-г ассемблер хэл рүү хөрвүүлэх талаар бодоцгооё. FORTRAN нь дээд түвшний хэл юм. Архитектураас үл хамааран бүх төрлийн компютер дээр ажиллах зориулалттай. FORTRAN илэрхийлэл бичихэд компьютерийн архитектур мэдэх шаардлага байдаггүй ба ямар ч компьютер дээр ажиллах чадвартай. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Машин хэлнээс бусад бүх программчлалын хэлүүд ажиллахаасаа өмнө машин хэлрүү хөрвүүлэгдэх ёстой. Дээд түвшний хэл нь архитектураас тусгаарлагдсан байдаг. Энэ нь тусгай хөрвүүлэгч (compiler) шаарддаг. Илүү орчин үеийн хэлүүд нь машин хэлнээс бүр илүү холдсон байдаг. FORTRAN нь 50 жилийн настай хуучин хэл ба орчин үеийн хэлүүдийг бодвол машин хэл рүү илүү ойрхон юм. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] FORTRAN-н жишээ илэрхийлэл: result = 6*alpha+beta MIPS ассемблер хэл рүү хөрвүүлсэн хэсэг: lw $t0,alpha # copy alpha to register $t0 lw $t1,beta # copy beta to register $t1 mul $t2,$t0,6 # multiply $t0 times 6; result in $t2 add $t2,$t2,$t1 # add $t2 and $t1; result in $t2 sw $t2,result # copy answer to result Digital Equipment Corporation VAX ассемблер хэл рүү хөрвүүлсэн хэсэг: MULL3 #6,ALPHA,R5 ADDL3 R5,BETA,RESULT ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Машины хэл “Аssembly language.“ гэж нэрлэгдэх ганц хэл байдаггүй ба процессор бүл бүр (Intel, VAX, MIPS, Alpha, ...) өөрийн машин үйлдлүүдтэй бөгөөд үүнд тохирсон ассемблер хэлтэй байдаг. MIPS ассемблер хэл нь зөвхөн MIPS процессорт зориулагдсан. The VAX ассемблер хэл нь зөвхөн VAX процессорт гэх мэт. IBM компьютерууд болон Intel суурьтай компьютеруудийн ассембер хэлнүүд ялгаатай. Бүх процессорууд нэг ижил машин циклийг дагана. Процессорууд нь аль үйлдэл нь машин циклын "execute" фазад гүйцэтгэгдэхээрээ ялгагдана. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Ассемблер хэл нь тодорхой процессорын техник хангамж дээр үндэслэгдэн тооцооллыг илэрхийлнэ. Дээд түвшний программчлалын хэл нь асуудлыг шийдвэрлэх дээр үндэслэн тооцооллыг тайлбарлана. Олон төрлийн асуудал байдаг тул олон дээд түвшний хэл байх ба хэл бүр тухайн төрөл асуудалд зориулж загварчлагдсан байдаг. Жишээ нь, объект хандалтат хэл, тухайн асуудлын объектууд дээр үндэслэн үйлдлүүдтэй нь цуг тооцооллыг хийдэг. Ассемблер хэл дээр програм бичихээс илүүтэй дээд түвшний хэл дээр бичих нь илүү хялбар. Төгс програмчлалын хэл гэж байхгүйгээс хойш бүх асуудалд тохирсон хэл гэж байхгүй юм. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Процессорын архитектур нь харагдахуйц үед ассемблер хэл нь үйлдлийн систем, компайлер, холбоос, бага түвшний график болон бусад програмуудад зориулж ашиглагддаг. Ихэнх програмуудын чухал хэсэг нь ассемблер хэлдээр бусад хэсэг нь дээд түвшний хэл дээр бичигдсэн (ихэвчлэн С) байдаг. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Ассемблер хэл хамгийн ихээр өргөн ашиглагдсан програм нь embedded system юм. Энд процессорын чип нь тусгай зориулалтын машины нэг хэсэг юм. Жишээ нь агаарын тээврийн электроник, хиймэл дагуулын холбоо, DVD тоглуулагч, роботууд, автомашины электроник, гар утас болон консол тоглоомууд. MIPS чипүүд нь голдуу эдгээрт ашиглагдана.(ийм шалтгаанаар бусад процессоруудаас ялгаатай нь MIPS чипүүдийг жил бүр үйлдвэрлэгэд). ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Үндсэн cанах байгууламж Одоо компьютерийн системийн санах ойн талаар ярилцья. Найман бит нэг байтыг бүрдүүлнэ. Нэг бит нь дан ганц on/off утга юм. Дээр үеийн компьютеруудад санах ой дах битийн утгуутыг тохируулах хэд хэдэн мөр тээглүүрэн унтраагууртай байв. Эдгээр компьютерийг програмчлахын тулд эхний унтраагуур хавтанаас эхлээд машин үйлдэл бүрийн бит утгыг оруулах хэрэгтэй болно. Унтраагуур бүрийн дээр байрлах гэрэл нь on эсвэл off (1 or 0) байгааг илэрхийлнэ. Орчин үеийн компьютеруудад санах ой руу бит загваруудыг шилжүүлэх илүү тохиромжтой арга хэрэглэдэг болжээ. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Програмын машин үйлдлүүдийг бүрдүүлдэг байтуудыг санах ойд хадгалах ба хэрэгтэй үед нь процессор руу авдаг байна. Өгөгдөл мөн санах ойд хадгалагдана. Өгөгдөл болон үйлдлүүдийг хоёуланг нь санах ой дах хадгалах арга нь ихэнх орчин үеийн компьютеруудын үндсэн загвар болох Von Neumann-н машины онцлогуудын нэг юм. Ихэнх компьютеруудын адил MIPS-н санах ойн байт бүр хаягтай байна. Хаяг нь байтыг тодорхойлж байдаг бүхэл тоо юм. Хаягууд нь 0-тэгээс 4 тэрбум хүртэл байдаг. Гэхдээ MIPS дээр хэрэглэгчийн програм (таны бичиж буй шиг) болон өгөгдлүүд нь 2 тэрбум хүртэл хаягаар хязгаарлагдсан байдаг. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Үндсэн Санах байгууламж ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Architecture Компьютерийн архитектур нь компьютерийн эд ангиуд болон үндсэн үйлдлүүдийн логик дүрслэл юм. MIPS бүлийн компьютерууд нь бүгд ижил ассемблерийн түвшний архитектуртай . Энэ нь бүх MIPS машинууд нь ижил ассемблер хэлийг ашиглан програмчилж болно гэсэн үг юм. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Architecture Одоогийн архитектурыг гүйцэтгэж буй электроникууд нь чипний хувилбараас хамаарч ихээхэн ялгаатай байж болох юм. Энэ нь автомашины архитектуртай ижил юм. Хоёр Ягуар жолоочид адилхан харагдавч (ижил стиль, ижил удирдлага, ижил үйлдэл) бүрхүүл дорх эд ангиуд нь ялгаатай байна. Архитектур ижил боловч гүйцэтгэл нь ялгаатай. MIPS-н архитектур нь Pentium-н архитектураас ялгаатай. Хоёулаа Von Neumann машинууд, ерөнхийдөө адил харагдавч, нарийвчилсан үйлдлүүд нь тэс өөр юм. Эдгээр нь ялгаатай машин хэлтэй ийм учраас ассемблер хэл нь ялгаатай. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Эмуляци Процессорын архитектур нь эд анги болон үндсэн үйлдлүүдийн логик дүрслэл байдаг. Энэ нь архитектур хэрхэн ажилладаг талаар мэдээлэл өгдөггүй. Үйлдлүүд нь электорникийн түвшинд хэрэгждэг юм. Эдгээр нь програм хангамжтай цуг хэрэгждэг. Процессорын архитектурын хэрэгжилтийг гүйцэтгэдэг програм нь силикон дээр хийгдэж үйлдэлтэй логикийн хувьд ижил юм. Ийм програмыг эмулятор (emulator) гэж нэрлэнэ. Ямар ч төрлийн компьютер дээр эмулятор ажилладаг. Мэдээж хэн нэгнь эмулятор програм бичих ба энэ нь хүнд ажил байдаг. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Эмуляци Эмулятор програмын урсгалын процесс нь эмуляци хийгдсэн процессорын маши цикл байна. Харин одоо бол эдгээр алхамууд нь силикон дээр биш програм хангамж дээр хэрэгжинэ. Эмуляци хийгдсэн машин цикл хэдэн мянган програмын илэрхийлэлтэй холбогддог. Эмулятор ажиллаж байхад симуляцлагдсан машин цикл бүр процессор дээрх хэд хэдэн үйлдлүүд ажиллагаатай байхыг шаарддаг. Иймээс эмулятор нь эмуляци хийгдсэн процессороос илүү удаан ажиллагаатай байна. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Эмуляци Энэ хичээл MIPS архитектурд зориулсан эмулятор ашиглана. Эмулятор ашигласнаар хамгийн том давуу тал нь энд дүрслэгдэж буй архитектур нь эмулятороор хэрэгжиж архитектуртай яг тохирох юм. Эмулятор нь ихэнх десктоп компьютерууд дээр ажилладаг; PC, Mac, эсвэл бүр ... MIPS. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Салангид хөрвүүлэлт Процессор дээр ажиллаж буй эмулятор нь дебаг хийхэд байнга ашиглагдана. Эмулятортай ажиллах нь бодит техникийн хатуу силикон дээр ажиллахаас илүү тохиромжтой юм. Олон жилийн туршид ассемблер хэл нь чухал enterprise-wide програмчлалд нэг шалтгаанаар ашиглагдаж байсан: салангид эх файлууд дангаараа ассембл хийгдэж болох ба дараа нь нийлүүлэн (холбон) бүтэн ажиллагаа бүхий файл болгоно. Эх файл бүр объект файл руу ассембл хийгддэг байв. Үүнийг салангид ассембл гэж нэрлэнэ (эсвэл салангид хөрвүүлэлт). ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Салангид хөрвүүлэлт Объект модуль нь хараахан ажиллахад бэлэн болоогүй машин хэлний програмыг агуулсан файл юм. Хэд хэдэн шалтгаанаар ажиллахад бэлэн болоогүй байдаг: эх код нь бүрэн хөрвүүлэгдээгүй (илүү мэдээлэл хэрэгтэй үед), кодны санах ойн байрлал ба өгөгдөл нь тогтоогдоогүй, мөн програмыг бүрэн болгоход илүү код хэрэгтэй. Ассемблер нь эх файл бүрд объект модуль үүсгэдэг. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Салангид хөрвүүлэлт ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Модулиуд ачаалах Ассемблер хэлэнд том програмын хэсгүүд нь салангид эх файлууд болж салангид объект модулиуд руу бичигддэг. Салангид объект модулиуд нь линкер(холбогч)-р холбогдож ачаалах модуль буюу ажиллах файл болдог. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Модулиуд ачаалах ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Модулиуд ачаалах Бүх боломжит хэмжээ бүхий орчин үеийн програмууд ингэж бичигдсэн байдаг. Объект модулиуд нь ассемблер хэлний эхээс үүссэн байх шаардлагагүй юм. Дээд түвшний хэлний (С хэл гэх мэт) компайлер нь ассемблертэй төстэй объект модуль үүсгэдэг. Зураг дээр А объект модуль ассемблер програмаас үүссэн В модуль нь FORTRAN програмаас, харин С модуль нь COBOL програмаас үүссэн байж болзошгүй. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200] Модулиуд ачаалах Олон жилийн турш салангид хөрвүүлэлтийг дэмждэг ганц хэл нь Ассемблер, FORTRAN, COBOL байсаар ирсэн. Мөн үйлдвэрлэлд ашиглаж ирсэн хэлүүд нь Ассемблер, FORTRAN баCOBOL байсаар ирсэн. BASIC нь салангид хөрвүүлэлтийг дэмждэггүй байв; BASIC нь том хэмжээний хэрэглээний бичихэд ашиглагддаггүй байв. Pascal мөн BASICтэй адил байв. C нь салангид хөрвүүлэлтийг дэмждэг ба хэрэглээний програмуудыг бичихэд дийлэнх хувийг эзлэж байна. ШУТИC-КтМС 2009/Хавар [http://www.cdeq.mn/hw200]