+ All Categories
Home > Documents > Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov...

Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov...

Date post: 12-Mar-2020
Category:
Upload: others
View: 20 times
Download: 0 times
Share this document with a friend
90
Machine Language and System Programming $% &’( )* +,&’ - 1389
Transcript
Page 1: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

سيستم نويسی وبرنامه ماشين زبانMachine Language

andSystem Programming

سوم جلسه

ھمدان صنعتی دانشگاه1389پاييز

Page 2: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

مطالب فهرست

اصلي� حافظه

مركزي� پردازش واحد

ها� ثبات اهداف و اسامي

اسمبلي� زبان دستورالعملهاي

منبع� كد

برنامه� كلي شكل

دستورات� DWوDBعملوندهاي

دستورالعملها� عملوند

دهي� آدرس حالتهاي

Page 3: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

با مي داده اندازه و داده نام داده نوع شامل اسمبلي در متغير شدتعريفاز عبارتند اسمبلي در متغير تعريف :دستورات

DBبايت يك تعريف برايDWبايت دو تعريف برايDDبايت چهار تعريف برايDQبايت هشت تعريف برايDTبايت ده تعريف براي:مثال

X DB 35hنام با متغيري اوليهXتعريف مقدار بايت35با يك طول به دسيمال هگزا

Y DW 569Fhنام با متغيري اوليهYتعريف مقدار با بايت دو طول 569Fhبه

3

دراسمبلي متغيرها

Page 4: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

دستورات DWعملوندهاي , DB

يا دودوئي تايي، شانزده ، دهدهي صورت به ميتوان را عددي بيانعملوندهاي تايي هشتاز.كرد عبارتند استفاده مورد پسوندهاي

عددي پسوندمبناسيستمتايي 16Hشانزده

2Bدودوئي8Oهشتتايي

ميکند• فرض دھدھي را اعداد اسمبلر،

تا• صفر ع?مت بدون عدد شود255يک ذخيره بايت دريک .ميتواند

مورد• عملونديDWدستوردر براي مجاز محدوده .ميباشد65535تا-65535از،تا صفر ع?مت بدون ميگيرند65535اعداد جاي کلمه يک .در

Page 5: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثالMASK0 DB 01111101B

MASK1 DB 175DB 7DHMASK2

12ODBMASKL3

Page 6: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

WORD1 DW 1000

WORD1نوع مقدارWORDاز با شده .1000تعريف

Page 7: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

X DB 10 , 12 , 24 , 5 , 16

Xباشد مي بايت نوع از عنصري پنج آرايه .يك

Page 8: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثالTABLE DB 100 DUP (‘*’)

وTABLEآرايه بايت نوع اوليه100از مقدار با ، *عنصري

Page 9: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

Number1 DW ?

Number2 DW ?

������ ��� �� � ����� �� � ������ � ����.

��� �� �� �� � ��� � ��� � �� ��!"�� ��#�� �� $ %� ��&'�� � �#() �

�!*).

:مثال

Page 10: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

����'DUP� � �+� ��� ���,�� ,� ���� ,� ��,� ����- ��!. � �� �) !.��/��� ,

���� � �0 ��,12� ��!� 3��� � ���.

�� �����' �� ����,�DB3DW��� � ,45 �� ����� ��#�� 6 �!2�� �

�!7�� ���8� ������.

DUPعملگر

Page 11: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

6 �!2��

array DB 100 DUP(?)

Pointer DW OFFSET array

100� �� � ��,�array� �� � ������ �pointer� ������ ���pointer,�

