اس فایل

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

اس فایل

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

دانلود مقاله کامل درباره آدرس دهی - کامپیوتر

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

دانلود مقاله کامل درباره آدرس دهی - کامپیوتر


دانلود مقاله کامل درباره آدرس دهی - کامپیوتر

<!--StartFragment-->

لینک پرداخت و دانلود *پایین مطلب*
فرمت فایل:Word (قابل ویرایش و آماده پرینت)
تعداد صفحه: 59

 

آدرس دهی

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 عملگرهای فوری پردازش داده

  

0                                 7   8                     11  12    15  16   19  20  21             24  25     27  28        31

 

8-immed

Rotate-imm

Rd

Rn

S

Opcode

001

Cond

مقدار 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

  

   0           3   4        6   7           11 12   15 16    19   20  21             24  25    27  28      31

 

Rm

000

0000

Rd

Rn

S

Opcode

000

cond

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

Shifter-operand=Rm

Shifter- carry= C flay

Encoding: این دستورالعمل encode می شود که شیفت منطقی به سمت چپ (0= shift-imm)

اگر  به جای  و  مورد استفاده قرار گیرد و مقدار استفاده شده آدرس دستورالعمل است به علاوه ی 8.

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

  

0            3  4          6  7                    11 12       15  16    19  20      21           24   25  27  28      31

 

Rm

000

Shift-imm

Rd

Rn

S

Opcode

000

cond

این عملگر به کار می رود برای تولید مقدار یک رجسیتر 1 مقدار شیفت چپ داده شده یک رجسیتر (ضرب شده در یک توانی از 2)

مقدار خارج شده از shifter بیت آخری است شیفت داده شده و اگر شیفتی داده نشده باشد فلگ c است.

,   LSL#

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

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

: مقدار شیفت را نشان می دهد که عددی است بین 0 تا 31

1-6: شیفت منطقی به سمت چپ با یک رجیستر

  

 0            3  4             7  8         11  12       15  16      19  20     21              24  25       27  28      31

 

Rm

0001

Rs

Rd

Rn

S

Opcode

000

cond

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

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

,  LSL

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

 

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

  

0       3  4             6   7                               11  12     15  16     19   20   31           24   25    27  28        31

 

 

 

Rm

010

Shift-imm

Rd

Rn

S

Opcode

000

Cond

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

1-8: شیفت منطقی به سمت راست با یک رجیستر

0       3  4            7 8      11  12       15 16      19 20    21      24   25   27  28          31

 

Rm

0011

Rs

Rd

Rm

S

Opcode

000

cond

 

           

درست مانند شیفت منطقی به سمت چپ با رجیستر

 

1-9- شیفت سمت راست محاسباتی با عدد فوری

0       3  4        5 6   7        11  12       15 16      19 20    21      24   25   27  28          31

 

Rm

100

Shift-imm

Rd

Rm

S

Opcode

000

cond

 

           

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

عملگر این دستورالعمل مقدار رجسیتر 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]

0           3  4            7 8      11  12       15 16      19 20    21      24   25   27  28       31

 

Rm

0101

Rs

Rd

Rn

S

Opcode

000

cond

 

           

این عملگر دستورالعمل مقدار رجیستر Rm است که توسط مقدار بایت پایین Rs شیفت محاسباتی به سمت راست داده شده است. بیت 31 Rm به جای بیت خالی قرار می گیرد. بیت carry-out آخرین بیت شیفت داده شده است. اگر مقدار شیفت بیشتر از 32 باشد این مقدار بیت علامت Rm است و اگر مقدار شیفت صفر باشد این مقدار‏ؤ مقدار فلگ c است.

, ASR

1-11- چرخش به راست یک عددی فوری

0          3

 

Rm

110

Shift-imm

Rd

Rn

S

Opcode

000

cond

 

           

 این عملگر برای تهیه ی مقدار یک رجیستر که توسط عددی ثابت چرخش یافته استفاده می شود که مقدار رجیستر 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 چرخش به راست با رجیستر

0           3  4            7 8      11  12       15 16      19 20    21      24   25    27  28      31

 

Rm

0111

Rs

Rd

Rn

S

Opcode

000

cond

 

           

برای تولید یک مقدار رجیستر که توسط یک متغیر چرخش داده شده به کار می رود.

مقدار رجیستر 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

  0           3  4               11    12     15  16   19 20  21           24  25   27  28    31

 

Rm

00000110

Rd

Rn

S

Opcode

000

code

 

          

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

,  RRx

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

  1. ذخیرع و لود word یا بابت بدون علامت

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

این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید

<!--EndFragment-->

 


دانلود با لینک مستقیم


دانلود مقاله کامل درباره آدرس دهی - کامپیوتر