زبان برنامه نویس ماشین (یا به اختصار زبان ماشین) زبان برنامه نویسی است که
از زبان های برنامه نویسی سطح پایین (Low Level Programming Language) محسوب می شود و
کار آن به طور عمده رساندن اطلاعات به پردازنده است که این کار را با به کارگیری اعداد 1 و 0 انجام می دهد.

شاید این روز ها کاربرد این زبان نسبتا کم شده باشد اما هنوز هم هر مهندس الکترونیک باید با این زبان آشنا باشد.

در این مقاله، به صورت مفصل به بررسی مفاهیم اشاره شده خواهیم پرداخت.

زبان برنامه نویسی ماشین

#1 تفاوت زبان برنامه نویسی سطح پایین و بالا

نیاز است که قبل از آنکه به سراغ توضیح زبان ماشین بپردازیم به شما مطالبی در مورد زبان های پایین رده و بالا رده یا همان زبان های سطح پایین و سطح بالا  بیاموزیم.

زبان های برنامه نویسی به دو بخش زبان های برنامه نویسی بالا رده (High Level Programming Language) و زبان های برنامه نویسی پایین رده (Low Level Programming Language) قسمت می شوند.

زبان های سطح بالا یا بالا رده برای ساخت نرم افزار ها و بازی ها و سایت ها استفاده می شوند ولی
زبان های سطح پایین یا پایین رده برای ارسال اطلاعات و دیتا به پردازنده ساخته می شوند که
این کار را به کمک دو عدد 0 و 1 انجام می دهند.

به این نوع فرمت مورد استفاده که
به فرمت صفر و یک و یا دودویی معروف است فرمت باینری می گویند که
زبان مشترک درک و انتقال دیتا به پردازنده کامپیوتر هاست.

تفاوت های زبان های برنامه نویسی سطح پایین و بالا

 #2 زبان های برنامه نویسی سطح پایین

می دانیم که هر پردازنده از تعداد زیادی سوئیچ تشکیل شده که
غیر فعال و فعال شدن هر سوئیچ یا به زبان ساده خاموش و روشن شدن هر سوئیچ یک پیام خاص را به پردازنده می دهد.

روشن شدن سوئیچ ها را با نماد 1 و خاموش شدن این سوئیچ هارا با نماد 0 نشان می دهند و
این مکانیزم مورد استفاده در زبان ماشین است.

زبان های برنامه نویسی سطح پایین و زبان ماشین یادگیری دشواری دارند، به همین دلیل است که
زبان برنامه نویسی سطح بالا ساخته شده است تا کاربری آن راحت تر باشد.

زبان های برنامه نویسی سطح بالا اطلاعاتی از کد نویس که به صورت ساده نوشته می شوند را گرفته و
تبدیل به 0 و 1 هایی می کند که برای پردازنده قابل فهم هستند و
سپس اطلاعات را به پردازنده می دهد.

سطح پایین

#3 زبان ماشین چیست؟

در این زبان برنامه نویسی پایین رده اطلاعات به صورت رشته ای از کدها با فرمت دودویی یا همان باینری به پردازده مرکزی کامپیوتر (CPU) ارسال می شوند.

این را هم ببینید
اعداد باینری

کدها و دستورات زبان ماشین با کمک  تفسیر کننده ای که ریزبرنامه (Micro Program) نام دارد به
سیگنال های سخت افزاری مفهومی و قابل درک برای قسمت های مختلف سیستم تفسیر می شوند.

فرمت باینری در اصل برای مفهوم کردن اطلاعات برای پردازشگر مرکزی کامپیوتر است.

به دلیل فرکانس کاری بالای پردازنده مرکزی کامپیوتر دستورات با فرمت باینری با سرعت بالایی پردازش می شوند.

وقتی ما به پردازنده مرکزی سیستم در فرمت باینری اطلاعات می دهیم به آن زبان برنامه نویسی ماشین می گویند.

