مقاله اصول برنامه نویسی اسمبلی


دنلود مقاله و پروژه و پایان نامه دانشجوئی

مقاله اصول برنامه نویسی اسمبلی مربوطه  به صورت فایل ورد  word و قابل ویرایش می باشد و دارای ۴۷  صفحه است . بلافاصله بعد از پرداخت و خرید لینک دنلود مقاله اصول برنامه نویسی اسمبلی نمایش داده می شود، علاوه بر آن لینک مقاله مربوطه به ایمیل شما نیز ارسال می گردد

 فهرست

اصول برنامه‌نویسی اسمبلی ۲
برنامه‌نویسی در C 11
مزیت‌های C 11
معماری تراشه ۱۲
خصوصیات و محدودیت‌ها ۱۳
درون تراشه ۱۴
حافظه ۱۵
اشاره‌گر پشته برنامه ۱۷
اشاره‌گر پشته داده ۱۹
کنترل و وضعیت اندپوینت ۲۶
کنترل وضعیت USB 27
اصول راه‌انداز دستگاه ۲۹
انواع استاندارد دستگاهها ۳۲
دستگاههای شخصی ۳۳
راه انداز دستگاه ۳۳
مدهای کابر و هسته ۳۴
مدل راه انداز Win32 37
مدل های راه انداز در ویندوزهای مختلف ۳۸
زبانهای برنامه نویسی ۳۹
لایه های راه انداز USB 40
راه انداز کاربردی ۴۱
راه اندازهای باس ۴۲

 

CPU تراشه enCorRe دستور پشتیبانی می‌کند. همه برنامه‌ها باید از این ۳۷ دستور استفاده کنند. سیپرس یک مترجم مجانی ارائه می‌دهد که کدهای اسمبلی را که شما می‌نویسید به فایل‌های موضوع، که به منظور برنامه‌ریزی در EPROM تراشه تهیه می‌شوند، تبدیل می‌کند. اگر ترجیح دهید که در C برنامه‌نویسی کنید، سیپریس یک مفسر C نیز پیشنهاد می‌کند.

اگر با برنامه‌نویسی اسمبلی میکروکنترلر آشنایی داشته باشید، برنامه‌نویسی برای enCoRo  نیز مشابه همان است. اما اگر با برنامه‌نویسی در بیسیک و C آشنا هستید، باید بدانید که در برنامه‌نویسی کدهای اسمبلی بسیاری از عملگرهای زبانهای سطح بالا موجود نیست در اینجا دیگر حلقه‌های While یا ‌for یا انواع مختلف متغیرها وجود ندارد. اما برای تراشه‌‌ای مانند enCoRo که به منظور کارهای نمایشی و کنترلی غیر پیچیده طراحی شده است، استفاده از کدهای اسمبلی عملی است. برای برنامه‌های کوتاه، که به سرعت اجرا می‌شوند احتیاجی به خرید مفسر نیست.


اصول برنامه‌نویسی اسمبلی

برنامه‌نویسی اسمبلی شامل یک مجموعه از دستورات است که هر کدام مربوط به کدهای ماشینی هستند که تراشه از آنها پشتیبانی می‌کند. مثلاً دستور iord، که محل io را می‌خواند به کد h29 مربوط است. به جای به خاطر آوردن h 29، شما می‌توانید iord را بنویسید، و مترجم معادل سازی را برای شما انجام خواهد داد. دستور iord همچنین احتیاج به یک عملوند دارد که محل خواندن را مشخص کند. به عنوان مثال ۰۱h iord پورتی با آدرس h 10 را می‌خواند.