�(5;array�!7�� ��� ���� ���.

مثال

Page 12: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

شناسه براي ثابت مقدار تعريف

از ثابت مقدار تعريف ای کردEQUبر .استفاده

Sum EQU 20

Total dw 125

Sum equ total

Page 13: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

وعملوند دستورالعملھاھاباشند مي مختلف انواع داراي .:عملوندها

، بوده ثابت بعضيكننده مشخص CPUثباتهايبعضي

نمايند مي رجوع حافظه به .برخيدستورالعملها از باشندبسياري مي عملوند دو را.داراي عماليت مقصد ، اول عملوند كلي بطور

عمليات منبع دوم عملوند و كنند مي .تعيين

:مانند

MOV AX,BXباال اسمبلي دستور وAXدستورلعمل،MOVدر اول باشدBXعملوند مي دوم .عملوند

13

Page 14: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

MOV AL , ‘*’کرکتر ثبات*که قبلي محتوي جايگزين شودALرا باشد.مي تواند نمي ثابت مقصد

باشد ثابت تواند مي منبع .وليعملوندي تك INCدستور BXعملوندي دو MOVدستور AX,8000hعملوند بدون STCدستور

14

Page 15: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

ماشينكدنمونه0000 000A a dw 100002 00 b db ?

.code0000 8B DF mov bx,di0002 8A F9 mov bh,cl0004 8B 1E 0000 R mov bx,a0008 8A 26 0002 R mov ah,b000C 8B 12 mov dx,[si][bp]000E A0 0002 R mov al,b0011 8A 26 0002 R mov ah,b0015 BB 0003 mov bx,30018 B1 03 mov cl,3001A C7 06 0000 R 0064 mov a,1000020 C6 06 0002 R FF mov b,255

Page 16: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

پايه دستورات

Page 17: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

حافظه مختلف هاي مكان بين ها داده انتقالكپي ديگر محل به محلي از را ها داده بايستي ها كامپيوتر اغلب

دستور.نمايند بوسيله كار شودMOVاين مي دستور.انجام كلي شكلMOVباشد مي زير صورت :به

MOV Destination , Source

Page 18: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

MOV CX , Count

حافظه گيردCXدرCOUNTمحتوي مي .قرار

يكMOVدستوالعمل به حافظه منبع يك از را اي داده تواند نمينمايد كپي حافظه مياني.مقصد ثبات يك از كار اين انجام براي معموال

گردد مي .استفاده

Page 19: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

دستوالعمل ازعملوندهاي باشندmovتركيباتي نمي ممكن :كه

كه-�1 صورتي باشنددر داشته قرار حافظه در مقصد و منبع عملوند دو .هرمقصد-�2 سگمنت ثبات به بالواسطه منبع عملوندان-�3 از يا ها نشانه ثبات به هرانتقاليثبات-�4 به انتقالي IPهرديگر-�5 سگمنت ثبات به سگمنت ثبات يك از انتقالنباشند-�6 كلمه يا بايت نوع يك از ان عملوندهاي كه انتقالي هر

Page 20: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

العمل xchgدستور�oper2,oper1xchg

صورت� دستور سه با باال سطح زبانهاي در كه دهد مي انجام را عملي گيردو .ميصو به نموده تعويض يكديگر با را دوم عملوند و اول عملوند دستور بهاين كه رتي

باشد داشته نياز كمتري حافظه و زماني .سيكلدست� دوم عملوند بايد حافظه عملوند ، اصلي حافظه از استفاده صورت xchgوردر

.باشد

دهدxchgدستورالعمل� نمي تغيير را ها نشانه .ثبات

Page 21: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

دھی آدرس ھای حالتبالواسطه�

ثبات�

مستقيم�

مبنا� داراي

انديس� داراي

انديس� و مبنا داراي

21

Page 22: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

دھی آدرس مختلف حالتھای

مستقيم غير ثبات

مبنا دارای

انديس دارای

انديس و مبنا دارای

مستقيم

مستقيم غير

ب�واسطهثباتحافظه

22

Page 23: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

دھی آدرس مختلف حالتھای

23

واسطه-1 بال دهي آدرس

طول تواند مي دهي آدرس حالت باشد8اين داشته بيتي شانزده يا بيتي

باشد مي ثابت عدد يك دوم عملوند دهي آدرس نوع اين در

:مثال

MOV AX,8765h

MOV BL,5Fh

Page 24: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

دھی آدرس مختلف حالتھای

24

ثبات-2 دهي آدرس

دستورالعم بوسيله كه گيرد مي قرار ثباتي در داده دهي آدرس حالت توانداين مي ثبات شود مي مشخص لباشد بيتي شانزده يا بيتي .هشت

:مثال

MOV AX,BX

MOV BL,CL

Page 25: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

دھی آدرس مختلف حالتھای

25

مستقيم-3 دهي آدرس

دست از جزئي دارد بيتي شانزده طول كه داده آدرس دهي آدرس حالت طولاين به بسته باشد مي ورالعملمنتق ثبات به كلمه يك يا بايت يك دارد قرار اول عملوند در كه شودثباتي مي ل

:مثال

MOV AX,TABLE

MOV BL,TABLE

Page 26: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

دھی آدرس مختلف حالتھای

26

ثبات-4 مستقيم غير دهي آدرس

ثباتهاي از يكي در آدرس دهي آدرس حالت گيردDIياBX,SIاين مي قرار

:مثال

MOV AX,[BX]

MOV BL,[DI}

Page 27: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

دھی آدرس مختلف حالتھای

27

انديس-5 يا مبنا دهي آدرس

ثباتهاي از يكي در آدرس دهي آدرس حالت يكDI,BPياBX,SIاين روش اين در گيرد مي قراريا8جابجايي دارد16بيتي وجود .بيتي

:مثال

Page 28: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

دھی آدرس مختلف حالتھای

28

انديس-5 و مبنا دهي آدرس

ثباتهاي از يكي در آدرس دهي آدرس حالت ازBPياBXاين و گيرد مي ثباتDIوSIقرار بعنوانبدون انديس و مبنا مجموع از آدرس روش اين در شود مي استفاده آيدانديس مي بدست .جابجايي

MOV:مثال AX,[BX][DI]

Page 29: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

دھی آدرس مختلف حالتھای

29

جابجايي-6 با انديس و مبنا دهي آدرس

ثباتهاي از يكي در آدرس دهي آدرس حالت ازBPياBXاين و گيرد مي انديسDIوSIقرار ثبات بعنوانجابجايي با انديس و مبنا مجموع از آدرس روش اين در شود مي آيداستفاده مي .بدست

:مثال

Page 30: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

ADDدستورالعملاز عبارتست آن كلي :شكل

ADD destination , Source

محتويSourceمحتوي شدهجdestinationبا معدر گيردdestinationنتيجه مي دستورالعمل.قرار اين

دارد اثر ها فلگ .روي

Page 31: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثالADD AL , 5

محتوی5 به گرددALواحد مي .اضافه

Page 32: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

ADD X , BX

محتوی محتويXبه ،BXمحتوي و گردد مي BXاضافهكند نمي .تغيير

Page 33: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

SUBدستورالعملاز عبارتست آن كلي :شكل

SUB destination , Source

درdestinationازSourceمحتوي نتيجه گرديده كمdestinationمحتوي و شود مي داده تغييرSourceقرار

كند .نمي

Page 34: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

SUB Y , 20

اندازهYتغيير يابد20به مي كاهش .واحد

Page 35: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

SUB AX , X

درAXازXمحتوي نتيجه و شده گيردAXكم مي .قرار

Page 36: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

نكتهدومsubوaddدردستورالعملهاي� عملوند نميكند)source(محتواي .تغييردستور� هر دستورaddبراي تعدادsubيك ها، عملوند نوع همان با متناظر

دارد وجود هدف كد هاي بايت تعداد و زماني هاي .سيكلثب� در عملوند دو هر كه باشند مي ترين سريع زماني تفريق و جمع قراراعمال ها ات

د اي كلمه يك مقصد عملوند كه باشند مي كندترين زماني و باشند حافظهداشته ر.باشد

سريع� ثبات يك محتواي به اصلي ي حافظه در واقع عملوند يك كردن ازاضافه تراصلي ي درحافظه واقع عملوند يك محتواي به ثبات يك مقدار كردن مياضافه

.باشندبالواسطه� منبع عملوند يك ، است كلمه يك برابر مقصد عملوند كه تواندزماني مي

باشد بايت يك تبديل.برابر كلمه يك به تفريق يا جمع عمل اجراي زمان در زيراشود .مي

Page 37: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

هاي DECدستورالعمل , INCاز عبارتست آن كلي :شكل

DEC destinationINC destination

INCدستورالعمل , DECبه را مقصد عملوند ترتيب بهدهد مي افزايش يا و كاهش واحد يك .اندازه

Page 38: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

INC XيابدXمحتوی مي افزايش واحد .يك

DEC AXيابدAXمحتوي مي كاهش واحد .يك

Page 39: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:نكته

باشد ثابت تواند نمي عملوند و دارد اثر ها فلگ روي دستورالعمل .اين

Page 40: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

دستورات مورد در decوincنكاتينظرميگيرند� در عالمت بدون عدد يك صورت به را مقصد عملوند .مقدارهاي� نشانهZFوSFوOFنشانه ولي تغييرميدهند دهندCFرا .راتغييرنميو� مفيدند ها شمارنده كاهش و افزايش كارامدبراي متناظر وتفريق جمع ازدستورات

.ترندب� مي ها ثبات امكان صورت در ها شمارنده داشتن نگه براي مكان .اشندبهترين

Page 41: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

بودن تر كارامد بهdecوincعلت هاsubوaddنسبت درشمارنده

addدودستور� bx , incو1 bxاما باشند مي معادل نظركاري ازو4بهaddدستور زماني حافظه3سيكل دستوربايت كه صورتي در دارد incنياز

دارد2به نياز حافظه بايت يك و زماني .سيكل

دستور� دو ترتيب همين subبه counter decو1, counterكاري نظر ازدستور ولي يكديگرند و23بهsubمعادل زماني دارد4سيكل نياز حافظه بايت

دستور كه و21بهdecدرصورتي زمان است4سيكل نيازمند حافظه .بايت

Page 42: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

NEGدستورالعمل

از عبارتست آن كلي :شكل

NEG destination

مكمل يعني نمايد مي منفي را خود عملوند دستورالعمل ايننمايد2 مي محاسبه را .آن

Page 43: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

MOV AX ,100

NEG AX

يابد-100بهAXمحتوي مي .تغيير

Page 44: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

تفاوتدر هايتفاوت دستورالعمل تمام كه است وadd,sub,inc,decاين

negاورند مي در روز به را ها نشانه ثبات هاي .نشانههاي ,ZFنشانه SF, PF, OF, AFتغيير ها دستورالعمل نتيجه مقدار مطابق

كنند مي .پيدا

Page 45: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

ضرب دستورالعملهايباشد مي ضرب دستورالعمل دو داراي :اسمبلي

�IMULگيرد مي نظر در عالمتدار بصورت را .عملوندها

�MULگيرد مي نظر در عالمت بدون بصورت را .عملوندها

Page 46: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

ضرب دستورالعملهاياز عبارتست آن كلي :شكل

MUL OPRIMUL OPR

Page 47: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:توضيحات

باشد� تواند نمي ثابت .عملوند

محتويOPRچنانچه� باشد بايت نوع محتويOPRاز ضربALدردر نتيجه گيردAXشده مي .قرار

نوعOPRچنانچه� محتويWORDاز محتويOPRباشد AXدردر نتيجه شده DXضرب : AXهاي ثبات محتوي و گيرد مي قرار

DX , AXرود مي بين .از

دارد� اثر ها فلگ .روي

Page 48: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

MOV AL , 10MOV X , - 8IMUL X

ثبات بAXمحتوي -ابرابر شود80 .مي

Page 49: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

تقسيم هاي دستورالعملباشد مي تقسيم دستورالعمل دو داراي :اسمبلي

�IDIVگيرد مي نظر در عالمتدار بصورت را .عملوند

�DIVگيرد مي نظر در عملوند بدون بصورت را .عملوند

Page 50: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

تقسيم هاي دستورالعملاز عبارتست آن كلي :شكل

DIV OPRIDIV OPR

Page 51: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:توضيحات

باشد� تواند نمي ثابت .عملوند

محتويOPRچنانچه� باشد بايت نوع تقسيمOPRمحتويبرAXازدر نتيجه گيردALشده مي درقرار تقسيم باقيمانده ميAHو قرار

.گيرد

نوعOPRچنانچه� محتويWORDاز محتويبDX:AXباشد رOPRنتيجهتقسيم وAXدرتقسيمشده گيرد مي درقرار باقيمانده

DXگيرد مي .قرار

Page 52: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثالX DB 13MOV AX , 134DIV X

محتوي فوق هاي دستورالعمل اجراي از باALپس محتوي10برابر باAHو برابرباشد4 .مي

Page 53: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

هاي SBBدستورالعمل , ADC

نوع از مقدار دو تفريق و جمع براي اسمبلي doubleدر wordندارد وجود دستورالعملهاي.دستورالعملي ار منظور اين براي

SBB , ADCگردد مي .استفاده

Page 54: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

هاي SBBدستورالعمل , ADCاز عبارتست آن كلي :شكل

ADC destination , Source

destination destination + Source + CF

SBB destination , Sounce

destination destination -Source – CF

Page 55: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثالADC X , BX

SBB AX , Y

Page 56: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

دو جمع و doubleتفريق word

متغيير دو محتوي خواهيم نوعYوXمي doubleاز wordرادر را نتيجه نموده دهيمZجمع :قرار

X DD ?Y DD ?Z DD ?MOV AX , XADD AX , YMOV Z , AXMOV AX , X + 2ADC AX , Y + 2MOV Z + 2 , AX

بايستي نماييم كم هم از را متغيير دو محتوي بخواهيم چنانچهفوق دستورالعملهاي بهADDدر ADCرا , SUBبه SBBرا

نماييم .تبديل

Page 57: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

نشانه كردن CFكنترلي:clcدستورالعمل� دهدcfنشانه مي قرار صفر برابر 0CF.را : =ي:stcدستورالعمل� برابرcfنشانه دهد1را CF.قرارمي : = 1ي:cmcدستورالعمل� كندcfنشانه مي مكمل .را

Page 58: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

مطالب خالصهدستور� از ديگر محل به محل يك از ها داده انتقال ميشودmovبراي استفادهدستور� از حافظه از محل دو محتواي جابجايي ميشودxchgبراي استفادهدستور� با جمع باaddعمل تفريق ميگيردsubو صورتوincدستورالعمل� افزايش واحد يك كهdecبراي كاهش واحد يك براي

دارند تكرار هاي حلقه در زيادي كاربردمكملidivوimulدستورات� تقسيم و هستند2ضربهستندdivوmulدستورات� عالمت بدون اعداد تقسيم و .ضربدستورات� با را مقسوم طول تقسيم خطاي از جلوگيري cwdوcbwبراي

ميكنيم دوبرابر

Page 59: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

مطالب خالصهبيتsbbوadcدستورات� از استفاده با تفريق و جمع عمليات براي

ميروند بكار طوالني اعداد تفريق و جمع منظور به و قرضي يا سرريزوcmcوstcوclcدستورات� كردن روشن و كردن پاك براي

نشانه كردن ميروندcfمكمل بكارسرعت� از دارند قرار ثباتها داخل در آن عملوند كه دستورالعملهايي

برخوردارند بيشتريميشوند� اجرا تفريق و جمع از كندتر بسيار تقسيم و ضرب دستورات

Page 60: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

پنجم فصل مطالب فهرست

شرطي� غير هاي پرش

شرطي� هاي پرش

مقايسه� دستورالعمل

تكرار� اسمبليForحلقه زبان در

JCXZدستورالعمل�

LOOPNZدستورالعملهاي� , LOOPZ

LEAدستورالعمل�

Page 61: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

شرطي غير هاي پرشباشدgotoشبيهJMPدستور مي پاسگال است.در زير فرم داراي دستور :اين

JMP STATEMENT – LABEL

Page 62: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

JMP QUIT...

QUIT : MOV AL , 0

دستورالعمل اجراي محض كنترلJMPبهشرطي و قيد هيچ دستورالعملبدون به

MOVدستورالعمل و شده MOVمنتقلگردد مي .اجرا

Page 63: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:نكتهمعموال اسمبلي زبان STATEMENTدر – LABELدستورالعمل با ميNOPرا استفاده

دستورالعمل دهدNOPكنند نمي انجام كاري .هيچ:مثال

QUIT : NOPMOV AL , 0

Page 64: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

شرطي پرشهايكه دهد مي را امكان اين نويس برنامه به شرطي پرشهاي

اIFساختارهاي را كنترلي ساختارهاي ساير .نمايديجادوباشد مي زير بصورت كلي :شكل

J --- TARGET _ STATEMENT

پرش ، آن تحت كه است وضعيتي كننده تعيينشود مي پرش.اجرا يابد، تحقق شرط اگر

صورت اين غير در گرفت، خواهد صورتگرديد خواهد اجرا بعدي .دستورالعمل

Page 65: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

JZ END _ WHILE

فلگ اگر که است معنی بدين دستورالعمل باشدZFاين يك برابر،برچسب با دستورالعمل به ENDكنترل _ WHILEگردد مي منتقل

رود مي بعدي دستورالعمل به كنترل صورت اين غير .در

Page 66: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

دستورالعمل پرشمعنينام براي فلگهاJeتساوي حالت در ZFپرش = 1Jzصفر حالت در پرش

Jneمساوي نا حالت در ZFپرش = 0Jnzنبودن صفر حالت در پرشJsيك عالمت حالت در SFپرش = 1

Jnsصفر عالمت حالت در SFپرش = 0Jcيك نقلي رقم حالت در CFپرش = 1

Jncصفر نقلي رقم حالت در CFپرش = 0Jpتوازن حالت در PFپرش = 1Jpeزوج توازن حالت در پرشJnpتوازن غير حالت در PFپرش = 0Jpoفرد توازن حالت در پرشJoسرريزي حالت در OFپرش = 1

Jnoسرريزي غير حالت در OFپرش = 0

Page 67: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

مقايسه دستورالعملدستورالعمل از مقدار دو مقايسه گرددCMPبراي مي .استفاده

از عبارتند كلي :شكل

CMP OPR1 , OPR2

نتايجSUBدستورالعملمانندCMPدستورالعمل ولي نموده عملدهد مي تغيير را ها فلگ محتوي بلكه شود نمي ذخيره جايي .در

Page 68: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

CMP AX , 100محتوي باAXكه نمايد100را مي .مقايسه

CMP X , ‘$’

Page 69: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

�,�<�5 =>� � ����� �(�,�� ����?� ,� � �)!��' �� �!2�� ��

AF,CF,OF,PF�ZF��,�)�� �1@ ,� �� �� �� �.