در زمان های گذشته، از زبان برنامه نویسی ماشین به صورت مستقیم برای انتقال اطلاعات و فهماندن اطلاعات به پردازشگر مرکزی سیستم استفاده می کردند که
در حال حاضر به خاطر داشتن حجم بالای نوشتن رشته کدها و
همچنین احتمال زیاد خطا در این کار، زبان برنامه نویسی ماشین به جای استفاده مستقیم به صورت غیر مستقیم مورد استفاده می شود.

به دلیل همین مشکلاتی که گفتیم در زبان برنامه نویسی ماشین در فرمت باینری، کد نویسان فرمت هگزادسیمال را انتخاب کردند و
با فرمت باینری عوض کردند که
با اینکه خیلی از مشکلات پیشین آن رفع شده است اما همچنان مشکلات و خطاهای بسیاری دارد.

این را هم ببینید
اعداد هگزادسیمال

به همین دلیل کدنویسان برای رفع این مشکلات و خطاها شیوه های جدیدی برای مفهوم دهی اطلاعات به پردازنده مرکزی سیستم در پیش گرفته اند.

انواع زبان برنامه نویسی

#4 معایب زبان برنامه نویسی ماشین

  1. برنامه نویسی این زبان به علت حجم بالای رشته کدها بسیار ملال آور است.
  2. یادگیری و آموختن زبان برنامه نویسی ماشین بسیار سخت و مشکل است.
  3. وقتی شما دارید رشته کدها را می نویسید باید به ویژگی های ساختاری و
    همچنین قطعات سخت افزاری کامپیوتر توجه کنید که کار را سخت تر می کند.
  4. عیب یابی در این نوع برنامه نویسی به خاطر حجم بالای رشته کدها تقریبا غیر ممکن و بسیار مشکل است.

#5 شباهت و تفاوت زبان ماشین و اسمبلی

#1-5 شباهت ها

  1. هردوی زبان های برنامه نویسی ماشین و اسمبلی زبان های سطح پایین محسوب می شوند
  2. کدهای نوشته شده در هر دو زبان برنامه نویسی اسمبلی و ماشین به ساختار پردازنده مرکزی کامپیوتر وابسته هستند.

#2-5 تفاوت ها

  1. زبان برنامه نویسی ماشین بسیار نسبت به زبان برنامه نویسی اسمبلی به زبان کامپیوتر نزدیک تر است.
  2. در زبان برنامه نویسی اسمبلی از کلماتی استفاده می شود که
    مخفف هستند و اختصار یافته اند و به SYNTAX و یا MOV شهرت دارند و
    در زبان برنامه نویسی ماشین اینگونه نیست.
  3. زبان اسمبلی قابل درک برای انسان است ولی زبان ماشین این چنین قابلیتی ندارد.
  4. کد های ماشین مستقیم توسط پردازنده قابل فهم هستند ولی
    کد های زبان برنامه نویسی اسمبلی نیاز دارند توسط اسمبلر به کدهای ماشین تبدیل شوند.

شباهت ها و تفاوت های زبان برنامه نویسی ماشین و اسمبلی

#6 اسمبلر چیست؟

اسمبلر یا همگذار کامند های برنامه اسمبلی که کدنویس نوشته است را به رشته های عددی قابل فهم برای پردازنده مرکزی کامپیوتر تبدیل می کند و
آن ها را به فرمت باینری یا دودویی می برد.

اسمبلرهای سطح بالا نیز وجود دارند و
ویژگی های برنامه نویسی سطح بالا را مانند تعریف توابع، ساختار های کنترلی if و همچنین خاصیت شی گرایی در زبان های شی گرا را هم در خود دارد و
این باعث می شود که کدنویسی با کمک زبان اسمبلی تسهیل یابد.

عملی را که دستورات اسمبلی به دستورات ماشینی تبدیل می شوند را اسمبلینگ (Assembling) می گویند.

فایل های جدایی که تولید شده اند با استفاده از لینکر (Linker) به یک برنامه قابل اجرا به صورت مثال با فرمت exe تغییر می دهد.

در بعضی مواقع نیاز است تا برنامه نویسی برعکس فرآیند اسمبلینگ انجام شود که
این کار را یک برنامه به اسم دی اسمبلر (Dis assembler) انجام می دهد که
در اصل با این کار کد های ماشین به کد ها و دستورات اسمبلی تغییر می کنند.