74
وی س و م ی ف صط م د ی س م: ی ظ ن ت ه و ی ه ت ی ل ی م س ا$ ان ب ه ز ب ی س ی و ن ه م ا رب ب ات ی ل م ع ی و ف ط ن م ی و ض ا زب وزات ت س م: د ی ف ه ل ص فBCD

تهیه وتنظیم: سید مصطفی موسوی

  • Upload
    kevina

  • View
    72

  • Download
    7

Embed Size (px)

DESCRIPTION

برنامه نویسی به زبان اسمبلی. فصل هفتم: دستورات ریاضی و منطقی و عملیات BCD. تهیه وتنظیم: سید مصطفی موسوی. رجیستر پرچم. رجیستر پرچم شامل پرچم هایی است که پس از انجام دستورات ریاضی و منطقی تحت تاثیر قرار میگیرند. شامل سه نوع بیت است: پرچم های شرایطی (که با رنگ سیاه مشخص شده اند) - PowerPoint PPT Presentation

Citation preview

Page 1: تهیه وتنظیم: سید مصطفی موسوی

تهیه وتنظیم: سید مصطفی موسوی

برنامه نویسی به زبان اسمبلی

فصل هفتم: دستورات ریاضی و منطقی و عملیات BCD

Page 2: تهیه وتنظیم: سید مصطفی موسوی

