سيستم نويسی وبرنامه ماشين زبانMachine Language
andSystem Programming
سوم جلسه
ھمدان صنعتی دانشگاه1389پاييز
مطالب فهرست
اصلي� حافظه
مركزي� پردازش واحد
ها� ثبات اهداف و اسامي
اسمبلي� زبان دستورالعملهاي
منبع� كد
برنامه� كلي شكل
دستورات� DWوDBعملوندهاي
دستورالعملها� عملوند
دهي� آدرس حالتهاي
با مي داده اندازه و داده نام داده نوع شامل اسمبلي در متغير شدتعريفاز عبارتند اسمبلي در متغير تعريف :دستورات
DBبايت يك تعريف برايDWبايت دو تعريف برايDDبايت چهار تعريف برايDQبايت هشت تعريف برايDTبايت ده تعريف براي:مثال
X DB 35hنام با متغيري اوليهXتعريف مقدار بايت35با يك طول به دسيمال هگزا
Y DW 569Fhنام با متغيري اوليهYتعريف مقدار با بايت دو طول 569Fhبه
3
دراسمبلي متغيرها
دستورات DWعملوندهاي , DB
يا دودوئي تايي، شانزده ، دهدهي صورت به ميتوان را عددي بيانعملوندهاي تايي هشتاز.كرد عبارتند استفاده مورد پسوندهاي
عددي پسوندمبناسيستمتايي 16Hشانزده
2Bدودوئي8Oهشتتايي
ميکند• فرض دھدھي را اعداد اسمبلر،
تا• صفر ع?مت بدون عدد شود255يک ذخيره بايت دريک .ميتواند
مورد• عملونديDWدستوردر براي مجاز محدوده .ميباشد65535تا-65535از،تا صفر ع?مت بدون ميگيرند65535اعداد جاي کلمه يک .در
:مثالMASK0 DB 01111101B
MASK1 DB 175DB 7DHMASK2
12ODBMASKL3
:مثال
WORD1 DW 1000
WORD1نوع مقدارWORDاز با شده .1000تعريف
:مثال
X DB 10 , 12 , 24 , 5 , 16
Xباشد مي بايت نوع از عنصري پنج آرايه .يك
:مثالTABLE DB 100 DUP (‘*’)
وTABLEآرايه بايت نوع اوليه100از مقدار با ، *عنصري
Number1 DW ?
Number2 DW ?
������ ��� �� � ����� �� � ������ � ����.
��� �� �� �� � ��� � ��� � �� ��!"�� ��#�� �� $ %� ��&'�� � �#() �
�!*).
:مثال
����'DUP� � �+� ��� ���,�� ,� ���� ,� ��,� ����- ��!. � �� �) !.��/��� ,
���� � �0 ��,12� ��!� 3��� � ���.
�� �����' �� ����,�DB3DW��� � ,45 �� ����� ��#�� 6 �!2�� �
�!7�� ���8� ������.
DUPعملگر
6 �!2��
array DB 100 DUP(?)
Pointer DW OFFSET array
100� �� � ��,�array� �� � ������ �pointer� ������ ���pointer,�
�(5;array�!7�� ��� ���� ���.
مثال
شناسه براي ثابت مقدار تعريف
از ثابت مقدار تعريف ای کردEQUبر .استفاده
Sum EQU 20
Total dw 125
Sum equ total
وعملوند دستورالعملھاھاباشند مي مختلف انواع داراي .:عملوندها
، بوده ثابت بعضيكننده مشخص CPUثباتهايبعضي
نمايند مي رجوع حافظه به .برخيدستورالعملها از باشندبسياري مي عملوند دو را.داراي عماليت مقصد ، اول عملوند كلي بطور
عمليات منبع دوم عملوند و كنند مي .تعيين
:مانند
MOV AX,BXباال اسمبلي دستور وAXدستورلعمل،MOVدر اول باشدBXعملوند مي دوم .عملوند
13
:مثال
MOV AL , ‘*’کرکتر ثبات*که قبلي محتوي جايگزين شودALرا باشد.مي تواند نمي ثابت مقصد
باشد ثابت تواند مي منبع .وليعملوندي تك INCدستور BXعملوندي دو MOVدستور AX,8000hعملوند بدون STCدستور
14
ماشينكدنمونه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
پايه دستورات
حافظه مختلف هاي مكان بين ها داده انتقالكپي ديگر محل به محلي از را ها داده بايستي ها كامپيوتر اغلب
دستور.نمايند بوسيله كار شودMOVاين مي دستور.انجام كلي شكلMOVباشد مي زير صورت :به
MOV Destination , Source
:مثال
MOV CX , Count
حافظه گيردCXدرCOUNTمحتوي مي .قرار
يكMOVدستوالعمل به حافظه منبع يك از را اي داده تواند نمينمايد كپي حافظه مياني.مقصد ثبات يك از كار اين انجام براي معموال
گردد مي .استفاده
دستوالعمل ازعملوندهاي باشندmovتركيباتي نمي ممكن :كه
كه-�1 صورتي باشنددر داشته قرار حافظه در مقصد و منبع عملوند دو .هرمقصد-�2 سگمنت ثبات به بالواسطه منبع عملوندان-�3 از يا ها نشانه ثبات به هرانتقاليثبات-�4 به انتقالي IPهرديگر-�5 سگمنت ثبات به سگمنت ثبات يك از انتقالنباشند-�6 كلمه يا بايت نوع يك از ان عملوندهاي كه انتقالي هر
العمل xchgدستور�oper2,oper1xchg
صورت� دستور سه با باال سطح زبانهاي در كه دهد مي انجام را عملي گيردو .ميصو به نموده تعويض يكديگر با را دوم عملوند و اول عملوند دستور بهاين كه رتي
باشد داشته نياز كمتري حافظه و زماني .سيكلدست� دوم عملوند بايد حافظه عملوند ، اصلي حافظه از استفاده صورت xchgوردر
.باشد
دهدxchgدستورالعمل� نمي تغيير را ها نشانه .ثبات
دھی آدرس ھای حالتبالواسطه�
ثبات�
مستقيم�
مبنا� داراي
انديس� داراي
انديس� و مبنا داراي
21
دھی آدرس مختلف حالتھای
مستقيم غير ثبات
مبنا دارای
انديس دارای
انديس و مبنا دارای
مستقيم
مستقيم غير
ب�واسطهثباتحافظه
22
دھی آدرس مختلف حالتھای
23
واسطه-1 بال دهي آدرس
طول تواند مي دهي آدرس حالت باشد8اين داشته بيتي شانزده يا بيتي
باشد مي ثابت عدد يك دوم عملوند دهي آدرس نوع اين در
:مثال
MOV AX,8765h
MOV BL,5Fh
دھی آدرس مختلف حالتھای
24
ثبات-2 دهي آدرس
دستورالعم بوسيله كه گيرد مي قرار ثباتي در داده دهي آدرس حالت توانداين مي ثبات شود مي مشخص لباشد بيتي شانزده يا بيتي .هشت
:مثال
MOV AX,BX
MOV BL,CL
دھی آدرس مختلف حالتھای
25
مستقيم-3 دهي آدرس
دست از جزئي دارد بيتي شانزده طول كه داده آدرس دهي آدرس حالت طولاين به بسته باشد مي ورالعملمنتق ثبات به كلمه يك يا بايت يك دارد قرار اول عملوند در كه شودثباتي مي ل
:مثال
MOV AX,TABLE
MOV BL,TABLE
دھی آدرس مختلف حالتھای
26
ثبات-4 مستقيم غير دهي آدرس
ثباتهاي از يكي در آدرس دهي آدرس حالت گيردDIياBX,SIاين مي قرار
:مثال
MOV AX,[BX]
MOV BL,[DI}
دھی آدرس مختلف حالتھای
27
انديس-5 يا مبنا دهي آدرس
ثباتهاي از يكي در آدرس دهي آدرس حالت يكDI,BPياBX,SIاين روش اين در گيرد مي قراريا8جابجايي دارد16بيتي وجود .بيتي
:مثال
دھی آدرس مختلف حالتھای
28
انديس-5 و مبنا دهي آدرس
ثباتهاي از يكي در آدرس دهي آدرس حالت ازBPياBXاين و گيرد مي ثباتDIوSIقرار بعنوانبدون انديس و مبنا مجموع از آدرس روش اين در شود مي استفاده آيدانديس مي بدست .جابجايي
MOV:مثال AX,[BX][DI]
دھی آدرس مختلف حالتھای
29
جابجايي-6 با انديس و مبنا دهي آدرس
ثباتهاي از يكي در آدرس دهي آدرس حالت ازBPياBXاين و گيرد مي انديسDIوSIقرار ثبات بعنوانجابجايي با انديس و مبنا مجموع از آدرس روش اين در شود مي آيداستفاده مي .بدست
:مثال
ADDدستورالعملاز عبارتست آن كلي :شكل
ADD destination , Source
محتويSourceمحتوي شدهجdestinationبا معدر گيردdestinationنتيجه مي دستورالعمل.قرار اين
دارد اثر ها فلگ .روي
:مثالADD AL , 5
محتوی5 به گرددALواحد مي .اضافه
:مثال
ADD X , BX
محتوی محتويXبه ،BXمحتوي و گردد مي BXاضافهكند نمي .تغيير
SUBدستورالعملاز عبارتست آن كلي :شكل
SUB destination , Source
درdestinationازSourceمحتوي نتيجه گرديده كمdestinationمحتوي و شود مي داده تغييرSourceقرار
كند .نمي
:مثال
SUB Y , 20
اندازهYتغيير يابد20به مي كاهش .واحد
:مثال
SUB AX , X
درAXازXمحتوي نتيجه و شده گيردAXكم مي .قرار
نكتهدومsubوaddدردستورالعملهاي� عملوند نميكند)source(محتواي .تغييردستور� هر دستورaddبراي تعدادsubيك ها، عملوند نوع همان با متناظر
دارد وجود هدف كد هاي بايت تعداد و زماني هاي .سيكلثب� در عملوند دو هر كه باشند مي ترين سريع زماني تفريق و جمع قراراعمال ها ات
د اي كلمه يك مقصد عملوند كه باشند مي كندترين زماني و باشند حافظهداشته ر.باشد
سريع� ثبات يك محتواي به اصلي ي حافظه در واقع عملوند يك كردن ازاضافه تراصلي ي درحافظه واقع عملوند يك محتواي به ثبات يك مقدار كردن مياضافه
.باشندبالواسطه� منبع عملوند يك ، است كلمه يك برابر مقصد عملوند كه تواندزماني مي
باشد بايت يك تبديل.برابر كلمه يك به تفريق يا جمع عمل اجراي زمان در زيراشود .مي
هاي DECدستورالعمل , INCاز عبارتست آن كلي :شكل
DEC destinationINC destination
INCدستورالعمل , DECبه را مقصد عملوند ترتيب بهدهد مي افزايش يا و كاهش واحد يك .اندازه
:مثال
INC XيابدXمحتوی مي افزايش واحد .يك
DEC AXيابدAXمحتوي مي كاهش واحد .يك
:نكته
باشد ثابت تواند نمي عملوند و دارد اثر ها فلگ روي دستورالعمل .اين
دستورات مورد در decوincنكاتينظرميگيرند� در عالمت بدون عدد يك صورت به را مقصد عملوند .مقدارهاي� نشانهZFوSFوOFنشانه ولي تغييرميدهند دهندCFرا .راتغييرنميو� مفيدند ها شمارنده كاهش و افزايش كارامدبراي متناظر وتفريق جمع ازدستورات
.ترندب� مي ها ثبات امكان صورت در ها شمارنده داشتن نگه براي مكان .اشندبهترين
بودن تر كارامد به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سيكل نيازمند حافظه .بايت
NEGدستورالعمل
از عبارتست آن كلي :شكل
NEG destination
مكمل يعني نمايد مي منفي را خود عملوند دستورالعمل ايننمايد2 مي محاسبه را .آن
:مثال
MOV AX ,100
NEG AX
يابد-100بهAXمحتوي مي .تغيير
تفاوتدر هايتفاوت دستورالعمل تمام كه است وadd,sub,inc,decاين
negاورند مي در روز به را ها نشانه ثبات هاي .نشانههاي ,ZFنشانه SF, PF, OF, AFتغيير ها دستورالعمل نتيجه مقدار مطابق
كنند مي .پيدا
ضرب دستورالعملهايباشد مي ضرب دستورالعمل دو داراي :اسمبلي
�IMULگيرد مي نظر در عالمتدار بصورت را .عملوندها
�MULگيرد مي نظر در عالمت بدون بصورت را .عملوندها
ضرب دستورالعملهاياز عبارتست آن كلي :شكل
MUL OPRIMUL OPR
:توضيحات
باشد� تواند نمي ثابت .عملوند
محتويOPRچنانچه� باشد بايت نوع محتويOPRاز ضربALدردر نتيجه گيردAXشده مي .قرار
نوعOPRچنانچه� محتويWORDاز محتويOPRباشد AXدردر نتيجه شده DXضرب : AXهاي ثبات محتوي و گيرد مي قرار
DX , AXرود مي بين .از
دارد� اثر ها فلگ .روي
:مثال
MOV AL , 10MOV X , - 8IMUL X
ثبات بAXمحتوي -ابرابر شود80 .مي
تقسيم هاي دستورالعملباشد مي تقسيم دستورالعمل دو داراي :اسمبلي
�IDIVگيرد مي نظر در عالمتدار بصورت را .عملوند
�DIVگيرد مي نظر در عملوند بدون بصورت را .عملوند
تقسيم هاي دستورالعملاز عبارتست آن كلي :شكل
DIV OPRIDIV OPR
:توضيحات
باشد� تواند نمي ثابت .عملوند
محتويOPRچنانچه� باشد بايت نوع تقسيمOPRمحتويبرAXازدر نتيجه گيردALشده مي درقرار تقسيم باقيمانده ميAHو قرار
.گيرد
نوعOPRچنانچه� محتويWORDاز محتويبDX:AXباشد رOPRنتيجهتقسيم وAXدرتقسيمشده گيرد مي درقرار باقيمانده
DXگيرد مي .قرار
:مثالX DB 13MOV AX , 134DIV X
محتوي فوق هاي دستورالعمل اجراي از باALپس محتوي10برابر باAHو برابرباشد4 .مي
هاي SBBدستورالعمل , ADC
نوع از مقدار دو تفريق و جمع براي اسمبلي doubleدر wordندارد وجود دستورالعملهاي.دستورالعملي ار منظور اين براي
SBB , ADCگردد مي .استفاده
هاي SBBدستورالعمل , ADCاز عبارتست آن كلي :شكل
ADC destination , Source
destination destination + Source + CF
SBB destination , Sounce
destination destination -Source – CF
:مثالADC X , BX
SBB AX , Y
دو جمع و 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را
نماييم .تبديل
نشانه كردن CFكنترلي:clcدستورالعمل� دهدcfنشانه مي قرار صفر برابر 0CF.را : =ي:stcدستورالعمل� برابرcfنشانه دهد1را CF.قرارمي : = 1ي:cmcدستورالعمل� كندcfنشانه مي مكمل .را
مطالب خالصهدستور� از ديگر محل به محل يك از ها داده انتقال ميشودmovبراي استفادهدستور� از حافظه از محل دو محتواي جابجايي ميشودxchgبراي استفادهدستور� با جمع باaddعمل تفريق ميگيردsubو صورتوincدستورالعمل� افزايش واحد يك كهdecبراي كاهش واحد يك براي
دارند تكرار هاي حلقه در زيادي كاربردمكملidivوimulدستورات� تقسيم و هستند2ضربهستندdivوmulدستورات� عالمت بدون اعداد تقسيم و .ضربدستورات� با را مقسوم طول تقسيم خطاي از جلوگيري cwdوcbwبراي
ميكنيم دوبرابر
مطالب خالصهبيتsbbوadcدستورات� از استفاده با تفريق و جمع عمليات براي
ميروند بكار طوالني اعداد تفريق و جمع منظور به و قرضي يا سرريزوcmcوstcوclcدستورات� كردن روشن و كردن پاك براي
نشانه كردن ميروندcfمكمل بكارسرعت� از دارند قرار ثباتها داخل در آن عملوند كه دستورالعملهايي
برخوردارند بيشتريميشوند� اجرا تفريق و جمع از كندتر بسيار تقسيم و ضرب دستورات
پنجم فصل مطالب فهرست
شرطي� غير هاي پرش
شرطي� هاي پرش
مقايسه� دستورالعمل
تكرار� اسمبليForحلقه زبان در
JCXZدستورالعمل�
LOOPNZدستورالعملهاي� , LOOPZ
LEAدستورالعمل�
شرطي غير هاي پرشباشدgotoشبيهJMPدستور مي پاسگال است.در زير فرم داراي دستور :اين
JMP STATEMENT – LABEL
:مثال
JMP QUIT...
QUIT : MOV AL , 0
دستورالعمل اجراي محض كنترلJMPبهشرطي و قيد هيچ دستورالعملبدون به
MOVدستورالعمل و شده MOVمنتقلگردد مي .اجرا
:نكتهمعموال اسمبلي زبان STATEMENTدر – LABELدستورالعمل با ميNOPرا استفاده
دستورالعمل دهدNOPكنند نمي انجام كاري .هيچ:مثال
QUIT : NOPMOV AL , 0
شرطي پرشهايكه دهد مي را امكان اين نويس برنامه به شرطي پرشهاي
اIFساختارهاي را كنترلي ساختارهاي ساير .نمايديجادوباشد مي زير بصورت كلي :شكل
J --- TARGET _ STATEMENT
پرش ، آن تحت كه است وضعيتي كننده تعيينشود مي پرش.اجرا يابد، تحقق شرط اگر
صورت اين غير در گرفت، خواهد صورتگرديد خواهد اجرا بعدي .دستورالعمل
:مثال
JZ END _ WHILE
فلگ اگر که است معنی بدين دستورالعمل باشدZFاين يك برابر،برچسب با دستورالعمل به ENDكنترل _ WHILEگردد مي منتقل
رود مي بعدي دستورالعمل به كنترل صورت اين غير .در
دستورالعمل پرشمعنينام براي فلگها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
مقايسه دستورالعملدستورالعمل از مقدار دو مقايسه گرددCMPبراي مي .استفاده
از عبارتند كلي :شكل
CMP OPR1 , OPR2
نتايجSUBدستورالعملمانندCMPدستورالعمل ولي نموده عملدهد مي تغيير را ها فلگ محتوي بلكه شود نمي ذخيره جايي .در
:مثال
CMP AX , 100محتوي باAXكه نمايد100را مي .مقايسه
CMP X , ‘$’
�,�<�5 =>� � ����� �(�,�� ����?� ,� � �)!��' �� �!2�� ��
AF,CF,OF,PF�ZF��,�)�� �1@ ,� �� �� �� �.
�!2�� �1A� ,B�.CMP��� �+. � ,�<�5 � ��� �� �� /;.�1A� �,� ��
�#),C �1A� �) �� 6 �!2�� �� ��� .
���+� ���) 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.
�� �� /; ���� �)!��' 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 �� .
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) /��� ���.
��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
:نكتهد از ازCMPتورسپس شوند گرفته نظر در عالمت بدون عملوندها كه صورتي در
نمود استفاده توان مي زير شرطي پرش :دستورالعملهاي
دستورالعمل پرشمعنينام براي فلگها
Jaباالتر حالت در CF=0,ZF=0پرش
Jnbeمساوي يا پايين حالت در پرش
Jaeمساوي يا باالتر حالت در CF=0پرش
Jnbنبودن تر پايين حالت در پرش
Jbتر پايين حالت در CF=1پرش
Jnaeنبودن مساوي يا تر پايين حالت در پرش
Jbeمساوي يا تر پايين حالت در ZF=1پرش يا CF=1
Jnaنبودن باالتر حالت در پرش
:نكتهدستور از شوندCMPپس گرفته نظر در عالمت با عملوندها صورتيكه در
نمود استفاده توان مي زير شرطي پرش دستورالعملهاي :از
دستورالعمل پرشمعنينام براي فلگها
Jgبزرگتر حالت در SF=OF,ZF=0پرش
Jnleنبودن مساوي يا كوچكتر حالت در پرش
Jgeمساوي يا بزرگتر حالت در SF=OFپرش
Jnlنبودن كوچكتر حالت در پرش
Jlكوچكتر حالت در SF<>OFپرش
Jngeنبودن مساوي يا بزرگتر حالت در پرش
Jleمساوي يا كوچكتر حالت در SF<>OFياZF=1پرش
Jngنبودن بزرگتر حالت در پرش
�,����L �F,���,Twhile 3until � forWhile: . ;code to check Boolean expression
.
.Body: . ;loop body
.
.Jpm While ;go check condition again
End_While
�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�,#'
�!� �� !.
���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@ /; �)!��' ��.
���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 �� � .
�7,� �!�+� K#0 F � �?. 6,+5� � �+. �� �(�!�R� ��� !� � ��.
ForN,7: =�� �2� � ���to��,B2) � ���loop. . .}���L �)��{
End for:���L��for�,2,� �� �) !.�� �2L � ��while���" ��C�..
تكرار اسمبليForحلقه زبان درتكرار حلقه باشFORدر مي معين قبل از شود اجرا بايد حلقه بدنه كه دفعاتي تعداد .داغلب
ثبات در بايستي را تعداد اين اسمبلي زبان دستورالعملECXدر تكرار دستورالعمل و داد قرارLOOPباشد .مي
از عبارتست كلي :شكل
LOOP Statement _ label
:مثالMOV ECX , 10LABI : _
__
LOOP LAB1
تكرار حلقه بدنه كه ميشود باعث فوق گردددستورالعملهاي اجرا كه.بار بار هرمحتويLOOPدستورالعمل از واحد يك شود مي شودECXاجرا مي شرط.كم
ثبات تعداد كه است اين تكرار گرددCXخاتمه صفر با .برابر
JCXZدستورالعمل
باشدJCXZستورالعملد مي پرش نوع فلگي.يك روي پرش منتهيثبات تعداد چنانچه بلكه شود نمي انجامCXانجام پرش باشد صفر با برابر
شود باشد.مي مي زير بصورت كلي :شكل
JCXZ Statement _ label
:مثال
MOV CX , 50LABI: .
..
DEC CXJCXZ LABENDJMP LABI
LABEND:
تكرار دستورالعمل بدنه كه ميشود باعث فوق گردد50دستورالعملهاي اجرا .بار
LOOPNZدستورالعملهاي , LOOPZ
LOOPNZستورالعملھاید , LOOPZدستورالعمل باLOOPشبيه بودهدستورالعمل از بعد دستورالعمل دو اين كه تفاوت تكرارCMPاين بدنه در
گردند مي .استفاده
از عبارتند كلي :شكل
LOOPZ Statement _ labelLOOPNZ Statement _ label
LOOPNZ
ثبات در جديد مقدار نباشدCXچنانچه صفردستورالعمل باشد، صفر برابر صفر فلگ LOOPNZو
در كه دستورالعملي Statementبه _ labelدارد قراركند مي .پرش
LOOPZ
ثباتمقدارچنانچه در باشدنصفرCXجديددستورالعمل باشد، يك صفر، فلگ دستورالعمليLOOPZو به
در Statementكه _ labelكند مي پرش دارد، .قرار
:مثالMOV CX , 10FOR :
.
.
.CMP BX , 0LOOPNE FOR
LEAدستورالعمل
کلمات مخفف دستورالعمل Loadاين effect addressباشد .ميباشد مي زير بصورت دستورالعمل كلي :شكل
LEA destination, source
destinationثبات يك و16بايستي بوده بيتيsourceباشد مي حافظه به رجوعي گونه اين.هر
آدرس درsourceدستورالعمل destinationرادهد مي .قرار
:مثال
LEA BX , X
متغيير ثباتXآدرس گيردBXدر مي .قرار
باشد مي زير دستورالعمل معادل دستورالعمل .اينMOV BX , OFFSET