اس فایل

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

اس فایل

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

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

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

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


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

<!--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-->

 


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


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

دانلودمقاله مفهوم سوکت و پورت و آدرس

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

 

 

 

اصلی ترین عامل در یک ارتباط شبکه سوکت ( soket ) نامیده می شود . سوکت در دانشگاه برکلی ، کالیفرنیا ، و برای سیستم عامل یونیکس اختراع شد . سوکت اختراع شد تا ارتباطات شبکه را به عملیات خواندن / نوشتن فایل نزدیک کند . با آن که سوکت از آن موقع تاکنون پیشرفت هایی کرده ولی اساس آن ثابت مانده است .
در عصر ویندوز X/3 ، که هنوز کارکردهای شبکه جزء ذاتی سیستم عامل نشده بود ، شرکت های زیادی پروتکل های لازم برای ارتباطات شبکه را عرضه می کردند ، که تفاوتهایی با یکدیگر داشتند . در نتیجه هر شرکت باید مجموعه ای کامل از نرم افزارهای شبکه را ارائه می کرد . این وضع خوشایند اکثر برنامه نویسان نبود . بنابراین تمام شرکتهایی که این زمینه کار می کردند ( از جمله میکروسافت ) تصمیم گرفتند یک مجموعه ای توابع برنامه نویسی ( API ) برای سوکت های ویندوز ( Winsock ) داشته باشند . بدین ترتیب تمام برنامه نویسان می توانستند از یک سری توابع سازگار برای انجام ارتباطات شبکه استفاده کنند .
برای کار با فایل به یک شیء Cfile نیاز داریم . پیام های شبکه هم وضع مشابهی دارند چون برای خواندن / نوشتن آنها به یک سوکت نیاز هست ، با این تفاوت که باز کردن یک سوکت نیاز به اطلاعات متفاوتی دارد . برای باز کردن یک فایل باید نام و مسیر آن را بدانیم . برای باز کردن یک سوکت باید نام کامپیوتری که گوش بزنگ است و پورتی ( Port ) که به آن گوش می دهد را بدانیم . در واقع نام کامپیوتر معادل شماره تلفن و پورت معادل شمارة داخلی مورد نظر است . پورت ها برای تغییر مسیر ارتباطات شبکه هستند . به شکل زیر نگاه کنید .

 

 

 

 

 

شکل : پورت ارتباط شبکه را به مسیر درست هدایت می کند .
برای ارتباط با یک برنامه دیگر شبکه باید پورت آن را هم بدانید . اگر آدرس کامپیوتر و پورت را اشتباه کنید ممکنست به برنامة دیگری وصل شوید ، یا اینکه اصلاً به جایی وصل نشوید ( درست مثل گرفتن یک شماره تلفن عوضی ) .

 

 

 

مبنای تمام برنامه های کاربردی لایه چهارم مفهومی بنام سوکت است که این مفهوم برای برقراری برنامه های تحت شبکه و تبادل جریان داده بین پروسه ها می باشد برنامه با تعریف سوکت عملاً تمایل خود را برای تبادل داده ها به سیستم عامل اعلام می کند ، و بدون درگیر شدن با جزئیات پروتکل از سیستم عامل می خواهد تا فضا و منابع مورد نیاز را جهت برقراری یک ارتباط ایجاد کند . پروتکل IP در لایه زیرین TCP لایه وظیفه مسیر یابی بسته ها را عهده دار است .

 

انواع سوکت و مفاهیم آنها
اگر بخواهیم از نظر اهمیت انواع سوکت را معرفی کنیم دو نوع سوکت بیشتر وجود ندارد . ( انواع دیگری هم هستند ولی کم اهمیت ترند ) . این دو نوع سوکت عبارتند از :
. سوکتهای نوع استریم که سوکتهای اتصال گرا نامیده می شود .
. سوکتهای نوع دیتاگرام که سوکتهای بدون اتصال نامیده می شود .
اگر عادت به پیش داوری دارید برای تمایز بین مفهوم این دو نوع سوکت . تفاوت بین مفاهیم ارتباط نوع TCP و UDP را مدنظر قرار بدهید . روش ارسال برای سوکتهای نوع استریم همان روش TCP است و بنابراین داده ها با رعایت ترتیب و مطمئن با نظارت کافی بر خطاهای احتمالی مبادله می شوند . سوکتها نوع دیتاگرام نامطمئن است و هیچگونه تضمینی در ترتیب جریان داده ها وجود ندارد .
اکثر خدمات و پروتکلهائی که در لایه چهارم تعریف شده اند نیازمند حفظ اعتبار و صحت داده ها و همچنین رعایت ترتیب جریان داده ها هستند . بعنوان مثال پروتکل انتقال فایل ( FTP ) ، پروتکل انتقال صفحات ابرمتن ( HTTP ) یا پروتکل انتقال نامه های الکترونیکی ( SMTP ) همگی نیازمند برقراری یک ارتباط مطمئن هتند و طبعاً از سوکتهای نوع استریم بهره می برند .
همانگونه که قبلاً در مورد پروتکل TCP آموختیم پروتکلی است که داده ها را با رعایت ترتیب و خالی از خطا مبادله می نماید و پروتکل IP که در لایه زیرین آن واقع است با مسیر یابی بسته ها روی شبکه سروکار دارد . سوکتهای نوع استریم دقیقاً مبتنی بر پروتکل TCP بوده و طبیعتاً قبل از مبادله داده ها باید یک اتصال به روش دست تکانی سه مرحله ای برقرار بشود .
سوکتهای نوع دیتاگرام مبتنی بر پروتکل UDP است و بدون نیاز به برقراری هیچ ارتباط و یا اتصال ، داده ها مبادله می شوند و بنابراین تضمینی بر رسیدن داده ها ، صحت داده ها و تضمین ترتیب داده ها وجود ندارد ولی باتمام این مشکلات باز هم در برخی از کاربردها مثل انتقال صدا و تصویر یا سیستم DNS که قبلاً آنرا بررسی کردیم مورد استفاده قرار می گیرد . تنها حسن این روش سرعت انتقال داده ها می باشد .
در حقیقت شما با استفاده از سوکتها می خواهید یک ابزار برای استفاده از پروتکلهای TCP یا UDP در اختیار داشته باشید .

 

