فی توو

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

فی توو

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

جزوه در مورد آدرس دهی

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

جزوه در مورد آدرس دهی


جزوه در مورد آدرس دهی

لینک پرداخت و دانلود *پایین مطلب*

 

فرمت فایل:Word (قابل ویرایش و آماده پرینت)

  

تعداد صفحه:59

 

  

 فهرست مطالب

 

 

آدرس دهی

 

  

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

 

 

1-2: shifter operand

 

1-3 عملگرهای فوری پردازش داده

 

1-4 data processing operands – tegister

 

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

 

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

 

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

 

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

 

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

 

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

 

 

 

 

 

8-immed

Totatr-imm

Rd

Rn

S

opcde

1

0

0

cond

 

Immediate shifts

     

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

    

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

 

 

 

 

 

Rm

0

Shift

Shift-imm

Rd

Rn

S

Opcode

0

0

0

cond

 

 

Rm

1

Shift

0

Rs

Rd

Rn

S

Opcode

0

00

code

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 ست می شود.

<immediate> : برابر است با حاصل چرخش 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

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

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 است.

<Rm>,   LSL# <shift- imm>

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

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

<shift –imm> : مقدار شیفت را نشان می دهد که عددی است بین 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 است اگر مقدار شیفت صفر باشد.

<Rm> ,  LSL <Rs>

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

 

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 بیت خالی شده را می گیرد و بیت خارج شده آخرین بیت شیفت داده شده است.

<Rm> , ASR # <shift-imm>

arithmetic shift right  :ASR

عملیات:

if shift-imm=0 then

if Rm [31]=0 then

 

 


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


جزوه در مورد آدرس دهی