অ্যাসেম্বলি ল্যাঙ্গুয়েজ ইন্সট্রাকশন

মাইক্রোপ্রসেসর এবং অ্যাসেম্বলি ল্যাঙ্গুয়েজ (Microprocessor and Assembly Language) - মাইক্রোপ্রসেসর (Microprocessor) - Computer Science

198

অ্যাসেম্বলি ল্যাঙ্গুয়েজ ইন্সট্রাকশন

অ্যাসেম্বলি ল্যাঙ্গুয়েজ হল একটি লো-লেভেল প্রোগ্রামিং ভাষা যা কম্পিউটারের হার্ডওয়্যার (প্রসেসর) এর নির্দেশনা সেটের সাথে সরাসরি সম্পর্কিত। এটি মানব-বান্ধব লেভেল কোডে কম্পিউটার প্রোগ্রাম তৈরি করতে সাহায্য করে, তবে এটি মেশিন ল্যাঙ্গুয়েজের তুলনায় কিছুটা বেশি পাঠযোগ্য। অ্যাসেম্বলি ভাষায় প্রতিটি কমান্ড বা ইন্সট্রাকশন একটি নির্দিষ্ট মেশিন ল্যাঙ্গুয়েজ কমান্ডের প্রতীকী রূপ (mnemonic) হয়।

অ্যাসেম্বলি ল্যাঙ্গুয়েজ ইন্সট্রাকশনগুলি সাধারণত CPU এর ডাটা প্রক্রিয়াকরণের জন্য ব্যবহৃত হয় এবং এগুলি নির্দিষ্ট প্রসেসরের নির্দেশনা সেটের উপর নির্ভর করে।

অ্যাসেম্বলি ল্যাঙ্গুয়েজ ইন্সট্রাকশনের উপাদান:

  1. ম্নেমনিক (Mnemonic): এটি কমান্ডের পাঠযোগ্য রূপ, যেমন ADD, MOV, SUB, ইত্যাদি। এগুলি মেশিন ল্যাঙ্গুয়েজ কোডের প্রতীক।
  2. অপারেন্ড (Operand): এটি সেই ডাটা বা রেজিস্টার যার সাথে অপারেশনটি সম্পাদন করতে হবে। উদাহরণস্বরূপ, R1, R2 রেজিস্টার বা মেমোরি অ্যাড্রেস হতে পারে।

অ্যাসেম্বলি ল্যাঙ্গুয়েজ ইন্সট্রাকশনগুলির উদাহরণ:


১. MOV ইন্সট্রাকশন

MOV ইন্সট্রাকশন ব্যবহার করে একটি রেজিস্টারে ডাটা স্থানান্তর করা হয়। এটি সাধারণত ডাটা এক রেজিস্টার থেকে অন্য রেজিস্টারে অথবা মেমোরি থেকে রেজিস্টারে স্থানান্তরের জন্য ব্যবহৃত হয়।

উদাহরণ:

MOV R1, 5    ; R1 রেজিস্টারে ৫ মান স্থাপন করা
MOV R2, R1   ; R2 রেজিস্টারে R1 এর মান (৫) স্থানান্তর করা

এই উদাহরণে:

  • প্রথম কমান্ড MOV R1, 5 রেজিস্টার R1 তে সংখ্যা রাখছে।
  • দ্বিতীয় কমান্ড MOV R2, R1 রেজিস্টার R2 তে R1 এর মান (৫) রাখছে।

২. ADD ইন্সট্রাকশন

ADD ইন্সট্রাকশন দুটি রেজিস্টারের মান যোগ করতে ব্যবহৃত হয়।

উদাহরণ:

ADD R1, R2, R3   ; R1 = R2 + R3

এই উদাহরণে:

  • ADD ইন্সট্রাকশন R2 এবং R3 এর মান যোগ করে R1 তে ফলাফল রাখবে।

৩. SUB ইন্সট্রাকশন

SUB ইন্সট্রাকশন দুটি রেজিস্টারের মধ্যে বিয়োগ করতে ব্যবহৃত হয়।

উদাহরণ:

SUB R1, R2, R3   ; R1 = R2 - R3

এখানে:

  • SUB ইন্সট্রাকশন R2 থেকে R3 বিয়োগ করে R1 তে ফলাফল রাখবে।

৪. MUL ইন্সট্রাকশন

MUL ইন্সট্রাকশন দুটি রেজিস্টারের মধ্যে গুণ করতে ব্যবহৃত হয়।