�!2�� �1A� ,B�.CMP��� �+. � ,�<�5 � ��� �� �� /;.�1A� �,� ��

�#),C �1A� �) �� 6 �!2�� �� ��� .

Page 70: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

���+� ���) D0� <�5CFD0� �� E��1. �� �� �!7�� �� �� �� �),�F

�� <�5 �� �7,� �27 �) �!C� ���,' �G),�- 3�7,� �27 � �!C� ���,'�1@ ��

�!� �� !.

�,� �H���� <�5OF�!C� �H���� �� �!� �� ! �� �.�!@ ��

�!� �� ! �1@ �� �� 6�!I�� �J �� � �7,� �27 �.

�,� ��&' <�5SF����� /,*) E��1. K@,L �� �!� �� ! �� �),�F

K@,L �� �!� �� ! �1@ �� �� �),�F � �7,� �� K�?� �1�� ��' ��

�7,� �#M� ,� �1@ �� �� E��1..

�,� �1@<�5ZF�� � �7,� �1@ E��1. K@,L �� �!� �� !�� �),�F

�!� �� ! �1@ �� �� 6�!I�� �J.

Page 71: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

�� �� /; ���� �)!��' F �)!��' �� /�!� �.�-!�NO*. � �

�� �),�F �� PD�� �(�,�� � �H���� ��&' <�5operand_1F �2?-!�operan_2��2(� ����?� ,� 6�,12� ,�<�5 �� 3�7,�

�� �),�F �operand_1��,(� ,� �2"�H�operand_23�7,�

�7 � ��� ! �B�,*� �+Q� ,�<�5 �� .

Page 72: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

K�+� �!2�� �)!��' �� �� �R� � ,�S�T �� F ��,(� ��cmp,�<�5 �+Q� �) � �7,��� �U)��!�.