ارسال و دریافت به روش UDP با سوکتهای دیتاگرام
توابع ارسال ، دریافت و پذیرش برای سوکتهای نوع استریم کاربرد دارد . حال باید دید که به چه صورت می توان ارسال و دریافت را به روش UDP روی سوکتهای نوع دیتاگرام انجام داد .
. برنامه سمت سرویس دهنده
الف ) یک سوکت از نوع دیتاگرام ایجاد کنید . این کار با فراخوانی تابع socket() با پارامتر SOCK – DGRAM انجام می شود .
ب ) به سوکت ایجاد شده آدرس پورت موردنظرتان را نسبت بدهید . ( با تابع bind() ) .
ج ) بدون هیچ کار اضافی می توانید منتظر دریافت داده ها بشوید . ( تا موقعی که داده ای دریافت نشود ارسال معنی نمی دهد . ) وقتی داده ای دریافت و پردازش شد آدرس برنامه مبدا ( آدرس IP و پورت ) مشخص شده و ارسال امکان پذیر خواهد بود .
ارسال و دریافت وی سوکتهای نوع دیتاگرام بوسیله توابع recvform() و sendto() انجام می شود .
د ) نهایتاً سوکت ایجاد شده را ببندید .
. برنامه سمت مشتری
الف ) یک سوکت از نوع دیتاگرام ایجاد کنید . ( با تابعsocket() و پارامتر SOCK-DGRAM ) .
ب ) هرگاه نیاز شد بدون هیچ کار اضافی داده هایتان را به سمت سرویس دهنده ارسال نمایید . تا وقتی که به سمت سرویس دهنده ارسال نداشته باشید ، دریافت داده ها معنا نمی دهد چرا که شما برای سرویس دهنده شناخته شده نیستید مگر اینکه داده ای را ارسال نمائید . ارسال و دریافت را تا زمانی که نیاز است انجام بدهید .
ج ) سوکت ایجاد شده را ببندید .
فرم کلی تابع ارسال داده مبتنی بر سوکتهای دیتاگرام بصورت زیر است :
int sendto ( int sockfd , const void * msg , int len , unsigned int flags , const struct sockaddr * to , int tolen ) ;
. sockfd : مشخصه سوکت دیتاگرام که با تابع socket() بوجود آمده است .
. msg : آدرس محل قرار گرفتن پیام در حافظه که داده های ارسالی بایستی از آنجا استخراج شده و درون یک بسته UDP و درون یک بسته UDP قرار گرفته و ارسال شود .
. len : طول پیام ارسالی بر حسب بایت .
. to : استراکچری از نوع sockaddr که قبلاً ساختار آنرا مشخص کردیم . در این استراکچر باید آدرس IP مربوط به ماشین مقصد و همچنین شماره پورت سرویس دهنده تنظیم شود.
. tolen : طول استراکچر sockaddr است که به سادگی می توانید آنرا به مقدار ) sizeof struct sockaddr تنظیم نمایید .مقدار برگشتی این تابع همانند تابع send() تعداد بایتی اسست که سیستم عامل موفق به ارسال آن شده است . دقت کنید که اگر مقدار برگشتی ( 1-) باشد خطائی بروز کرده که می توانید شماره خطا را در متغیر سراسری error بررسی نمائید . باز هم تکرار می کنیم دلیلی ندارد تعداد بایتی که تقاضا ارسال آنها را داده اید با تعداد بایتی که ارسال شده یکی باشد . بنابراین حتماً مورد را در برنامه خود بررسی کرده و همچنین تقاضای ارسال در هر مرحله را نزدیک یک کیلو بایت درنظر بگیرید .
فرم کلی دریافت داده مبتنی بر سوکتهای دیتاگرام بصورت زیر است :
int recvfrom ( int sockfd , void * buf , int len , unsingned int flags , struct sockaddr * from , int * fromlen ) ;
. sockfd : مشخصه سوکت دیتاگرام که با تابع socket () بوجود آمده است .

 

 

 

فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد

تعداد صفحات این مقاله   15 صفحه

پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید

 


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


دانلودمقاله مفهوم سوکت و پورت و آدرس

تغییر آدرس مک کارت شبکه

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

تغییر آدرس مک کارت شبکه


تغییر آدرس مک کارت شبکه

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

قابلیت های کلیدی نرم افزار:
-
نمایش MAC address آداپتور شبکه
- تعویض MAC address با هر آدرس دیگر
- تولید یک MAC address به صورت کاملاً تصادفی
- تغییر نام تولید کننده در MAC address
- تنظیم یک MAC address بدون تغییر نام سازنده
- فعال شدن خودکار MAC Address جدید پس از اعمال تغییرات
- و ...


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


تغییر آدرس مک کارت شبکه