উদাহরণ:

MUL R1, R2, R3   ; R1 = R2 * R3

এখানে:

  • MUL ইন্সট্রাকশন R2 এবং R3 এর গুণফল R1 তে রাখবে।

৫. DIV ইন্সট্রাকশন

DIV ইন্সট্রাকশন দুটি রেজিস্টারের মধ্যে ভাগ করতে ব্যবহৃত হয়।

উদাহরণ:

DIV R1, R2, R3   ; R1 = R2 / R3

এখানে:

  • DIV ইন্সট্রাকশন R2 কে R3 দিয়ে ভাগ করে R1 তে ফলাফল রাখবে।

৬. CMP ইন্সট্রাকশন

CMP ইন্সট্রাকশন দুটি রেজিস্টারের মধ্যে তুলনা করতে ব্যবহৃত হয়, এবং ফলস্বরূপ ফ্ল্যাগ সেট করে।

উদাহরণ:

CMP R1, R2    ; R1 এবং R2 এর তুলনা করে ফ্ল্যাগ সেট করা

এখানে:

  • CMP ইন্সট্রাকশন R1 এবং R2 তুলনা করবে এবং ফলস্বরূপ ফ্ল্যাগ রেজিস্টার আপডেট করবে, যা পরবর্তীতে জাম্প ইন্সট্রাকশন (যেমন JZ, JNZ) দ্বারা ব্যবহৃত হতে পারে।

৭. JMP ইন্সট্রাকশন

JMP ইন্সট্রাকশন কম্পিউটারকে একটি নির্দিষ্ট অ্যাড্রেসে জাম্প করতে বলে, যা সাধারণত লুপ বা শাখার জন্য ব্যবহৃত হয়।

উদাহরণ:

JMP 1000    ; প্রোগ্রাম কাউন্টার ১০০০ অ্যাড্রেসে জাম্প করবে

এখানে:

  • JMP ইন্সট্রাকশন প্রোগ্রাম কাউন্টার কে নতুন অ্যাড্রেস ১০০০ তে রিডাইরেক্ট করবে।

৮. NOP ইন্সট্রাকশন

NOP (No Operation) ইন্সট্রাকশন কোনো কার্যকলাপ সম্পাদন না করে, বরং শুধু এক সাইকেল অপারেট করে। এটি সাধারণত ডিবাগিং বা টাইমিং এর জন্য ব্যবহৃত হয়।

উদাহরণ:

NOP   ; কোনো অপারেশন সম্পাদন না করে পরবর্তী ইনস্ট্রাকশনে চলে যাবে

৯. PUSH এবং POP ইন্সট্রাকশন

PUSH এবং POP ইন্সট্রাকশন স্ট্যাকের সাথে সম্পর্কিত। PUSH ডাটা স্ট্যাকের শীর্ষে রাখে এবং POP স্ট্যাকের শীর্ষ থেকে ডাটা বের করে।

উদাহরণ:

PUSH R1   ; R1 এর মান স্ট্যাকের শীর্ষে পুশ করবে
POP R2    ; স্ট্যাকের শীর্ষ থেকে মানটি R2 তে পপ করবে

সারসংক্ষেপ

ইন্সট্রাকশনকাজ
MOVএকটি রেজিস্টারে ডাটা স্থানান্তর করা
ADDদুটি রেজিস্টারের মান যোগ করা
SUBদুটি রেজিস্টারের মান বিয়োগ করা
MULদুটি রেজিস্টারের মান গুণ করা
DIVদুটি রেজিস্টারের মান ভাগ করা
CMPদুটি রেজিস্টারের মধ্যে তুলনা করা
JMPপ্রোগ্রাম কাউন্টারকে নির্দিষ্ট অ্যাড্রেসে জাম্প করা
NOPকোনো অপারেশন না করে পরবর্তী ইনস্ট্রাকশনে চলে যাওয়া
PUSH/POPস্ট্যাকের শীর্ষে ডাটা পুশ বা পপ করা

অ্যাসেম্বলি ল্যাঙ্গুয়েজ ইন্সট্রাকশনগুলি কম্পিউটার বা মাইক্রোকন্ট্রোলার এর বিভিন্ন কাজ সম্পাদনের জন্য ব্যবহৃত হয়, যেমন গণনা, মেমোরি অ্যাক্সেস, এবং সিস্টেম ফাংশন কল।

Content added By
Promotion

Are you sure to start over?

Loading...