fbpx

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

Ассемблер сурах хэрэгтэй вэ?

  • Компьютер хэрхэн ажилладагийг ойлгох – Процессор (CPU) зааварчилгааг хэрхэн боловсруулдгийг сурах.
  • Гүйцэтгэлийг сайжруулах – Ассемблер хэл програмуудыг илүү хурдан ажиллуулахад ашиглагддаг.
  • Кибер аюулгүй байдал & Хакердалт – Reverse engineering болон аюулгүй байдлын шинжилгээнд хэрэглэгддэг.
  • Суулгагдсан систем & Тоног төхөөрөмжийн хяналт – Микроконтроллер зэрэг жижиг төхөөрөмжүүд Ассемблерийг ашигладаг.

Үндсэн ойлголтууд

1. Бүртгэгч (Register) – CPU-ийн түр санах ой

Бүртгэгчүүд нь CPU-ийн доторх өгөгдлийг түр хадгалдаг жижиг санах ойн хэсгүүд юм. Эдгээр нь CPU-ийн гартай төстэй – мэдээллийг хурдан хандах боломжтойгоор барьж байдаг.

  • EAX, EBX, ECX, EDX – Ерөнхий зориулалттай бүртгэгчид.
  • ESP, EBP – Санах ойн стектэй (stack) ажиллахад ашиглагддаг.
  • EIP – Дараагийн гүйцэтгэгдэх зааврыг заана.

2. Түгээмэл ашиглагддаг командууд

КомандХийх үйлдэл
MOVӨгөгдлийг нэг газраас нөгөөд шилжүүлэх
ADDТоонуудыг нэмэх
SUBТоонуудыг хасах
MULТоонуудыг үржих
DIVТоонуудыг хуваах
JMPПрограмын өөр хэсэг рүү үсрэх
CMPХоёр утгыг харьцуулах
JE, JNEТэнцүү / тэнцүү биш үед үсрэх

Энгийн жишээ : (Hello World гэж хэвлэх)

section .data
    msg db "Hello, World!",10  ; Хэвлэх текст
    len equ $ - msg            ; Текстийн урт

section .text
    global _start
_start:
    mov eax, 4        ; Бичих системийн дуудлага
    mov ebx, 1        ; Дэлгэц рүү хэвлэх
    mov ecx, msg      ; Мессежийн хаяг
    mov edx, len      ; Мессежийн урт
    int 0x80          ; Үйлдлийн системийг дуудах

    mov eax, 1        ; Гарах системийн дуудлага
    xor ebx, ebx
    int 0x80

Дүгнэлт

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

Leave a Reply