fbpx

Ассемблей хэл нь компьютерийн техник хангамжтай шууд холбогдоход зориулагдсан доод түвшний програмчлалын хэлний нэг төрөл юм.Хоёртын болон арван арван тэмдэгтээс бүрддэг машины хэлээс ялгаатай нь ассемблер хэл нь хүмүүст уншигдахуйцаар бүтээгдсэн байдаг. Ассемблер хэл гэх мэт доод түвшний програмчлалын хэлүүд нь компьютерийн үндсэн техник хангамж болон Python эсвэл JavaScript зэрэг орчин үеийн програм хангамжийн программуудыг бичсэн дээд түвшний програмчлалын хэлнүүдийн хооронд зайлшгүй шаардлагатай гүүр юм.

Ассемблер хэл:

  • Өндөр түвшний хэлийг машины хэл рүү хөрвүүлдэг програмчлалын хэлний нэг төрөл юм.
  • Програм хангамжийн програмууд болон тэдгээрийн үндсэн техник хангамжийн платформуудын хооронд зайлшгүй шаардлагатай гүүр юм.
  • Кодыг ашиглах боломжтой машины заавар болгон хөрвүүлэхийн тулд хэлний syntax, labels, operator, зааварт тулгуурладаг.
  • Нэг дамжлагатай эсвэл олон дамжилттай ассемблеруудаар дамждаг бөгөөд тус бүр нь тодорхой хэрэглээ, давуу талтай байдаг.
  • Өнөөдөр ассемблей хэлийг шууд бичих нь ховор боловч гүйцэтгэлийн шаардлага маш өндөр байх зэрэг зарим төрлийн програмуудад ашиглагддаг хэвээр байна.

Ассемблей хэлүүд хэрхэн ажилладаг

Үндсэндээ компьютерийн гүйцэтгэдэг хамгийн энгийн заавар бол нэг ба тэгээс бүрдэх хоёртын кодууд юм.Эдгээр кодыг компьютерийн физик хэлхээгээр дамжуулж буй цахилгааны “асаах” ба “унтраах” төлөвт шууд хөрвүүлдэг. Үндсэндээ эдгээр энгийн кодууд нь програмчлалын хэлний хамгийн үндсэн төрөл болох “машины хэл”-ийн үндэс болдог.

Өндөр түвшний командуудыг машины хэл рүү хөрвүүлэх шаардлагатай. Программистууд гараар хийхээс илүүтэйгээр эдгээр дээд болон доод түвшний хэлнүүдийг автоматаар орчуулах зорилготой ассемблер хэлнүүдэд тулгуурладаг. Анхны ассемблер хэлүүд 1940-өөд онд бүтээгдсэн бөгөөд орчин үеийн програмистууд болон орчин үеийн байгалийн хэлний процессорууд ассемблер хэлтэй харьцахад маш бага цаг зарцуулдаг ч тэдгээр нь компьютерийн ерөнхий үйл ажиллагаанд зайлшгүй шаардлагатай хэвээр байна. 

Ассемблей хэлний бүрэлдэхүүн хэсгүүд

Syntax

Аливаа програмын хэл дээр ямар нэгэн код бичихдээ хөрвүүлэгчид кодыг алдаагүй гүйцэтгэх боломжийг олгохын тулд дагаж мөрдөх ёстой дүрмийн тодорхой дараалал байдаг. Эдгээр дүрмүүд нь синтакс гэж тодорхойлогддог бөгөөд тэдгээр нь зөвшөөрөгдөх тэмдэгтүүдийн хамгийн их тоо, кодын мөр ямар тэмдэгтээр эхлэх ёстой, эсвэл “цэг таслал” нь ямар тэмдэгтийг илэрхийлдэг гэх мэт шалгууруудыг агуулна.

Label

Label нь заавар эсвэл өгөгдөл хадгалагдаж буй хаягийг илэрхийлэх тэмдэг юм. Үүний зорилго нь мэдэгдэлд дурдсан үед очих газар болж ажиллах явдал юм. Ассемблер хэлээр хаягийг ашиглаж болох хаана ч шошгыг ашиглаж болно. Бэлгэдлийн label нь таних тэмдэг, дараа нь хоёр цэгээс бүрддэг бол тоон label нь нэг дижитал, дараа нь хоёр цэгээс бүрдэнэ.

Operators

Мөн тушаал гэж нэрлэдэг операторууд нь Label-ны талбарын дараа үүсдэг логик илэрхийллүүд юм. Нэмж дурдахад түүний өмнө дор хаяж нэг хоосон зай байх ёстой. Операторууд нь үйлдлийн код эсвэл удирдамж байж болно. Опкод нь машины заавартай шууд тохирч байх ба үйлдлийн код нь заавартай холбоотой аливаа бүртгэлийн нэрийг агуулдаг. Эсвэл удирдамжийн үйлдлийн кодууд нь ассемблерийн мэддэг заавар юм.