زبان برنامه‌نویسی اسمبلی همچنین می‌تواند شامل دایرکتیو[۱] و توضیحات باشد. دایرکتیوها دستوراتی هستند که به جای اینکه مربوط به CPU باشند، مربوط به مترجم می‌باشند. دایرکتیوها شما را قادر می‌سازند که محلی از حافظه را مشخص کنید، متغیرهایی تعریف نمایید. در کل، نقشی که مترجم در کنار اجرای دستورات مشخص شده باید ایفا کند را نشان می‌دهند. یک نقطه ویرگول ( : )یا ممیز دوبل ( // ) یک عبارت توصیفی را مشخص می‌کنند که مترجم از آنها چشم‌پوشی می‌کند.

مترجمی که توسط سیپرس ارائه می‌شود، cyasm.exe قابل اجرا در پنجره داس[۲] می‌باشد. سیپرس مرجع‌ها و راهنمای استفاده برای کاربرانی را تهیه کرده است که چگونگی استفاده از مترجم را شرح می‌دهد.

مترجم از دو مجموعه دستور مشابه برای CPU‌های سری A و سری‌B پشتیبانی می‌کند. تراشه‌های enCoRo از سری B هستند. تراشه‌های قدیمی‌تر سیپرس، مانند ۶۳۰۰۱، از سری A بودند و از همه دستورات بجز بعضی از آنها پشتیبانی می‌کنند.

کدهای مترجم

راهنمای کاربران دارای توضیحات کاملی در مورد کد اسمبلی و دایرکتیوهاست و در اینجا برخی از جزئیات آن تکرار می‌شود. جدول ۱-۸ خلاصه‌ای از کدها می‌باشد و جدول ۲-۸ خلاصه‌ای از دایرکتیوها را نشان می‌دهد. کدهای ماشین تراشه به ۳۷ دستور ترجمه شده است.

 

جدول ۱-۸: متجرم Cyasm از ۳۷ دستور اسمبلی برای enCoRo پشتیبانی می‌کند

نوع دستور

دستور

توضیح

تابعهای منطقی و ریاضی

ADD

اضافه کردن بدون نقلی

ADC

اضافه کردن همراه با نقلی

AND

AND کردن بیتی

ASL

انتقال به چپ منطقی

ASR

انتقال به راست منطقی

CMP

 مقایسه

CPL

متمم کردن آکومولاتور

DEC

کاهش

INC

افزایش

OR

OR کردن بیتی

RLC

چرخش به چپ همراه با نقلی

RRC

چرخش به راست همراه با نقلی

SUB

 تفریق بدون نقلی

SBB

تفریق همراه با نقلی

XOR

OXR بیتی

پرشهای برنامه و کنترلی

GALL

فراخوانی تابع

HALT

اجرای ایست

RETI

بازگشت از وقفه

JACC

 پرش آکومولاتور

JC

پرش در صورتی که نقلی یک باشد

JMP

پرش

JNC

پرش در صورتی که نقلی صفر باشد

JNZ

پرش اگر صفر نباشد

JZ

پرش اگر صفر باشد

RET

بازگشت

XPAGE

صفحه حافظه

 

ادامه جدول ۱-۸: مترجم Cyasm از ۳۷ دستور اسمبلی برای enCoRo پشتیبانی می‌کند

نوع دستور

دستور

توضیح

انتقال داده

INDEX

خواندن جدول

IORD

خواندن از I/O

IOWR

نوشتن بر I/O

IOWX

مشخص کردن نوشتن I/O

MOV

انتقال

POP

انتقال داده از پشته به آکومولاتور

PUSH

انتقال داده از آکومولاتور به پشته

SWAP

SWAP

بقیه

DI

غیر فعال کردن وقفه‌ها

EI

فعال کردن وقفه‌ها

NOP

بدون عمل

این دستورات، تابعهای اصلی ریاضی و منطقی، پرسشهای برنامه و کپی داده‌ها از رجیسترها، پورت‌ها و RAM را انجام می‌دهند، دو بیت پرچ نقلی[۳] و صفر اطلاعات بیشتری را ارائه می‌دهند. مانند اینکه نتیجه دستور add دارای سرریز[۴] بوده است یا خیر یا اینکه نتیجه صفر شده است یا نه.

تراشه از سه حالت آدرس دهی پشتیبانی می‌کند که چگونگی استفاده از عملوند را برای دستور مشخص می‌کند. همه دستورات از هر سه حالت  آدرس دهی پشتیبانی نمی‌کنند.

در آدرس دهی سریع، دستورات از مقدار عملوند مستقیماً استفاده می‌کنند. این دستور از آدرس دهی سریع برای جمع کردن h 60 با مقدار آکومولاتور استفاده می‌کند.

Add   A/       ۶۰h

در آدرس دهی مستقیم، دستور با عملوند شبیه به آدرس رفتار می‌کند و از مقداری که در آن آدرس ذخیره شده استفاده می‌نماید. این دستور از آدرس دهی مستقیم برای جمع کردن مقداری که در آدرس h60 از RAM نوشته شده با محتویات آکومولاتور استفاده می‌کند.

 Add     A/      [۶۰h]

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

استفاده از مترجم

مترجم یک برنامه تحت داس می‌باشد. این دستور:

cyasm test.asm

فایل ‏test.asm را اسمبل می‌کند.

مترجم سه فایل ایجاد می‌کند:

test.asm که کدهای اسمبل شده‌ای برای استفاده در کیت ارتقا هستند، شما می‌توانید از این فایل برای بارگذاری کدها از کامپیوتر بهRAM برد ارتقا استفاده کنید.

در اینجا بخشی از فایل rom، هنگامی که در وایرشگر متنی باز می‌شود نشان داده شده است:

۲۴

۸۱

۱۵

۸۰

۱۰

۸۰

۹۹

۸۰

۱۰

۸۰

۸۵

۸۰

۹۹

۸۰

۸C

۸۰

۲۱

۲A

۲D

۲۰

۱E

۲۰

۱A

۲D

۳۷

۲۷

۲۰

A0

۰۰

۱۶

۳۷

۱A

جدول ۲-۸: مترجم cyasm از ۱۳ دایرکتیو پشتیبانی می‌کند

دایرکتیو

توضیح

CPU

مرجع خصوصیات محصول

DB

تعریف بایت

DS

تعریف یک رشته اسکی

DSU

تعریف یک رشته، unicode

DW

تعریف یک کلمه (۲بایت)

DWL

تعریف یک کلمه با بعضی خصوصیات

EQU

برابری نشانه‌ای با یک مقدار متغیر

FILLROM

تعریف مقدار برای حافظه برنامه بی‌استفاده

INCLUDE

اضافه کردن یک فایل

MACRO

تعریف ماکرو

ORG

مبدأ برنامه

XPAGEON

 فعال کردن XPAGE

XPAGEOFF

غیر فعال کردن XPAGE

 این فایل حاوی خطوطی است که از هشت بایت هگزاسکی[۵]    با استفاده از فاصله‌ای بین هر کدام تشکیل شده است.

در قالب‌بندی هگزاسکی، هر بایت با دو کد اسکی نمایش داده می‌شود که هر کد یک کاراکتر هگزادسیمال را نشان می‌دهد. مثلاً، بایت h 80 با کدهای اسکی h 38 برای ۸ و h30 برای صفر نمایش داده می‌شود. استفاده از قالب‌بندی هگزاسکی شما را قادر می‌سازد که به راحتی در ویرایشگر متنی مقادیر بایت را ببینید (مثلاً ۸۰). وقتی که کد در RAM برد ارتقا ذخیره شود. RAM شامل بایت‌های باینری می‌شود که توسط بایت‌های هگزاسکی نشان داده شده است. مثلاً، h 80 به ۱۰۰۰۰۰۰۰ در باینری ترجمه می‌گردد.

‏test.hex کدهای اسمبلی در قالب‌بندی هگزاینتل می‌باشد. بسیاری از برنامه‌ریزان EPROMها از جمله Hi-Lo شرکت سیپرس، از این قالب‌بندی پشتیبانی می‌کنند. کیت ارتقاء می‌تواند به جای قالب‌بندی rom. از این قالب‌بندی استفاده کند. قالب‌بندی هگزاینتل از کاراکترهای هگزاسکی و اطلاعات آدرس دهی استفاده می‌کند که در اینجا داده‌هایی که در یک خط فایل hex.* موجود است را می‌بینید.

۲۰۰۰۰۰۰۰۸۰۹۹۸۰۱۰۸۰۱۵۸۱۲۴۸۰۸C8099808580102D1A201E202D2A211A371600A0202737A1

test.hex یک فایل لیستی است که توسط مترجم ایجاد می‌گردد. این فایل هر خط کد اسمبلی و توضیحات را نشان می‌دهد. در ادامه آنها، کدهای برنامه معادل و آدرسی که باید در آنجا ذخیره شوند نمایش داده می‌شود. وقتی که از برنامه‌های نمایشی استفاده می‌کنیم. این فایل لیستی، مفید است. مثلاً اگر می‌خواهید که در یک نقطه اجرای برنامه را ثابت کنید، می‌توانید از این فایل لیستی برای پیدا کردن آدرس وابسته به آن خط استفاده کنید.

ستون سمت چپ، آدرس در حافظه برنامه را مشخص می‌کند. این آدرس وقتی که خط، فقط شامل توضیح یا برچسب است تغییر نمی‌کند. دو ستون بعدی بایت‌های ذخیره شده در هر آدرس می‌باشد. مثلاً، در محل CD03، مقدار Ah 2 کدی برای iowr و h 14 نشان دهنده رجیستری است که می‌خواهیم روی آن نوشته شود. ستون بعدی تعداد سیکل کلاک است که دستور استفاده می‌کند (۵). ستونهای سمت راست نیز شامل کدهای اسمبلی و توضیحات می‌باشند.

برنامه‌نویسی در C



[۱]- Directive

[۲]- Dos

[۳]- carry

[۴]-Overflow

[۵]- ASCII hex

 

45,000 ریال – خرید

 تمام مقالات و پایان نامه و پروژه ها به صورت فایل دنلودی می باشند و شما به محض پرداخت آنلاین مبلغ همان لحظه قادر به دریافت فایل خواهید بود. این عملیات کاملاً خودکار بوده و توسط سیستم انجام می پذیرد.

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

 

مطالب پیشنهادی:
  • مقاله مفاهیم برنامه‌نویسی تحت وب با استفاده ازASP.NET
  • مقاله فروشگاه الکترونیکی
  • برچسب ها : , , , , , , , ,
    برای ثبت نظر خود کلیک کنید ...

    براي قرار دادن بنر خود در اين مکان کليک کنيد
    به راهنمایی نیاز دارید؟ کلیک کنید
    

    جستجو پیشرفته مقالات و پروژه

    سبد خرید

    • سبد خریدتان خالی است.

    دسته ها

    آخرین بروز رسانی

      پنج شنبه, ۳۰ فروردین , ۱۴۰۳
    
    اولین پایگاه اینترنتی اشتراک و فروش فایلهای دیجیتال ایران
    wpdesign Group طراحی و پشتیبانی سایت توسط دیجیتال ایران digitaliran.ir صورت گرفته است
    تمامی حقوق برایbankmaghale.irمحفوظ می باشد.