دانلود تحقیق آدرس دهی (معماری کامپیوتر)

Word 234 KB 17375 45
مشخص نشده مشخص نشده کامپیوتر - IT
قیمت قدیم:۲۴,۰۰۰ تومان
قیمت: ۱۹,۸۰۰ تومان
دانلود فایل
کلمات کلیدی: آدرس دهی
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • Opcode : نشان دهنده ی عملیات دستورالعمل است.
    Shift:نشان دهنده ی این است که دستورالعمل کدهای شرطی را تغییر می دهد.
    Rd:رجسیتر مقصد را مشخص می کند.
    Rn:رجسیتر عملگر صحیح را مشخص می کند.
    بیت های [11:0]: بیت های shifter operand که بعداً توضیح داده می شود.
    بیت 25: I بیت است که مشخص کننده ی حالت بین immediate shifter و register-base shifter operand است.
    اگر بیت های نشان داده شده همه مقدارهای نشان داده شده را بگیرد دستورالعمل پردازش داده نیست بلکه در فضای دستورالعمل های لود و ذخیره یا محاسباتی قرار می‌گیرد.
    اگر بیت های نشان داده شده همه مقدارهای نشان داده شده را بگیرد دستورالعمل پردازش داده نیست بلکه در فضای دستورالعمل های لود و ذخیره یا محاسباتی قرار می‌گیرد.

    1= ]7[ bit 0= ]4[ bit 0= ]25[ bit 1-2: shifter operand یکی از سه فرمت زیر را دارد.

    مقدار عملگر فوری: مقداری است که توسط چرخش 8 بیت ثابت در 32 بیت word توسط یک عدد زوج (30، 000، 2،0) ایجاد می شود.

    چند مقدار صحیح ثابت: 0FF* 0 ، 104 * 0، FF * 0 F000000F* 0 ، 00FF * 0 چند مقدار ناصحیح ، 102* 0، 101*0 برای مثال: MOV R0#، ADD R3, RB, #1 CMP R7, #10000 BIC Rq, R8, 0* FF 00 مقدار عملگر رجیستر: مقدار یک رجسیتر است.

    به عنوان مثال مقدار را به منتقل می کند و MOV مقادیر و را جمع کرده و حاصل را در ذخیره می کند.

    و و ADD مقدار عملگر رجسیتر شیفت یافته: مقدار یک رجیستر که پیش از عملگر پردازش داده شیفت(چرخش) یافته باشد.

    5 نوع شیفت داریم: ASR Arithmetic shift right LSR: logical shift left LSR: logical shift right ROR: Rotate right RRX: Rotate right with entend مقدار عددی که می خواهیم شیفت بدهیم می تواند یک عدد فوری یا یک رجیستر باشد.

    مقدار R را به سمت چپ 2 بار شیفت 2# LSL، ، MOV داده و در می ریزد ROR، ، MOV که به مقدار شیفت داده شده است.

    1-3 عملگرهای فوری پردازش داده مقدار shifter- operand تشکیل می شود با چرخش یک مقدار فوری 5 بیتی در موقعیت های بیت زوج در یک 32 بیتی.

    اگر مقدار عددی صفر باشد‏‏، مقدار خروجی shifter مقدار C می باشد.

    در غیر این صورت به مقدار بیت 31 shifter operand ست می شود.

    : برابر است با حاصل چرخش immed-8 با مقدار rotate-imm*2 عملیات: shifter- operand = immed-8 rotate right (rotate-immed *2) if rotate-imm=0 then shifter- carry-out=c flay else shifter- carry-out= shifter- operand [31] مقادیر فوری مجاز می باشند که تنها از چرخش یک 8 بیتی به یک مقدار زوج در 32 بیتی word حاصل می شوند.

    Cncoding بعضی مقادیر بیشتر از یک روش برای encoding دارند.

    مثلاً E* 0= rotate-imm 3F* 0= 8-immd F*0= rotate-imm FC*0= 8-immed در چنین مواردی اسمبلر باید مقدار صحیح را طبق زیر انتخاب کند: اگر مقدار فوری در بازه ی 0 تا FF* 0 قرار داشته باشد، encoding با rotate-imm=0 قابل دسترس است.

    در غیر این صورت توصیه می شود که encoding با کوچکترین مقدار ممکن rotate- imm انتخاب شود.

    1-4 data processing operands – tegister : رجیستری را مشخص می کند که عملگر دستورالعمل مقدار آن است.

    Shifter-operand=Rm Shifter- carry= C flay Encoding: این دستورالعمل encode می شود که شیفت منطقی به سمت چپ (0= shift-imm) اگر به جای و مورد استفاده قرار گیرد و مقدار استفاده شده آدرس دستورالعمل است به علاوه ی 8.

    1-5- شیفت منطقی به سمت چپ به یک عدد فوری این عملگر به کار می رود برای تولید مقدار یک رجسیتر 1 مقدار شیفت چپ داده شده یک رجسیتر (ضرب شده در یک توانی از 2) مقدار خارج شده از shifter بیت آخری است شیفت داده شده و اگر شیفتی داده نشده باشد فلگ c است.

    , LSL# : رجسیتری است که مقدار آن باید شیفت داده شود.

    LSL: نشان دهنده ی شیفت منطقی به سمت چپ است.

    : مقدار شیفت را نشان می دهد که عددی است بین 0 تا 31 1-6: شیفت منطقی به سمت چپ با یک رجیستر این عملگر پردازش داده برای تولید مقدار یک یک رجیستر ضرب در یک توانی از 2 به کار می رود.

    عملگر این دستورالعمل مقدار رجیستر Rm است.

    که با مقدار بایت سمت راست Rs شیفت داده شده است.

    مقدار carry-out آخرین بیتی است که با شیفت خارج شده و صفر است اگر مقدار بشیتر از 32 باشد و فلگ c است اگر مقدار شیفت صفر باشد.

    , LSL رجیستری است که مقدار شیفت در آن قرار دارد.

    1-7: شیفت منطقی به سمت راست با یک عدد فوری درست مانند شیفت منطقی به سمت چپ است.

    1-8: شیفت منطقی به سمت راست با یک رجیستر درست مانند شیفت منطقی به سمت چپ با رجیستر 1-9- شیفت سمت راست محاسباتی با عدد فوری این عملگر پردازش داده یک مقدار عددی که به صورت محاسباتی به راست شیفت داده شده می دهد.

    عملگر این دستورالعمل مقدار رجسیتر Rm است که بوسیله یک عدد فوری بین 1 تا 32 شیفت محاسباتی داده می شود.

    بیت 31 Rm بیت خالی شده را می گیرد و بیت خارج شده آخرین بیت شیفت داده شده است.

    , ASR # arithmetic shift right :ASR عملیات: if shift-imm=0 then if Rm [31]=0 then shifter- operand=0 shifter-carry-out=Rm[31] else shifter-operand= 0* FFFFFFFF shifter-carry-out=Rm[31] else shifter-operand= Rm arithmetic – shift –right shifter- carry= Rm[shift-imm-1] این عملگر دستورالعمل مقدار رجیستر Rm است که توسط مقدار بایت پایین Rs شیفت محاسباتی به سمت راست داده شده است.

    بیت 31 Rm به جای بیت خالی قرار می گیرد.

    بیت carry-out آخرین بیت شیفت داده شده است.

    اگر مقدار شیفت بیشتر از 32 باشد این مقدار بیت علامت Rm است و اگر مقدار شیفت صفر باشد این مقدار‏ؤ مقدار فلگ c است.

    , ASR 1-11- چرخش به راست یک عددی فوری این عملگر برای تهیه ی مقدار یک رجیستر که توسط عددی ثابت چرخش یافته استفاده می شود که مقدار رجیستر Rm توسط عددی که رنج آن بین 1 تا 31 است چرخیده می شود بیت آخری که در سمت راست چرخیده شد در جای خالی سمت چپ قرار می گیرد و این بیت در carryout نیز قرار می گیرد.

    , RoR # : مشخص کننده ی چرخش است که عددی است بین 1 تا 31.

    اگر صفر باشد RRM نتیجه می شود.

    عملیات: if shift- inn= then RRX Else shift-imm>0 Shifter- operand – Rm rotate- right shift-imm Shifter- carry-out=Rm[shift-imm-1] 12-1 چرخش به راست با رجیستر برای تولید یک مقدار رجیستر که توسط یک متغیر چرخش داده شده به کار می رود.

    مقدار رجیستر Rm توسط بایت سمت راست Rs چرخیده می شود.

    اگر مقدار shift صفر باشد carry-out مقدار فلگ c می باشد.

    عملیات: if Rs [7:0]= 0 then shifter- operand= Rm shifter-carry-out= C Flag else if Rs[14:0]= 0 then shifter-operand=Rm shifter-carry-out=Rm [31] else shifter-operand=Rm rotate-right Rs[4:0] shifter-carry-out=Rm[Rs[4:0]-1] 13-1 Rotate with extend این عملگر برای تهیه ی چرخش به سمت راست 33 بیتی است که بیت 33 فلگ c در نظر گرفته می شود.

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

    و carry-out بیتی است که به بیرون شیفت داده شده است.

    , RRx این نوع مد توسط ADC ایجاد می شود.

    2.

    ذخیرع و لود word یا بابت بدون علامت 9 مد آدرس دهی برا محاسبه ی آدرس برای ذخیره و بود word یا بایت بدون علامت وجود دارد.

    حالت کلی آن.

    LDR |STR| {} {B} {T} , که adderessing- mode آن یکی از 9 روش زیر است.

    1- [ # t/- ] 2-[, t/- ] 3-[, t/- , # ] 4-[, # t/- ]!

    5-[, t/- ]!

    6-[, t/- , # ]!

    7-[], # t/- 8-[], t/- 9-[], t/- , ,# 2-1- encoding immediate offset Register offset/index Sealed register offset/index P بیت 0=P نشان دهنده ی استفاده post-index addressing- در این صورت ادرس رجیستر پایه برای آدرس دهی استفاده می شود و سپس آفست در رجیستر پایه اثر گذاشته و روی آن نوشته می شود.

    P=1: نشان دهنده ی آدرس دهی آفست یا pre- index (بیت W مشخص می کند) آدرس با اثر آفست روی رجیستر پایه ایجاد می شود.

    U: اگر U=0 آفست رجیستر پایه جمع و U=1 تفریق می شود.

    W: 0=P: اگر W=0، LPRB و LDR، STR و STRB و دسترسی نرمال به حافظه است.

    STRT, LDRT, LDRBT w=1 STRBT به کار می رود که دسترسی مد کاربر حافظه است.

    1=p، اگر 0= w رجیستر پایه تغییر نمی کند ولی اگر 1=w باشد مقدار محاسبه شده برای حافظه روی رجیستر پایه می ریزد.

    L: 1=L بود و 0= L ذخیره.

    2-2- آفست فوری این مد مقدار آفست را با رجیستر بیس جمع و یا از آن کم می کند تا آدرس حافظه بدست آید.

    : رجیستر شامل آدرس پایه را نشان می دهد.

    : مقدار آفستی که با آدرس پایه به کار می رود را نشان می دهد.

    If u=1 then Address= Rn+offset-12 Else N = Rn-N نکات: اگر [] به کار رود یعنی آفست برابر صفر است.

    B: 0=B Word و 1=B بایت بدون علامت.

    2-3- آفست رجسیتر آدرس‎ با جمع یا تفریق کردن مقدار رجیستر Rm با یا از مقدار رجیستر پایه بدست می آید.

    2-4- Scaleld register offset این مد آدرس دهی از جمع یا تفریق کردن مقدار شیفت داده یا چرخش داده ی Rm از یا با مقدار رجیستر Rn است.

    [, t/ 0 , LSL# [, t/- , LSR# ] [, t/- , ASR #] [, t/- , ROR ] [ t/- , RPX] 2-5- pre- index فوری آدرس لز جمع یا تفریق کردن مقدار آفست از مقدار رجیستر پایه Rn بدست می آید.

    اگر شرایط مشخص شده در دستورالعمل با حالت که شرایط تطبیق کند.

    آدرس محاسبه شده در رجیستر پایه Rn ذخیره می شود.

    [, # t/- ]!

    !: بیت W راست می کند برای تغییر رجیستر پایه 2-6- register pre- index درست مانند مد بالا ولی به جای آفست فوری مقدار رجیستر Rm جمع یا تفریق می شود.

    [, t/- ]!

    2-7 Scald register pre- index درست مانند 2-4 ولی با این تفاوت که pre- index است یعنی اگر شرایط دستورالعمل با حالت که شرایطی تطبیق کند، آدرس محاسبه شده در Rn ریخته می شود.

    [, t/- , LSL# ] 2-8 post- index فوری: [], #t/- در این مد آدرس دهی مقدار رجیستر Rn به عنوان آدرس در نظر گرفته می شود اگر شرایط دستورالعمل حالت کد شرایطی تطبیق کند مقدار آفست با یا از مقدار Rn جمع یا تفریق شده ورودی Rn ریخته می شود.

    مانند حالت قبل ولی مقدار Rm از مقدار Rn کم یا زیاد می شود.

    2-10 Scaled register post- indened درست مانند 2-7 اما آدرس مقدار Rn در نظر گرفته شده و سپس عملیات روی Rn صورت می گیرد.

    [], t/- , LSL# -3- مد آدرس دهی شماره 3: Addressing modes: load and store halfword or load signed byte 6 مد آدرس دهی برای محاسبه آدرس برای دستورالعمل های لود و ذخیره (signed or unsigned) و یا برای لود کردن signed byte وجود دارد.

    همان طور که در فصل 3 نیز مطرح شد‏، صورت کلی دستورالعمل های لود و ذخیره halfword و لود signed byte بصورت زیر است: LDR|STR{} H|SH|SB , بطوری که یکی از 6 حالت زیر است: 1)Immediate offset : [, # +/- ] 2)Register offset : [, +/- ] 3)Immediate pre-indexed : [ , # +/- ]!

    4)register pre- indexed : [, # +/- 5)Immediate post-indexed : [, # +/- 6)register post-indexed : [], +/- این مجموعه دستورالعمل های نوع کدگذاری بصورت زیر هستند: 1)Immediate offset/index 2)register offset/index حال به معرفی بیت های دیاگرام های کدگذاری بالا می پردازیم: بیت P: : نشان دهنده استفاده از آدرس دهی post-indexed می باشد، مقدار رجیستر پایه برای آدرس حافظه استفاده می شود و سپس offset بکار برده می شود در مقدار رجیستر پایه و مقدار جدید در رجیستر پایه نوشته می شود.

    : نشان دهنده استفاده از آدرس دهی offset یا pre-indexed می باشد.(بیت W یکی از این دو را مشخص می کند).

    در این حالت آدرس حافظه با اعمال کردن offset به مقدار رجیستر پایه تولید می شود.

    بیت U: مشخص می کند که آیا مقدار offset با مقدار پایه جمع می شود () یا از آن کم می شود )) بیت W، دو معنی دارد: اگر : بیت W باید صفر باشد وگرنه دستورالعمل unpredictable می شود.

    اگر : نشان می دهد که آدرس حافظه بر روی رجیستر پایه نوشته می‌شود یعنی در حالت آدرس دهی pre-indexed هستیم.

    که نشان می دهد مقدار رجیستر پایه بدون تغییر باقی می ماند.

    (offset addressing) بیت L: بین در دستورالعمل های و فرق قائل می شود.

    بیت S: بین دسترسی به signed halword و unsigned halfword فرق قائل می شود.

    بیت H: بین یک (1= =H) و یک Byte (0= =H) فرق قائل می شود.

    بایت های بدون علامت؛ (unsigned byte): اگر 0==S و 0==H بیانگر این است که یک بایت با علامت داریم که دستورالعمل های این بخش شامل این نوع از داده ها (یعنی unsigned byte) نیستند و چنین مدهای آدرس دهی در این بخش نداریم.

    در عوض، دیاگرام هایی با بیت های 5 و 6 صفر نشان دهنده دستورالعمل ضرب، SWP یا SWPB می باشند.

    هم چنین می دانیم که بایت های بدون علامت (unsigned bytes) با دستورالعمل‌های LDRB، LDRBT، STRB و STRBT قابل دسترسی هستند که از مدهای آدرس دهی نوع دوم که در قسمت قبلی بحث شدند استفاده می کنند.

    ذخیره های با علامت: signed stores اگر 1==S و 0==L باشد، بطور واضح دستورالعمل بیانگ ذخیره با علامت است که دستورالعمل تعریف شده در فضای load/store می باشد.

    بایت ها و halfwordهای با علامت می توانند توسط دستورالعمل های یکسان STRB و STRH ذخیره شوند یعنی همان دستورالعمل هایی که برای مقادیر بدون علامت استفاده می شوند.

    بنابراین هیچ دستورالعمل ذخیره مجزایی برای مقادیر با علامت وجود ندارد.

    Immediate offset-1-3 کدگذاری این مد آدرس دهی بصورت زیر است: این مد آدرس دهی، با جمع کردن/ کم کردن مقدار offset با/ از مقدار رجیستر پایه، آدرس حافظه مورد نظر را محاسبه می کند.

    همان طور که گفته شد دارای شکل عمومی [, #+/-] می باشند.

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

    : مقدار فوری offset را مشخص می کند که با مقدار Rn استفاده می شود برای تولید آدرس.

    مقدار offset به دو بخش تقسیم می شود؛ 4 بیت پایین در immedL و 4 بیت بالا در immed H درک می شوند.

    استفاده از R15 به جای Rn باعث می شود که مقداری که استفاده می شود، آدرس دستورالعمال 8+ باشد.

    -3-2- Register shift کدگذاری این در آدرس دهی بصورت زیر می باشد: در این ادرس دهی آدرس حافظه مورد نیاز با جمع کردن/ کم کردن مقدار رجیستر شاخص Rm با/ از رجیستر پایه Rn بدست می آید.

    همان طور که گفته شد دارای صورت کلی بصورت [, +/- ] می باشد.

    که: : نشان دهنده رجیستر پایه می باشد.

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

    استفاده از R15 برای Rn باعث می شود که مقداری استفاده می شود، آدرس دستورالعمل 8+ باشد.

    و در ضمن استفاده از RB بر Rm دستورالعمل را unpredicable می کند.

    3-3- Immediate pre- indexed در این ادرس دهی، آدرس حافظه با جمع کردن/تفریق مقدار offset فوری با/از مقدار رجیستر پایه Rn محاسبه می شود.

    در ضمن آدرس محاسبه شده در مقدار رجیستر پایه نوشته می شود.

    همان طور که گفته شد در شکل کلی بصورت زیر هستند: [, # +/-]!

    که: رجیستر پایه که حاوی آدرس پایه است را مشخص می کند.

    : مقدار عددی offset را مشخص می کند که در بخش immed L(4 بیت پایینی) و immed H(4 بیت بالایی) که می شود.

    !: بیت W را set می کند که باعث می شود رجیستر پایه Rn updater شود.

    در ضمن استفاده از رجیستر R15، به عنوان رجیستر پایه Rn، سبب می شود دستورالعمل Un predictable شود.

    3-4- Register pre- indexed کدگذاری این در آدرس دهی بصورت زیر می باشد: در این در آدرس دهیؤ آدرس حافظه مورد نیاز با جمع کردن/ تفریق کردن مقدار رجیستر شاخص Rm با/از مقدار رجیستر پایه Rn، محاسبه می شود.

    در ضمن آدرس محاسبه شده در رجیستر پایه نوشته می شود.

    همان طور که گفته شد، این مد آدرس دهی دارای شکل کلی بصورت: [, +/- ]!

    می باشد.

    که: : رجیستر پایه که حاوی آدرس پایه می باشد را مشخص می کند.

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

    !: بیت W را set می کند که باعث می شود رجیستر پایه updater می شود.

    در ضمن استفاده از R15 به جای Rn و Rm، باعث ایجاد نتیجه unpreditable می‌شود.

    و نیز اگر از رجیسترهای یکسانی برای Rn و Rm استفاده شود باعث می شود که دستورالعمل unpredictable شود.

    3-5- immediate post- indexed در این مد آدرس دهی، از مقدار رجیستر Rn به عنوان آدرس حافظه مورد نیاز استفاده می شود.

    در ضمن بعد از اجرای دستورالعمل، مقدار رجیستر Rn با جمع کردن/ تفریق کردن مقدار offset فوری با/از مقدار رجیستر Rn، update می شود.

    همان طور که گفته شد، دارای شکل کلی بصورت [], # +/- می‌باشند، که: : نشان دهنده رجیستر پایه که حاوی آدرس پایه می باشد.

    : مقدار offset فوری را نشان می دهد، که در دو بخش immed L(4 بیت پایین) و immed H(4 بیت بالا) که می شوند.

    * در ضمن استفاده از R15 به جای Rn، باعث می شود که نتیجه دستورالعمل unpredictable شود.

    3-6-register post- indexed این مد آدرس دهی از مقدار رجیستر Rn به عنوان آدرس حافظه مورد نیاز استفاده می‌کند.

    در ضمن بعد از اجرای دستورالعمل، مقدار رجیستر Rn با جمع کردن/ تفریق کردن مقدار رجیستر شاخص Rm با/از رجیستر پایه Rn، update می شود.

    همان طور که گفته شد دارای شکل کلی بصورت [], +/- می باشد، که: : بیانگر رجیستر پایه که حاوی آدرس پایه می باشد.

    : بیانگر رجیستر حاوی offset برای update کردن مقدار Rn.

    * استفاده از R15 هم برای Rm و هم برای Rn باعث می شود که نتیجه دستورالعمل unpredictable شود.

    * اگر از رجیسترهای یکسانی برای rn و Rm استفاده کنیم باعث می شود که نتیجه دستورالعمل unpredictable می شود.

    4-مد آدرس دهی شماره Addressing Mode 4- Load and store multiple:4 همان طور که در فصل 3 گفته شد، دستورالعمل های Load multiple، یک مجموعه یا تمام رجیسترهای general- purpose را از حافظه لود می کنند و دستورالعمل های store multiple، یک مجموعه یا تمام رجیسترهای general- purpose را در حافظه ذخیره می کند.

    مدهای آدرس دهی Load and store، مجموعه ای از آدرس های متوالی را تولید می‌کند.

    رجیستر با کمترین شماره در حافظه با کوچکترین آدرس ذخیره می شود و رجسیتر با بزرگترین شماره در حافظه با بزرگترین آدرس ذخیره می شود.

    همان طور که گفته شد، صورت کلی دستورالعمل به شکل زیر است: LDM|STM{} {!}, {^} بطوری که addressing- mode یکی از 4 حالت زیر می باشد: (Increment after)IA(1 (Increment before)IB(2 (Derement after)DA(3 (Decrement before)DB(4 هم چنین گفتیم که کدگذاری عمومی این دستورالعمل ها به شکل زیر است: حال به بیان معنی و مفهوم بیت های register list, L, W,S, U,P می پردازیک: بیت p: 1==P نشان می دهد که wordای که با رجیستر Rn آدرس دهی می شود یک رنجی از حافظه را شامل می شود که اگر 1=U باشد، بالاترین نقطه ی حافظه است و اگر 0=U باشد پایین ترین نقطه ی حافظه است.

    0==P نشان می دهد که wordای با رجیستر Rn آدرس دهی می شود یک رنجی از مکان های حافظه را نشان می دهد که اگر 1=U باشد یعنی آدرس یک word بالاتر از بالاترین نقطه ی حافظه می باشد و اگر 0=u باشد، یعنی آدرس یک word پایین تر از پایین ترین نقطه ی حافظه است.

    بیت U: نشان می دهد که عمل transfer در به بالا است (1==U) یا رو به پایین (0==U) بیت S: برای دستورالعمل های LDM که PC را لود می کند، بیت S نشان می دهد که رجیستر CPSR از رجیستر SPSR لود می شود (بعد از این که عمل transfer انجام شد) برای دستورالعمل های LDM که PC را بود نمی کند و تمام دستورالعمل های STM، بیت S نشان می دهد که وقتی پروسسور در مد preivileged است، رجیسترهای مد user منتقل می شوند به جای این که رجیسترهای مد جاری، منتقل شوند.

    بیت w: نشان می دهد که رجیستر پایه بعد از عمل transfer، update می‌شود.

    رجیستر پایه افزایش می یابد (1==U) یا کاهش می یابد(0==U) به اندازه 4 برابر مقدار رجیسترهای درون، لیست رجیسترها.

    بیت L: بین دستورالعمل های (1==L) و store(1==S) تمیز قائل می شود.

    Register list: بخش register-list در کدگذاری عمومی این دستورالعمل دارای یک بیت برای هر کدام از رجیسترهای general- purpose می باشد.

    بیت [0] برای رجیستر تا بیت [15] برای رجیستر شماره 15 یا PC.

    اگر هیچ کدام از این 15 بیت، Set نشوند، حاصل یک دستورالعمل unpredictable می باشد.

    نحوه دستورالعمل، رجیسترهای که پایه Load یا store شوند را مشخص می کند.

    در قسمت در شکل کلی دستورالعمل لیست رجیسترهای مورد استفاده را که با گاما (و) از هم جدا شده اند را درون { } قرار می دهیم.

    همان طور که گفته شد، دستورالعمل های Load and store multiple دارای 4 مد آدرس دهی هستند که در ادامه با نحوه کدگذاری هر کدام از آنها آشنا می شدیم.

    4-1- (IA) Increment after کدگذاری این مد آدرس دهی بصورت زیر است: مد آدرس دهی برای هر دو دستورالعمل های Load and store، می باشد.

    اولین آدرس رنج از حافظه ای که این دستورالعمل آن را شامل می شود، برابر با مقدار رجیستر پایه Rn می باشد و آدرس بعدی با جمع کردن مقدار رجیستر Rn با عدد 4 تشکیل می شود.

    برای هر کدام از رجیسترهای مشخص شده در قسمت ، یک حافظه تخصیص داده می شود.

    4-2- (IB) Imcrement before کدگذاری این در آدرس دهی بصورت زیر است: اولین آدرس رنج از حافظه ای که این دستورالعمل آن را شامل می شود.

    برابر با مقدار رجیستر پایه Rn می باشد 4+.

    آدرس بعدی با جمع کردن آدرس قبلی 4+ بدست می آید و برای هر یک رجیسترهای مشخص شده در قسمت یک آدرس تخصیص داده می شود.

    4-3-(DA) Decrement after کدگذاری این مد آدرس دهی بصورت زیر است: اولین آدرس از رنج حافظه ای که این دستورالعمل آن را شامل می شود،برابر است با =(مقدار رجیستر پایه Rn – 4 برابر تعداد رجیسترهای مشخص شده در قسمت 4+) آدرس بعدی با جمع کردن آدرس قبلی 4+ حاصل می شود.

    و برای هریک از رجیسترهای مشخص شده در قسمت یک ادرس تخصیص داده می شود.

    آخرین آدرس حافظه برابر با مقدار رجیستر پایه Rn می باشد.

    (DB) decrement before کدگذاری این در آدرس دهی بصورت زیر است: اولین آدرس از رنج حافظه ای که این دستورالعمل آن را شامل می شود برابر با= (4 برابر مقدار رجیسترهای مشخص شده- مقدار رجیستر پایه Rn در قسمت آدرس بعدی با جمع کردن قبلی 4+ بدست می آید.

    برای هریک از رجیسترهای مشخص شده در قسمت یک آدرس تخصیص داده می شود.

    آخرین آدرس حافظه برابر با مقدار رجیستر پایه Rn منهای 4 می باشد.

    5-4 استفاده از دستورالعمل های Load and store multiple برای دسترسی به stack 4 مد آدرس دهی که در بخش های پیشین با آنها آشنا شدیم (IA, IB, DA, DB) تنها وقتی مفید هستند که دستورالعمل load and store برای انتقال بلوک دیتا استفاده شود.

    یعنیی جایی که مد آدرس دهی load، store مشابه هم هستند یعنی داده دقیقا به همان شکلی که load می شود، store هم می شود.

    اما اگر load multiple و store multiple برای دستیابی به stack استفاده شوند، داده‌ها به همان شکلی که store می شوند load r نمی شوند.

    چون که عملیات load(pop) و store(push) باید stack را در جهت های مخالف تنظیم کنند.

    عملیات بررسی stack: با دو نوع ویژگی در stack رو به رو هستیم: دارای stackای هستند که به آخرین مکان stack که استفاده شده اشاره می کنند.

    Full stacks دارای stack pointer ای هستند که به اولین مکان stack که استفاده Empty stacks نشده اشاره می کنند.

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

    Decending stacks صعودی بوده و سمت با روی حافظه رشد می کنند.

    Ascending stacks این دو ویژگی، 4 نوع از stacksها را مشخص می کنند.

    Full descending با علامت: FD Empty descending با علامت: ED Full Ascending با علامت: FA Empty Ascending با علامت: EA جدول زیر رابطه ی بین چهار نوع از stackها و چهار نوع مد آدرس دهی که در بالا بیان شد را نشان می دهد و برای هر کدام وضعیت بیت های L، U، P را نشان می‌دهد.

    جدول مدهای آدرس دهی LDM جدول مدهای آدرس دهی STM 5-مد آدرس دهی شماره 5: Addressing mode 5: load and store coprocessor چهار مد آدرس دهی وجود دارند که از آنها برای محاسبه آدرس دستورالعمل های Load/store coprocessor استفاده می شود.

    شکل دهی دستورالعمل های Load and store coprocessor بصورت زیر می باشد: { {L} , , که یکی از4 حالت زیر می باشد: 1.Immediate offset : [, # +/-*4] 2.Immediate pre-indexed: [, # +/-*4]!

    3.Immediate post-indexed : [, # +/- *4 4.unindexed : [], این مجموعه از دستورالعمل ها دارای کدگذاری بصورت دیاگرام زیر هستند: حال به معرفی بیت های دیاگرام فوق می پردازیم: بیت P: 1==p نشان دهنده استفاده از آدرس دهی post-indexed یا unidexed(بیت W یکی از این دو حالت را مشخص می کند) می باشد.

    در این حالت از مقدار رجیستر پایه به عنوان آدرس حافظه استفاده می شود.

    0==p: نشان دهنده استفاده از آدرس دهی offset یا pre-indexed می باشد.(بیت w یکی از این دو حالت را مشخص می کند.

    آدرس حافظه با اعمال offset به رجیستر پایه (Rn) تولید می شود.

    بیت U: 1==U: نشان می دهد که offset با مقدار رجیستر پایه جمع می شود.

    0==U: نشان می دهد که offset از مقدار رجیستر پایه کم می شود.

    بیت N: معنی این بیت بستگی به coprocessor دارد.

    بیت W: 1=W: نشان دهنده این است آدرس حافظه به رجیستر باید نوشته می‌شود (pre-indexed, post-indexed) 0=W: نشان دهنده این است که رجیستر باید بدون تغییر باقی می ماند.

    (offset, unindexed) بیت L: 1==L Load 0==L store : نام های coprocessorهای مورد استفاده را مشخص می کند اتا در دستورالعمل در سمت CP# عدد مناسب با هر کدام قرار بگیرد.

    CRd: رجیستر مقصد در Coprocessor را مشخص می کند.

    5-1-Immediate offset کدگذاری این مد آدرس دهی بصورت زیر است: این مد آدرس دهی مجموعه از آدرس های متوالی را تولید می کند.

    آدرس اول با جمع کردن یا تفریق کردن چهار برابر مقدار offset فوری با یا از مقدار رجیستر پایه محاسبه می شود.

    آدرس بعدی در دنباله، با افزایش 4 واحدی آدرس قبلی تولید می‌شود، تا جایی که Coprocessor سیگنال پایان دستورالعمل را صادر کند.

    این به Coprocessor اجازه می دهد که داده هایی دسترسی پیدا کند که سایز آنها را coprocessor تعریف و تعیین می کند.

    همان طور که گفته شد این مد آدرس دهی دارای شکل کلی بصورت *4] [, # +/- می باشد، که : رجیستر پایه را مشخص می کند.

    * اگر R15 به عنوان رجیستر پایه استفاده شود، مقداری که استفاده می شود، آدرس دستورالعمل 8+ می باشد.

    Coprocessor نباید درخواست transfer بیشتر از word 16 داشته باشد.

    Immediate pre-indexed-2-5- کدگذاری این مد آدرس دهی بصورت زیر است: این مد آدرس دهی نیز دنباله ای از آدرس های متوالی را تولید می کند.

    آدرس اول بوسیله جمع کردن یا تفریق کردن چهار برابر مقدار offset فوری با یا از مقدار رجیستر پایه Rn محاسبه می شود.

    اگر شرطی که در دستورالعمل مشخص شده با کدهای شرطی تطبیق داشته باشد و دستورالعمل اجرا شود، آدرس فوری در رجیستر پایه Rn نوشته می شود.

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

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

    Coprpcessor نباید درخواست انتقال بیشتر از 16 word داشته باشد.

    همان طور که گفته شد این مد آدرس دهی دارای شکل کلی بصورت [, #+/-*4]!

    می باشد که: : رجیستر پایه که حاوی آدرس پایه می باشد را مشخص می کند.

    : مقدار offset فوری را مشخص می کند.

    !: بیت W را set می کند که باعث می شود.

    * اگر R15 به عنوان رجیستر پایه استفاده شود، نتیجه دستورالعمل unpredictable می شد.

    Immediate post-indexed-2-5- این در آدرس دهی نیز دنباله ای از آدرس های متوالی را تولید می کند.

    آدرس اول برابر با مقدار رجیستر پایه Rn می باشد.

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

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

    Coprocessor نباید درخواست انتقال بیشتر از 16 word را داشته باد.

    همان طور که گفته شد این در آدرس دهی دارای شکل کلی بصورت [],#+/-*4 که: : رجیستر پایه که حاوی آدرس پایه می باشد را مشخص می کند.

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

    Uniodexed-2-5- این در آدرس دهی نیز دنباله ای از آدرس های متوالی را تولید می کند.

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

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

    Coprocessor نباید درخواست انتقال بیشتر از 16، word را داشته باشد.

    همان طور که گفته شد این مد آدرس دهی دارای شکل کلی بصورت: [], که: : رجیستر پایه که حاوی آدرس پایه می باشد را مشخص می کند.

    : optionهای دستورالعملی بیشتری را برای coprocessor تعیین می کند.

    در شکل دستورالعمل توسط یک integer در بازه 0-255 که توسط { } محیط می شود مشخص می شود.

    * استفاده از R15 به عنوان رجیستر پایه باعث می شود که مقداری که استفاده می شود ادرس دستورالعمل 8+ باشد.

    *اگر بیت U(شماره 23) set نشود نتیجه دستورالعمل unpredictable می شود.

    8-immedTotatr-immRdRnSopcde100cond Rm0ShiftShift-immRdRnSOpcode000cond Rm1Shift0RsRdRnSOpcode000code 8-immedRotate-immRdRnSOpcode001Cond Rm0000000RdRnSOpcode000cond Rm000Shift-immRdRnSOpcode000cond Rm0001RsRdRnSOpcode000cond Rm010Shift-immRdRnSOpcode000Cond 0 3 4 7 8 11 12 15 16 19 20 21 24 25 27 28 310 3 4 7 8 11 12 15 16 19 20 21 24 25 27 28 310 3 4 7 8 11 12 15 16 19 20 21 24 25 27 28 310 3 4 7 8 11 12 15 16 19 20 21 24 25 27 28 310 3 4 7 8 11 12 15 16 19 20 21 24 25 27 28 310 3 4 7 8 11 12 15 16 19 20 21 24 25 27 28 310 3 4 7 8 11 12 15 16 19 20 21 24 25 27 28 310 3 4 7 8 11 12 15 16 19 20 21 24 25 27 28 310 3 4 7 8 11 12 15 16 19 20 21 24 25 27 28 310 3 4 7 8 11 12 15 16 19 20 21 24 25 27 28 310 3 4 7 8 11 12 15 16 19 20 21 24 25 27 28 31Rm0011RsRdRmSOpcode000cond

XML ، بهمراه خود مجموعه ای از سایر تکنولوژی ها را ایجاد کرده است . XSL یکی از مهمترین تکنولوژی های مرتبط با XML بوده که عموما به سه تکنولوژی دیگر اشاره می نماید : • XSLT : زبانی برای تبدیل ساختار یک سند XML • XPath : زبانی برای آدرس دهی بخش های متفاوت یک سند XML • XSL-FO : زبانی بمنظور فرمت دهی یک سند XML XPath یکی از تکنولوژی های مرتبط با XML بوده که ارتباط بسیار نزدیکی با XSLT ...

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

بمنظور مدیریت و اشکال زدائی شبکه های مبتنی بر پروتکل TCP/IP ، می بایست شناخت مناسبی نسبت به تمامی جنبه ها ی آدرس دهی IP وجود داشته باشد. یکی از مهمترین عملیات مدیریتی در شبکه های مبتنی بر پروتکل TCP/IP ، نسبت دهی آدرس های IP مناسب و منحصربفرد به تمامی گره های موجود در شبکه است . با اینکه مفهوم نسبت دهی آدرس IP ، ساده بنظر می آید ولی مکانیزم واقعی اختصاص آدرس IP موثر با استفاده ...

ساختن یک پایگاه داده درمحیط SQL Server، شما می‌توانید جداول ،نماها ودیگر اشیا مربوط به یک سری از اطلاعات درون یک پایگاه داده راذخیره کنید .بنابراین اولین قدم درپیاده سازی یک برنامه کاربردی اطلاعاتی ،ساختن پایگاه داده آن است که روش انجام این کار رادراین قسمت یاد خواهید گرفت . برای یک پایگاه داده منطقی ،SQL Server دوفایل می‌سازد: یکی برای اشیاءویکی برای ثبت تراکنشهای انجام شده . ...

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

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

روش نصب PHP بروى windows 95/98/Me NT/2000/XPPHP بر روى win32 بدو صورت نصب مىشود 1 - بصورت CGI executable 2 - بصورت server moduleSAPI 1 - نصب PHP بصورت CGI executable : نصب PHP بصورت CGI executable بسیار ساده مىباشد براى این کار شما باید بر روى PC خود یکى از web server هاى زیر را داشته باشید Personal Web Server 3 and 4 or newerInternet InformationServer 3 and 4 or newerApache ...

صفحه کلیدها در دو طرح سنتی (Traditional) و ارگونومیک (Ergonomic) تولید می شوند ، لغت «ارگونومیک» به معنای طراحی بصورت ایمن و برقراری ارتباط آسان بین انسان و ماشین (کامپیوتر)‌می باشد . صفحه کلیدهای ارگونومیک بصورتی طراحی شده اند که مچ دستهای شما را بالا و متقیم نگه دارند . این مورد برای بعضی از کاربران راحتی را فراهم می کند و برای بعضی ها خیر . صفحه کلیدها در مقابل ...

1. کاربردهای تجاری – اکثر شرکتها تعداد زیادی کامپیوتر برای کارهای مختلف ( تولید ، انبارداری ، فروش و حسابداری ) دارند . شاید در ابتدا این کامپیوترها از یکدیگر جدا باشند ، ولی در مرحله ای از کار برای یکپارچه کردن اطلاعات کل شرکت ، مدیریت تصمیم می گیرد تا آنها را به هم متصل کند . به بیان کلی تر ، اشتراک منابع به ما اجازه میدهد تا برنامه ها ، تجهیزات و به خصوص داده ها را در اختیار ...

همانطوریکه می دانیم امروزه بشر در عصر ارتباطات و تکنولوژی به حافظه برای تجهیزات مختلف نیازمند است . یکی از انواع حافظه ها DRAM یا Dynamic Random memory می باشد که این DRAM ها مصارف مختلفی دارند از جمله در Computing ، infrastueture ، Entertainment و infocom و جاهای دیگر صنعتی. برای ساخت DRAM در تکنولوژیهای مختلفی استفاده شده است که ما در اینجا از ساده ترین DRAM ها شروع می کنیم که ...

این بخش شرح مختصری پیرامون اجزای اصلی یک سیستم کامپیوتری (حافظه و پردازنده)می دهد، که باعث می شود کاربر درک بیشتری نسبت به مفاهیمی که در طی برنامه اسمبلی با آن ها سرو کار دارد پیدا کند. حافظه واحدپردازش مرکزی ________________________________________ یک سیستم کامپیوتری ترکیب کاملی از سخت افزار و نرم افزارهای سیستمی است که باعث می شود ماشین مفید و وظیفه مندی برای کار معینی بشود. ...

ثبت سفارش
تعداد
عنوان محصول