Directive

Directive нь угсралтын явцад ямар үйлдлүүд хийгдэх ёстойг ассемблерийн заавар юм. Удирдамжууд нь хувьсагчдын санах ойг зарлах эсвэл нөөцлөх ач холбогдолтой; Эдгээр хувьсагчдыг илүү динамик функцуудыг гүйцэтгэхийн тулд процессын дараа эргэн санах боломжтой. Програмуудыг өөр өөр хэсгүүдэд хуваахад зааварчилгааг бас ашигладаг.

Macro

Ассемблер хэлний макро нь өгүүлбэрийн цуваа эсвэл хэв маягийг харуулсан загварын гутлын формат юм. Ассемблер хэлний хэллэгүүдийн энэ дараалал нь олон төрлийн программуудад нийтлэг байж болно. Макро байгууламжийг макро тодорхойлолтыг тайлбарлахад ашигладаг бол макро дуудлагыг эх код руу оруулж, макро хэллэгийн оронд “хэвийн” угсралтын кодыг ашигладаг.

Mnemonic

Мнемоник гэдэг нь үйл ажиллагааны товчлол юм. Илүү том, иж бүрэн кодыг илэрхийлэх товчилсон “opcode”-ийг зааж өгөхийн тулд угсрах програмын заавар бүрийн үйлдлийн кодонд мнемоникийг оруулдаг. 

Ассемблей хэлний давуу болон сул талууд

Ассемблей хэл нь ихэвчлэн өндөр түвшний хэлээс илүү хурдан ажилладаг. Ассемблер хэлний кодын устгах бүрэлдэхүүн хэсгүүдийг оруулах нь харьцангуй хялбар бөгөөд бусад төрлийн хэлтэй харьцуулахад ассемблер хэл нь даалгавар гүйцэтгэхэд цөөн заавар шаарддаг. Ассемблер хэл нь таны техник хангамжийг шууд удирдах боломжийг олгодог тул компьютер дээрээ илүү их хяналт тавихыг хүсдэг програмистууд ихэвчлэн ашигладаг. 

Ассемблей хэл нь хэд хэдэн сул талуудтай байдаг. Ассемблер хэлээр бичсэн урт программууд нь ихэвчлэн илүү хүнд тооцоолох хүч шаарддаг бөгөөд жижиг компьютер дээр ажиллах боломжгүй байдаг. Зарим нь ассемблер хэлний синтаксийг санахад илүү хэцүү мэт санагдаж магадгүй бөгөөд энэ нь илүү төвөгтэй тул ассемблер хэлийг ашиглан кодлоход нэлээд хугацаа шаардагдана. 

Давуу тал

  • Бусад хэлтэй харьцуулахад гүйцэтгэл нь илүү хялбар байж болох юм.
  • Бусад хэлтэй харьцуулахад гүйцэтгэл нь ихэвчлэн хурдан байдаг.
  • Техник хангамжийг шууд хянах боломжийг олгодог.
  • Код бусад хэлтэй харьцуулахад жижиг хэвээр байж магадгүй

Сул талууд

  • Өндөр түвшний хэлтэй харьцуулахад програмчлалыг сонгоход илүү хэцүү байж болох юм
  • Ассемблер хэлний синтакс хэцүү байдаг
  • Машин хооронд зөөврийн биш

Ассемблеруудын төрлүүд

Ассемблер хэлийг ассемблер ашиглан машины хэл рүү хөрвүүлэх ёстой. Ассемблерийн үндсэн хоёр төрөл байдаг.

Нэг дамжуулалттай ассемблер: нь програмыг нэг удаа сканнердаж, түүнтэй адилтгах хоёртын програмыг хийдэг. Энэ төрлийн ассемблер нь mnemonic кодын хүснэгтээс кодыг хайж ассемблер хэлний кодыг баталгаажуулдаг. Нэг дамжлагатай ассемблер нь олон дамжлагын ассемблерээс илүү хурдан байдаг бөгөөд ихэвчлэн ямар нэгэн завсрын код үүсгэх шаардлагагүй байдаг.

Олон дамжуулалттай ассемблер: гэдэг нь ассемблер нэгээс олон дамжуулалтыг ашигладаг гэсэн үг юм. Олон дамжлагатай ассемблерууд эхний дамжуулалт дахь тэмдэг бүр болон тэдгээрийн утгууд тус бүрээр хүснэгт үүсгэж, дараа нь шинэ код үүсгэхийн тулд дараагийн дамжуулалтуудад хүснэгтийг ашиглана. Тусдаа дамжуулалт бүр нь ихэвчлэн өөр тодорхой ажлыг гүйцэтгэдэг. Хэдийгээр ихэвчлэн удаан боловч модульчлагдсан бүтэцтэй олон дамжлагатай угсрагчийг өөр өөр машинд дахин ашиглаж болно.

Leave a Reply