6 �!2�� 3�7,� �U5,L �� �)!��' ��� �20�cmp�',� �,�=�,T ��

�,�K�+� �!2�� �� �#() ��2��sub�� �F,) ��F 3�)� � F,) �V!���

�!� �� !O) �W2) /��� ���.

Page 73: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

��2(� F,W� ��F 6 �!2�� ���:

Cmp ax,356Cmp pattern,0D3a6h

cmp bh,'$'

� P�7,� �)!��' ���� ��,� �R� �&� �)!��' �� �� �7,� �27 � �C!.�

�() F,W� ��F K�+� �!2�� 3K�� ��

Cmp 100,total ;illegal

Page 74: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:نكتهد از ازCMPتورسپس شوند گرفته نظر در عالمت بدون عملوندها كه صورتي در

نمود استفاده توان مي زير شرطي پرش :دستورالعملهاي

دستورالعمل پرشمعنينام براي فلگها

Jaباالتر حالت در CF=0,ZF=0پرش

Jnbeمساوي يا پايين حالت در پرش

Jaeمساوي يا باالتر حالت در CF=0پرش

Jnbنبودن تر پايين حالت در پرش

Jbتر پايين حالت در CF=1پرش

Jnaeنبودن مساوي يا تر پايين حالت در پرش

Jbeمساوي يا تر پايين حالت در ZF=1پرش يا CF=1