رجیس(تر پ(رچم ش(امل پ(رچم ه(ایی اس(ت ک(ه پس از انج(امدست(ورات (ریاضی و من(طقی تحت تاثیر ق(رار می(گیرند.

:شامل سه نوع بیت است)پرچم های شرایطی )که با رنگ سیاه مشخص شده اند پ(رچم ه(ایی ک(ه بای(د توس(ط دس(تورات خ(اص ص(فر و ی(ک گردن(د. )ک(ه ب(ا

رنگ قهوه ای مشخص شده اند( بیت ه(ای بال اس(تفاده ک(ه ب(ا عب(ارتU (Undefined).مش(خص ش(ده اند

رجیستر پرچم

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

U U U U OF DF IF TF SF ZF U AF U PF U CF

Page 3: تهیه وتنظیم: سید مصطفی موسوی

از پس ک(ه هس(تند ه(ایی پ(رچم ش(رایطی ه(ای پرچم منطقی و ریاض(ی اعم(ال و 0انج(ام و 1 ش(وند می

ایجاد شرایط خاصی را در برنامه اطالع می دهند.

رجیستر پرچم

Page 4: تهیه وتنظیم: سید مصطفی موسوی

( پرچم نقلیCF:) در دس(تورADD چنانچ(ه از رقم پ(رارزش رقم نقلی خ(ارج

شود یک می گردد و در غیر اینصورت صفر است.

Carryپرچم نقلی

1 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0

0 0 0 0 0 0 0 01

CF

+

Page 5: تهیه وتنظیم: سید مصطفی موسوی

در دس(تورSUB نی(از ب(ه رقم قرض(ی باش(د ی(ک می چنانچ(ه گردد و در غیر اینصورت صفر است.

Carryپرچم نقلی

1 0 0 0 0 0 0 0

1 1 0 0 0 0 0 0

1 1 0 0 0 0 0 0

1CF

-

Page 6: تهیه وتنظیم: سید مصطفی موسوی

برای دس(تور زی(ر ب(ا ش(رطAL=2EH و BL=50H بع(د از را مشخص نمایید.CF و ALاجرای دستور مقدار

ADD AL, BL

AL=7EH

CF=0

Carryپرچم نقلی

Page 7: تهیه وتنظیم: سید مصطفی موسوی

برای دس(تور زی(ر ب(ا ش(رطAL=60H و BL=B0H بع(د از را مشخص نمایید.CF و ALاجرای دستور مقدار

ADD AL, BL

AL = 10H

CF = 1

Carryپرچم نقلی

Page 8: تهیه وتنظیم: سید مصطفی موسوی

(پرچم توازنPF:) پرچمPF انج(ام ش(ده آن روی ک(ه عم(ل ب(ایتی هم(راه ب(ه

تع(داد یع(نی دهن(د می ف(رد ت(وازن این 1تش(کیل در ه(ا مجموعه باید فرد باشد.

ه(ا زوج باش(د 1اگ(ر پس از اج(رای دس(تور تع(داد PF ی(ک می می شود.0شود و در غیر اینصورت

(Parity)پرچم توازن

1 0 1 0 1 1 0 0

0 0 1 0 1 0 1 00

PF

1

PF

Page 9: تهیه وتنظیم: سید مصطفی موسوی

ش(رط ب(ا زی(ر دس(تور اج(رای AL=05Hبرای از بع(د را مشخص نمایید.PF و ALدستور مقدار

ADD AL, 30H

AL = 35H = 00110101B

PF = 1

(Parity)پرچم توازن

Page 10: تهیه وتنظیم: سید مصطفی موسوی

ش(رط ب(ا زی(ر دس(تور اج(رای AL=04Hبرای از بع(د را مشخص نمایید.PF و ALدستور مقدار

ADD AL, 30H

AL = 34H = 00110100B

PF = 0

(Parity)پرچم توازن

Page 11: تهیه وتنظیم: سید مصطفی موسوی

(پرچم نقلی کمکیAF:) اگ(ر در جم(ع دو مق(دار ب(ایتی از بیت س(وم رقم نقلی خ(ارج

است.0 می شود و در غیر اینصورت 1شود مقدار آن

(Auxiliary)پرچم نقلی کمکی

0 0 0 0 1 0 0 0

0 0 0 0 1 0 0 0

0 0 0 1 1 0 0 0

1

AF

+

Page 12: تهیه وتنظیم: سید مصطفی موسوی

(پرچم نقلی کمکیAF:)

(Auxiliary)پرچم نقلی کمکی

0 0 0 0 1 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 1 0 0 0

0

AF

+

Page 13: تهیه وتنظیم: سید مصطفی موسوی

ش(رط ب(ا زی(ر دس(تور اج(رای AL=07Hبرای از بع(د را مشخص نمایید.AF و ALدستور، مقدار

ADD AL, 19H

AL=20H

AF=1

(Auxiliary)پرچم نقلی کمکی

Page 14: تهیه وتنظیم: سید مصطفی موسوی

در دس(تورSUB ب(ه رقم قرض(ی نی(از چنانچ(ه در بیت س(وم باشد یک می گردد و در غیر اینصورت صفر است.

(Auxiliary)پرچم نقلی کمکی

0 0 0 1 0 0 0 0

0 0 0 0 1 0 0 0

0 0 0 0 1 0 0 0

1AF

-

0 0 0 0 1 0 0 0

0 0 0 0 1 0 0 0

0 0 0 0 0 0 0 0

1AF

-

Page 15: تهیه وتنظیم: سید مصطفی موسوی

(پرچم صفرZF:) ی(ا منطقی ص(فر ی(ک دس(تور ریاض(ی نتیج(ه اج(رای چنانچ(ه

می گردد.0 یک و در غیر اینصورت ZFباشد مقدار مث(ال: ب(رای دس(تور زی(ر ب(ا ش(رطAL=07H و BL=07H بع(د از

را مشخص نمایید.ZF و ALاجرای دستور، مقدار

SUB AL, BL

AL=0H

ZF=1

(Zero)پرچم صفر

Page 16: تهیه وتنظیم: سید مصطفی موسوی

(پرچم عالمتSF:) باش(د نش(ان 1در اع(داد دودوئی، اگ(ر بیت پ(رارزش براب(ر

دهن(ده اینس(ت ک(ه آن ع(دد منفی اس(ت و در غ(یر اینص(ورت عدد مثبت است.

:مثال

(Sign)پرچم عالمت

1 0 0 0 1 0 0 عدد منفی0

0 0 0 0 1 0 0 عدد مثبت0

Page 17: تهیه وتنظیم: سید مصطفی موسوی

(پرچم عالمتSF:) بیت منطقی، ی(ا ریاض(ی دس(تور ی(ک اج(رای از نتیج(ه حاص(ل در چنانچ(ه

با(ش(د )ع(دد اگ(ر ی(ک( ب(اش(د)ع(د(د( م(ثبت(( مق(دار (آن ص(فر (و( پ(رارز(ش ص(فر مت حاص(ل ا(ز (نت(یج(ه عم(ل( را نش(ان م(ث(بت( مق(دا(ر( آ(ن ی(ک می( (ش(ود یع(نی ع(ال(

می دهد.

مث(ال: ب(رای دس(تور زی(ر ب(ا ش(رطAL=5FH بع(د از اج(رای دس(تور، مق(دار AL و SF.را مشخص نمایید

ADD AL, 7DH

AL=DCH

SF=1یعنی عدد منفی است

(Sign)پرچم عالمت

Page 18: تهیه وتنظیم: سید مصطفی موسوی

مث(ال: ب(رای دس(تور زی(ر ب(ا ش(رطAL=5FH بع(د از اج(رای را مشخص نمایید.SF و ALدستور، مقدار

ADD AL, 12H

AL=71H

SF=0یعنی عدد مثبت است

(Sign)پرچم عالمت

Page 19: تهیه وتنظیم: سید مصطفی موسوی

(پرچم سرریزOF:) ی(ا ریاض(ی دس(تور ی(ک اج(رای از حاص(ل نتیج(ه چنانچ(ه

ب(رای ب(ایت و ب(ایتی بزرگ(تر از ی(ک ب(رای عملی(ات منطقی، دس(تورات کلم(ه ای بزرگ(تر از ی(ک کلم(ه باش(د، آنگ(اه پ(رچم

OF.یک می شود .کاربرد آن در بحث اعداد عالمت دار است

(Overflow)پرچم سرریز

Page 20: تهیه وتنظیم: سید مصطفی موسوی

ب(ا ش(رط زی(ر دس(تور ب(رای و AL=50Hمث(ال: BL=80 از بع(د را مشخص نمایید.OF و ALاجرای دستور، مقدار

ADD AL, BL

AL=D0H جم(ع آن D0Hحاص(ل پ(رارزش بیت ک(ه اس(ت اس(ت 1

( و اگ(ر ع(دد عالمت دار باش(د، ی(ک ع(دد منفی اس(ت. 1101)بن(ابراین جم(ع دو ع(دد مثبت ی(ک ع(دد منفی ش(ده اس(ت و

می شود.1پرچم سرریز OF=1

(Overflow)پرچم سرریز

Page 21: تهیه وتنظیم: سید مصطفی موسوی

شامل دستورات زیر است جمعADD و ADC تفریقSUB و SBB افزایش یک واحدINC کاهش یک واحدDEC ضربMUL تقسیمDIV

دستورات ریاضی

Page 22: تهیه وتنظیم: سید مصطفی موسوی

مشخصات دستورات ریاضیبه صورت بایتی و کلمه ای قابل اجرا هستند

ADD AL, 03H ADD AX, 30E3H

برای رجیس(تر ه(ای س(گمنت قاب(ل اج(را نمی باش(د. دس(تورزیر نا معتبر است:

ADD DS,12H داده ب(رای این فص(ل مع(رفی می ش(ود دس(توراتی ک(ه در

های بدون عالمت می باشد

دستورات ریاضی

Page 23: تهیه وتنظیم: سید مصطفی موسوی

:دستور جمع به شکل زیر می باشد ADD AX, 02H ADD AX, [02H] ADD AX, BX

:مشخصات دستورالعمل جمع منب(ع می توان(د ی(ک ع(دد، ی(ا مک(ان حافظ(ه و ی(ا محت(وی ی(ک

رجیستر باشد. ی(ک رجیس(تر ی(ا محت(وی و توان(د مک(ان حافظ(ه مقص(د می

باشد..منبع و مقصد نمی توانند همزمان مکانهای حافظه باشند

دستور جمع

Page 24: تهیه وتنظیم: سید مصطفی موسوی

:پرچم هایی که تحت تاثیر قرار می گیرندCFAFOFPFSFZF

ب(دون را اع(داد میکروپروسس(ور دس(تور این اج(رای برای مفه(ومی آن ب(رای بیت عالمت و گ(یرد می نظ(ر در عالمت

ندارد.

دستور جمع

Page 25: تهیه وتنظیم: سید مصطفی موسوی

.دستور جمع با در نظر گرفتن رقم نقلی به شکل زیر است ADC BX, 02H ;BX = BX + 02H + CF ADC AL, DL ;AL = AL + DL + CF

دستور جمع با در نظر گرفتن پرچم نقلی

Page 26: تهیه وتنظیم: سید مصطفی موسوی

:دستور تفریق به شکل زیر می باشد SUB AX, 02H SUB AX, [02H] SUB AX, BX

:مشخصات دستورالعمل تفریق منب(ع می توان(د ی(ک ع(دد، ی(ا مک(ان حافظ(ه و ی(ا محت(وی ی(ک

رجیستر باشد. ی(ک رجیس(تر ی(ا محت(وی و توان(د مک(ان حافظ(ه مقص(د می

باشد..منبع و مقصد نمی توانند همزمان مکانهای حافظه باشند

دستور تفریق

Page 27: تهیه وتنظیم: سید مصطفی موسوی

:پرچم هایی که تحت تاثیر قرار می گیرندCFAFOFPFSFZF

ب(دون را اع(داد میکروپروسس(ور دس(تور این اج(رای برای مفه(ومی آن ب(رای بیت عالمت و گ(یرد می نظ(ر در عالمت

ندارد.

دستور تفریق

Page 28: تهیه وتنظیم: سید مصطفی موسوی

زی(ر ب(ه ش(کل بیت قرض(ی ب(ا در نظ(ر گ(رفتن تفری(ق دس(تور است.

SBB BX, 02H ;BX = BX - 02H - CF SBB AL, DL ;AL = AL – DL - CF

دستور تفریق با در نظر گرفتن بیت قرضی

Page 29: تهیه وتنظیم: سید مصطفی موسوی

ب(ا ش(رط بع(د از BL=37H و CL=9CHمث(ال: ب(رای دس(تور زی(ر را مشخص نمایید.CF و CLاجرای دستور، مقدار

SUB CL, BL:جواب

CL=10011100

BL=00110111

CL(Result)=01100101

CF=0

دستور تفریق

Page 30: تهیه وتنظیم: سید مصطفی موسوی

مث(ال: ب(رای دس(تور زی(ر ب(ا ش(رطCL=2EH و BL=4AH بع(د از را مشخص نمایید.CF و CLاجرای دستور، مقدار

SUB CL, BL:جواب

CL=00101110

BL=01001010

CL(Result)=11100100

CF=1

SF=1

دستور تفریق

Page 31: تهیه وتنظیم: سید مصطفی موسوی

ب(ا ش(رط بع(د از BL=4CH و CL=21Hمث(ال: ب(رای دس(تور زی(ر را مشخص نمایید.CF و CLاجرای دستور، مقدار

SUB CL, BL:جواب

CL=00100001

BL=01001100

CL(Result)=11010101

CF=1

SF=1

دستور تفریق

Page 32: تهیه وتنظیم: سید مصطفی موسوی

مث(ال: برنام(ه ای بنویس(ید ک(ه دو ب(ایت تعری(ف ش(ده در س(گمنتب(ا مق(ادیر و 3EHداده 40H در را نتیج(ه و ب(ا هم(دیگر جم(ع را

قرار دهد.Resultبایت حافظه با نام

DataSeg SEGMENT

Num1 DB 3EH

Num2 DB 40H

Result DB ?

DataSeg ENDS

مثالهای مربوط به دستورات جمع و تفریق

Page 33: تهیه وتنظیم: سید مصطفی موسوی

CodeSeg SEGMENT

ASSUME CS:CodeSeg, DS:DataSeg

MOV AX, DataSeg

MOV DS, AX

MOV AL, Num1

ADD AL, Num2

MOV result, AL

MOV AX,4C00H

INT 21H

CodeSeg ENDS

END

مثالهای مربوط به دستورات جمع و تفریق

Page 34: تهیه وتنظیم: سید مصطفی موسوی

مث(ال: برنام(ه ای بنویس(ید ک(ه دو مق(دار دو کلم(ه ای تعری(ف ش(ده را ب(ا هم(دیگر 37952EB4H و 1021در س(گمنت داده ب(ا مق(ادیر

قرار دهد.resultجمع و نتیجه را در بایت حافظه با نام

DataSeg SEGMENT

Num1 DD 1021

Num2 DD 37952EB4H

Result DD ?

DataSeg ENDS

مثالهای مربوط به دستورات جمع و تفریق

Page 35: تهیه وتنظیم: سید مصطفی موسوی

CodeSeg SEGMENT

ASSUME CS:CodeSeg, DS:DataSeg

MOV AX, Num1

ADD AX, Num2

MOV result, AX

MOV AX, Num1+2

ADC AX, Num2+2

MOV result+2, AX

MOV AX,4C00H

INT 21H

CodeSeg ENDS

END

مثالهای مربوط به دستورات جمع و تفریق

Page 36: تهیه وتنظیم: سید مصطفی موسوی

CodeSeg SEGMENT

ASSUME CS:CodeSeg, DS:DataSeg

MOV AX, Num1

ADD AX, Num2

MOV result, AX

MOV AX, Num1+2

ADC AX, Num2+2

MOV result+2, AX

MOV AX,4C00H

INT 21H

CodeSeg ENDS

END

مثالهای مربوط به دستورات جمع و تفریق

Page 37: تهیه وتنظیم: سید مصطفی موسوی

مقص(د محت(وی مق(دار ب(ه واح(د ی(ک اف(زایش، دس(تور مشخص شده در دستور می افزاید.

:دستور افزایش، به شکل زیر می باشد INC AX INC [02H] INC [BX]

:مشخصات دستورالعمل افزایش.مقصد می تواند یک رجیستر یا یک مکان از حافظه باشد

INCدستور

Page 38: تهیه وتنظیم: سید مصطفی موسوی

:پرچم هایی که تحت تاثیر قرار می گیرندAFOFPFZFSF

ی(ا نقلی اگ(ر CFپرچم یع(نی گ(یرد. نمی ق(رار ت(اثیر تحت براب(ر ب(ایتی اج(رای دس(تور FFمحت(وی مقص(د ب(ا باش(د INC

ت(اثیر ق(رار نمی CF می ش(ود ام(ا پ(رچم 00مق(دار آن تحت گیرد.

INCدستور

Page 39: تهیه وتنظیم: سید مصطفی موسوی

اگ(ر زی(ر دس(تور ب(رای براب(ر BXمث(ال: و 40 باش(د [ 40 باش(د مق(دار ]34H براب(ر 40محت(وی ب(ایت ب(ا آدرس

چند است؟ INC BYTE PTR [BX]

[40] = 35H

INCدستور

Page 40: تهیه وتنظیم: سید مصطفی موسوی

مقص(د محت(وی مق(دار از واح(د ی(ک ک(اهش، دس(تور مشخص شده در دستور می کاهد.

:دستور کاهش، به شکل زیر می باشد DEC AX DEC [02H] DEC [BX]

:مشخصات دستورالعمل کاهش.مقصد می تواند یک رجیستر یا یک مکان از حافظه باشد

DECدستور

Page 41: تهیه وتنظیم: سید مصطفی موسوی

:پرچم هایی که تحت تاثیر قرار می گیرندAFOFPFZFSF

ی(ا نقلی اگ(ر CFپرچم یع(نی گ(یرد. نمی ق(رار ت(اثیر تحت ب(ایتی براب(ر ب(ا اج(رای دس(تور 00محت(وی مقص(د DEC باش(د

پ(رچم FFمق(دار آن ام(ا ت(اثیر ق(رار نمی CF می ش(ود تحت گیرد.

DECدستور

Page 42: تهیه وتنظیم: سید مصطفی موسوی

اگ(ر زی(ر دس(تور ب(رای براب(ر BXمث(ال: و 45 باش(د و محت(وی ب(ایت ب(ا 00H براب(ر 45محت(وی ب(ایت ب(ا آدرس

باش(ند آنگ(اه مق(دار این مکانه(ای 21H براب(ر 46آدرس حافظه بعد از اجرای دستور العمل چند است؟

DEC WORD PTR [BX]

[46] = 20H [45] = FFH

DECدستور

Page 43: تهیه وتنظیم: سید مصطفی موسوی

مث(ال: ب(رای دس(تور زی(ر اگ(رDATA1 بی(ان کنن(ده ی(ک داده ب(ا مق(دار آنگ(اه مق(دار 6830Hکلم(ه ای DATA1 باش(د

پس از اجرای دستور العمل چند است؟ DEC DATA1

DATA1 = 682FH

DECدستور

Page 44: تهیه وتنظیم: سید مصطفی موسوی

ب(دون ب(ایت ب(دون عالمت از منب(ع را در ب(ایتدس(تور ض(رب ب(دون عالمت، ی(ک ضرب م(ی کند.ALعالمت موجود (در رج(یستر

MUL BL ;AX = AL * BL MUL BYTE PTR [BX] ;AX = AL * [BX]

پای(ه دس(تورالعمل ض(رب، رجیس(تر ب(ه ALیع(نی ی(ک نتیج(ه ض(رب می باش(د. ق(رار می گیرد.AXدر ر(جیس(تر دو( بای(تی (شکل( یک عدد(

ب(دون عالمت از منب(ع را در کلم(ه ب(دون عالمت کلم(ه، ی(ک دو ب(ایتیدر دس(تورات ضرب می( کند.AXموجود در (رجی(ستر

MUL BX ;DX|AX = AX * BX MUL WORD PTR [BX] ;DX|AX = AX * [BX]

پای(ه دس(تورالعمل ض(رب کلم(ه ای، رجیس(تر ی(ک نتیج(ه AXیع(نی باش(د. می ق(رار می گیرد.DX و AXض(رب ب(ه ش(ک(ل ی(ک ع(د(د د(و کل(م(ه (ای د(ر ر(جیس(ترهای (

MULدستور

Page 45: تهیه وتنظیم: سید مصطفی موسوی

:دستور ضرب کلمه ای MUL منبع

MULدستور

AX

منبع

DX AX

:دستور ضرب بایتی MUL منبع

AL

منبع

AX

Page 46: تهیه وتنظیم: سید مصطفی موسوی

:مثال MUL BH ;AX = AL * BH MUL CX ;DX|AX = AX * CX MUL BYTE PTR [BX] ;AX = AL * [BX] MUL factor[BX] ;AX = AL * factor[BX]

MULدستور

Page 47: تهیه وتنظیم: سید مصطفی موسوی

مث(ال: برنام(ه بنویس(ید ک(ه ی(ک ب(ایت از حافظ(ه ب(ه ن(امMULBYTE را در ی(ک کلم(ه از حافظ(ه ب(ه ن(ام MULWORD ضرب کند.

MOV AX, MULWORD

MOV CL, MULBYTE

MOV CH,00H

MUL CX

MULدستور

Page 48: تهیه وتنظیم: سید مصطفی موسوی

ب(دون عالمت، مق(دار رجیس(تر تقس(یم ب(ر AXدس(تور را مق(د(ار موج(ود (در من(ب(ع تقس(یم( می (کن(د. خ(ارج قس(مت د(ر

قرار( می گیرد.AH و باقیمانده (در رجیستر (ALرجیستر ( DIV BL ;AL = AX / BL AH=AX % BL DIV BYTE PTR [BX] ;AL = AX / [BX] AH = AX % [BX]

ش(امل رجیس(ترهای دوکلم(ه اییا ی(ک ع(دد DX و AX را ب(ر کن(د. (خ(ارج( قس(مت (در رجیس(تر ت(قس(یم (می م(ق(دار( منب(ع

AX و( باقیمانده در ر(جیستر DX.ق(رار می (گیرد DIV BX ; AX = (DX|AX) / BX AX = (DX|AX) % BX DIV WORD PTR [BX] ; AX = (DX|AX) / [BX] AX = (DX|AX) % [BX]

DIVدستور

Page 49: تهیه وتنظیم: سید مصطفی موسوی

کلم((ه تقس((یم دس((تور ای:

DIVدستور

DX

DXمنبع AX

:دستور تقسیم بایتی

AX

AH

AXمنبع

AL

Page 50: تهیه وتنظیم: سید مصطفی موسوی

:مثال DIV BH ;AL = AX / BH AL = AX % BH DIV CX ;AL = AX / CX AL = AX % CX DIV BYTE PTR [BX] ;AL = AX / [BX] AL = AX % [BX] DIV factor[BX] ;AL = AX / factor[BX] AL = AX / factor[BX]

DIVدستور

Page 51: تهیه وتنظیم: سید مصطفی موسوی

مث(ال: برنام(ه بنویس(ید ک(ه ی(ک ب(ایت از حافظ(ه ب(ه ن(امDIVISOR تقس(یم ک(رده، خ(ارج قس(مت و 10را ب(ر ع(دد

num2 و num1باقیمان(ده را در ب(ایت ه(ای حافظ(ه ب(ا ن(ام قرار دهد.

MOV AL, DIVISOR

AND AX, 00FFH

MOV CL, 10

DIV CL

MOV num1, AL

MOV num2, AH

DIVدستور

Page 52: تهیه وتنظیم: سید مصطفی موسوی

:دستورات منطقی شامل دستورات زیر استANDORXOR

:این دستورات بر روی پرچم های زیر اثر می گذارندSFZFPFCF و OF.برابر صفر می شود و بر رویAF.تاثیر نمی گذارند

دستورات منطقی

Page 53: تهیه وتنظیم: سید مصطفی موسوی

:مشخصات دستورالعمل های منطقی منب(ع می توان(د ی(ک ع(دد، ی(ا مک(ان حافظ(ه و ی(ا محت(وی ی(ک

رجیستر باشد. ی(ک رجیس(تر ی(ا محت(وی و توان(د مک(ان حافظ(ه مقص(د می

باشد..منبع و مقصد نمی توانند همزمان مکانهای حافظه باشند

دستورات منطقی

Page 54: تهیه وتنظیم: سید مصطفی موسوی

دستورAND:به شکل زیر می باشد AND AX, 02H AND AX, [02H] AND AX, BX AND [02H], AX

ANDدستور

Page 55: تهیه وتنظیم: سید مصطفی موسوی

مث(ال: اگ(ر مق(دار رجیس(ترBX براب(ر B35EH باش(د پس از اجرای دستور زیر مقدار آن چند است؟

AND BX, 00FFH

:005جوابEH

ANDدستور

1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0

Page 56: تهیه وتنظیم: سید مصطفی موسوی

دستورOR:به شکل زیر می باشد OR AX, 02H OR AX, [02H] OR AX, BX OR [02H], AX

ORدستور

Page 57: تهیه وتنظیم: سید مصطفی موسوی

مث(ال: اگ(ر مق(دار رجیس(ترBX براب(ر B35EH باش(د پس از اجرای دستور زیر مقدار آن چند است؟

OR BX, 00FFH

:جوابB3FFH

ORدستور

1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1

Page 58: تهیه وتنظیم: سید مصطفی موسوی

دستورXOR:به شکل زیر می باشد XOR AX, 02H XOR AX, [02H] XOR AX, BX XOR [02H], AX

XORدستور

Page 59: تهیه وتنظیم: سید مصطفی موسوی

مث(ال: اگ(ر مق(دار رجیس(ترBX براب(ر B35EH باش(د پس از اجرای دستور زیر مقدار آن چند است؟

XOR BX, 00FFH

:جوابB3A1H

XORدستور

1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 1

Page 60: تهیه وتنظیم: سید مصطفی موسوی

برنام(ه ای بنویس(ید ک(ه دو کلم(ه تعری(ف ش(ده در حافظ(ه ب(ا مق(دیر139H و F3E0H را ب(ا هم(دیگر AND و نتیج(ه را در کلم(ه ای ب(ه

قرار دهد.ANDHEXنام Dseg SEGMENT

HEX1 DW 0F3E0H

HEX2 DW 139H

ANDResult DW ?

Dseg ENDS

MOV AX, HEX1

AND AX, HEX2

MOV ANDResult, AX

مثال

Page 61: تهیه وتنظیم: سید مصطفی موسوی

این دس(تور محتوی(ات ه(ر بیت از مقص(د را ب(ه تع(داد مش(خص ب(هسمت چپ شیفت می دهد.

.با ارزش ترین بیت به پرچم نقلی انتقال می یابد.کم ارزش ترین بیت برابر صفر می شود

:مثال SHL BX, 4 SHL BYTE PTR [BX]

رجیسترBX.چهار بار به سمت چپ شیفت پیدا می کند

SHLدستور

0CF

Page 62: تهیه وتنظیم: سید مصطفی موسوی

:دستورات شیفت بر پرچم های زیر تاثیر می گذارندSFZFCFPF در صورتی که مقصد ،AL.باشد معنی خواهد داشت OF اگ(ر عالمت ع(دد ع(وض ش(ود مق(دار ،OF ی(ک می ش(ود. در ش(یفت

های بیش از یک عدد این پرچم تعریف نشده است.AF.تعریف نشده است ،

می ت(وان تع(داد دفع(ات ش(یفت را درCL ق(رار داد و س(پس از استفاده نمود: SHLدستور

MOV CL, 02H SHL BP,CL

SHLدستور

Page 63: تهیه وتنظیم: سید مصطفی موسوی

مث(ال: اگ(ر مق(دارBX براب(ر E5D3 باش(د پس از اج(رای دس(تور و پرچم ها را تعیین نمایید:BXزیر مقدار

SHL BX,1

:قبل از اجرای دستور BX= 1110010111010011

پس از اجرای دستور BX= 1100101110100110 = CBA6 H CF=1 OF=0 PF=? SF=1 ZF=0

SHLدستور

Page 64: تهیه وتنظیم: سید مصطفی موسوی

همانن(د دس(تورSHL ب(ا این تف(اوت ک(ه بیت ه(ا ب(ه س(مت اس(ت راست منتقل می شوند:

.با ارزش ترین بیت برابر صفر می شود.کم ارزش ترین بیت به پرچم نقلی انتقال می یابد

SHR BX, 4 SHR BYTE PTR [BX]

SHRدستور

0 CF

Page 65: تهیه وتنظیم: سید مصطفی موسوی

مث(ال: اگ(ر مق(دارBX براب(ر E5D3 باش(د پس از اج(رای دس(تور و پرچم ها را تعیین نمایید:BXزیر مقدار

SHR BX,1

:قبل از اجرای دستور BX= 1110010111010011

پس از اجرای دستور BX= 0111001011101001 = 72E9 H CF=1 OF=1 PF=? SF=0 ZF=0

SHRدستور

Page 66: تهیه وتنظیم: سید مصطفی موسوی

مث(ال: برنام(ه ای بنویس(ید ک(ه در آن ج(ای نیم ب(ایت کم ارزش و نیمب(ایت (پ(ر( ار(زش( ی(ک( ب(ا(یت( (از( س(گمن(ت( د(اده ع(وض ش(ده( و( ن(تیج(ه در(

قرار( گیرد. SWAPBYTEب(ایت حافظه ب(ه نا(م Dseg SEGMENT

DATA1 DB 6EH

SWAPBYTE DB ?

Dseg ENDS

MOV CL,4

MOV AL, DATA1

SHL AL, CL

MOV BL,AL

MOV AL, DATA1

SHR AL,CL

OR AL, BL

MOV SWAPBYTE, AL

مثال

Page 67: تهیه وتنظیم: سید مصطفی موسوی

مث(ال: برنام(ه ای بنویس(ید ک(ه مش(خص کن(د ب(ایت تعری(ف ش(ده درس(گ(منت( دا(ده زو(ج ا(س(ت ی(ا ف(ر(د؟ (اگ(ر( زوج ب(اش(د آن(را (در ب(ایتی ب(ه

.قرار دهد (ODDBو (در (غیر( اینصورت (در ب(ای(تی به ن(ام EVENBنا(م Dseg SEGMENT

DIGIT DB 6EH

EVENB DB ?

ODDB DB ?

Dseg ENDS

MOV AL, DIGIT

SHR AL, 1

JC SAVEODD

MOV AL, DIGIT

MOV EVENB, AL

JMP EXIT

SAVEODD: MOV AL, DIGIT

MOV ODDB, AL

EXIT: …

مثال

Page 68: تهیه وتنظیم: سید مصطفی موسوی

در بی(ان ع(دد ده(دهی ب(ه ف(رمBCD ه(ر رقم ده(دهی بوس(یله ع(دد ،چهار رقمی باینری بیان می گردد.

35 0011 0101 ; BCD 35 0010 0011 ; باینری

BCDبر دو نوع است: فشرده و غیر فشرده درBCD بیت در نظ(ر گرفت(ه می ش(ود 4 فش(رده ب(رای ه(ر رقم

غ(یر فش(رده ب(رای ه(ر رقم ی(ک ب(ایت در نظ(ر گرفت(ه BCDام(ا در می شود.

35 0011 0101 35 00000011 00000101

BCDعملیات

Page 69: تهیه وتنظیم: سید مصطفی موسوی

مع(ادل 1مث(ال ک(ه بنویس(ید ای برنام(ه :BCD در ش(ده تعری(ف ب(ایت ب(ایت (مت(والی ذخ(یره نتیج(ه را در( س(ه آورد(ه(، س(گمنت( دا(ده را( بد(س(ت

نماید.Dseg SEGMENT

BINNUM DB 149

BCD1 DB ?

BCD10 DB ?

BCD100 DB ?

Dseg ENDS

;---------------------------

MOV AH, 0

MOV AL, BINNUM

MOV CL, 10

DIV CL

MOV BCD1, AH

;-------------------------

MOV AH, 0

DIV CL

MOV BCD10, AH

MOV BCD100, AL

مثال

Page 70: تهیه وتنظیم: سید مصطفی موسوی

ب(ایت 2مث(ال دو ک(ه بنویس(ید ای برنام(ه :BCD در تعری(ف ش(ده س(گمنت داده را ب(ه مع(ادل ب(اینری آن تب(دیل ک(رده و در ب(ایتی ب(ا

قرار دهد. EQUBINنام Dseg SEGMENT

BCD1 DB ?

BCD2 DB ?

BINNUM DB 149

Dseg ENDS

;---------------------------

MOV AL, BCD1

MOV BL, 10

MUL BL

ADD AL, BCD2

MOV EQUBIN, AL

;-------------------------

مثال

Page 71: تهیه وتنظیم: سید مصطفی موسوی

ب(ایت تعری(ف ش(ده در س(گمنت 3مث(ال : برنام(ه ای بنویس(ید ک(ه فش(رده BCD فش(رده ب(ودن تس(ت کن(د. اگ(ر BCDداده را ب(رای

و در غ(یر اینص(ورت PKBCDباش(د، آن(را در ب(ایت حافظ(ه ب(ه ن(ام قرار دهد.UNPKDدر بایت حافظه با نام

Dseg SEGMENT

NUM DB 83H

PKBCD DB ?

UNPKD DB ?

Dseg ENDS

مثال

Page 72: تهیه وتنظیم: سید مصطفی موسوی

ادامه...(3مثال( :MOV AL, NUM

AND AL, 0FH

CMP AL, 09H

JA UNPAC

MOV AL, NUM

AND AL, 0F0H

CMP AL, 090H

JA UNPAC

MOV AL,NUM

MOV PKBCD, AL

JMP EXIT

UNPAC:

MOV AL, NUM

MOV UNPKD, AL

EXIT:

مثال

Page 73: تهیه وتنظیم: سید مصطفی موسوی

برنام(ه ای بنویس(ید ک(ه ی(ک ب(ایت را ک(ه در حافظ(ه داده ب(ه 4مث(ال : فش(رده تعری(ف ش(ده اس(ت ب(ه ص(ورت دو ب(ایت و ب(ه BCDص(ورت

غیر فشرده ذخیره کند.BCDفرم Dseg SEGMENT

PKNUM DB 26H

BCD1 DB ?

BCD2 DB ?

Dseg ENDS

;------------------------------------

MOV AL, PKNUM

ADD AL, 0FH

MOV BCD1, AL

;------------------------------------

MOV AL, PKNUM

MOV CL, 4

SHR AL, CL

MOV BCD2 , AL

مثال

Page 74: تهیه وتنظیم: سید مصطفی موسوی

ب(ایت 5مث(ال بنویس(ید ک(ه دو برنام(ه ای :BCD تعری(ف ش(ده در فشرده در آورد.BCDسگمنت داده را به فرم

Dseg SEGMENT

BCD1 DB 03H

BCD2 DB 08H

PKBCD DB ?

Dseg ENDS

;------------------------------------

MOV AL, BCD2

MOV CL, 4

SHR AL, CL

OR AL, BCD1

MOV PKBCD, AL

مثال