Jnaنبودن باالتر حالت در پرش

Page 75: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:نكتهدستور از شوندCMPپس گرفته نظر در عالمت با عملوندها صورتيكه در

نمود استفاده توان مي زير شرطي پرش دستورالعملهاي :از

دستورالعمل پرشمعنينام براي فلگها

Jgبزرگتر حالت در SF=OF,ZF=0پرش

Jnleنبودن مساوي يا كوچكتر حالت در پرش

Jgeمساوي يا بزرگتر حالت در SF=OFپرش

Jnlنبودن كوچكتر حالت در پرش

Jlكوچكتر حالت در SF<>OFپرش

Jngeنبودن مساوي يا بزرگتر حالت در پرش

Jleمساوي يا كوچكتر حالت در SF<>OFياZF=1پرش

Jngنبودن بزرگتر حالت در پرش

Page 76: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

�,����L �F,���,Twhile 3until � forWhile: . ;code to check Boolean expression

.

.Body: . ;loop body

.

.Jpm While ;go check condition again

End_While

Page 77: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

�G),�- 3���"�� ����� �2� �� �� ��!� 6�,#' �� �� �� � Y�7

�� � Y�7 ��,��� � �!7�� �C ���L �)�� �,�); 3�7,� �27 � �8@

�!7�� �����.,� �C 3�7,� �27 �) �8@ ��!� 6�,#' �� �),�F ��

F �+� K�+� �!2��end_While����� �T �� � .

F Z� ���L �)�� �" �2#� 127�� F � �?G� �7,� �27 � $!V ��,�

F,W� ����8� F ]�, �#() S�T ��F �!� �� !O) ^8@ ,�6�,#'

�!� �� !.

Page 78: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

���L �� �� �� � Y�7 _,#�,JWhile�� ��(0 �� � � � � ��!#) ��,�

��!� �,�����' ���� �� ��and,�or�)!7�� `��. ����?� ,�.��

����'and�8@ Y�7 K� ,. ��7,� �27 � �8@ ��,� �)!��' �� ��

����' �� � �7,� �27 �or����' �W2) �),�F a�5or�� �� �� �) �8@

�7,� �27 �) �8@ /; �)!��' ��.

Page 79: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

���L��until�!7 /,� ��F 6�!@ �� �) !.��:

until��., Y�7loop. . .}���L �)��{

End until;�!7�� ����� ��., Y�7 =>� � ��7 �C �,#?� K0 �L ���L �)��.�"

� �0�� �" � �!7�� �C ��,��� ���L �)�� �7,#) � �0�� ��., Y�7 �C 3�7,�

F �+� 6 �!2�� F ��,)��end until����� �T �� � .

Page 80: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

�7,� �!�+� K#0 F � �?. 6,+5� � �+. �� �(�!�R� ��� !� � ��.

ForN,7: =�� �2� � ���to��,B2) � ���loop. . .}���L �)��{

End for:���L��for�,2,� �� �) !.�� �2L � ��while���" ��C�..

Page 81: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

تكرار اسمبليForحلقه زبان درتكرار حلقه باشFORدر مي معين قبل از شود اجرا بايد حلقه بدنه كه دفعاتي تعداد .داغلب

ثبات در بايستي را تعداد اين اسمبلي زبان دستورالعملECXدر تكرار دستورالعمل و داد قرارLOOPباشد .مي

از عبارتست كلي :شكل

LOOP Statement _ label

Page 82: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثالMOV ECX , 10LABI : _

__

LOOP LAB1

تكرار حلقه بدنه كه ميشود باعث فوق گردددستورالعملهاي اجرا كه.بار بار هرمحتويLOOPدستورالعمل از واحد يك شود مي شودECXاجرا مي شرط.كم

ثبات تعداد كه است اين تكرار گرددCXخاتمه صفر با .برابر

Page 83: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

JCXZدستورالعمل

باشدJCXZستورالعملد مي پرش نوع فلگي.يك روي پرش منتهيثبات تعداد چنانچه بلكه شود نمي انجامCXانجام پرش باشد صفر با برابر

شود باشد.مي مي زير بصورت كلي :شكل

JCXZ Statement _ label

Page 84: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

MOV CX , 50LABI: .

..

DEC CXJCXZ LABENDJMP LABI

LABEND:

تكرار دستورالعمل بدنه كه ميشود باعث فوق گردد50دستورالعملهاي اجرا .بار

Page 85: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

LOOPNZدستورالعملهاي , LOOPZ

LOOPNZستورالعملھاید , LOOPZدستورالعمل باLOOPشبيه بودهدستورالعمل از بعد دستورالعمل دو اين كه تفاوت تكرارCMPاين بدنه در

گردند مي .استفاده

از عبارتند كلي :شكل

LOOPZ Statement _ labelLOOPNZ Statement _ label

Page 86: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

LOOPNZ

ثبات در جديد مقدار نباشدCXچنانچه صفردستورالعمل باشد، صفر برابر صفر فلگ LOOPNZو

در كه دستورالعملي Statementبه _ labelدارد قراركند مي .پرش

Page 87: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

LOOPZ

ثباتمقدارچنانچه در باشدنصفرCXجديددستورالعمل باشد، يك صفر، فلگ دستورالعمليLOOPZو به

در Statementكه _ labelكند مي پرش دارد، .قرار

Page 88: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثالMOV CX , 10FOR :

.

.

.CMP BX , 0LOOPNE FOR

Page 89: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

LEAدستورالعمل

کلمات مخفف دستورالعمل Loadاين effect addressباشد .ميباشد مي زير بصورت دستورالعمل كلي :شكل

LEA destination, source

destinationثبات يك و16بايستي بوده بيتيsourceباشد مي حافظه به رجوعي گونه اين.هر

آدرس درsourceدستورالعمل destinationرادهد مي .قرار

Page 90: Machine Language and System Programming · 0000 000A a dw 10 0002 00 b db ?.code 0000 8B DF mov bx,di 0002 8A F9 mov bh,cl 0004 8B 1E 0000 R mov bx,a 0008 8A 26 0002 R mov ah,b 000C

:مثال

LEA BX , X

متغيير ثباتXآدرس گيردBXدر مي .قرار

باشد مي زير دستورالعمل معادل دستورالعمل .اينMOV BX , OFFSET


Recommended