View
16
Download
0
Category
Preview:
Citation preview
1
: فصلدستورالعمل های اساسی
Email:usefirad@gmail.com 1
: اهداف این فصل . یدپس از مطالعه این فصل با مفاهیم و مطالب زیر آشنا می شو
انتقال داده ها در حافظه -۱دستورالعمل های جمع ، تفریق ، ضرب و تقسیم -۲دستورالعمل های جمع و تفریق مقادیر بزرگ -۳دستورالعمل های کاهش و افزایش -۴دستورالعمل محاسبه مکمل دو یک مقدار -۵
Email:usefirad@gmail.com 2
2
انتقال داده ها بین مکان های مختلف
در ثبات کپی محتویات متغیر : مثال
در کپی محتویات
Email:usefirad@gmail.com 3
...ادامه انتقال داده ها بین مکان های مختلف
MOV AL,BXMOV P1,P2MOV DS,CSMOV DS,15F3H
حاالت غیر مجاز در دستور
.طول دو عملوند باید برابر باشد.هر دو عملوند نباید آدرس حافظه باشند
.هر دو عملوند نباید ثبات سگمنت باشندنیست انتقال مقدار ثابت به ثبات سگمنت امکان پذیر
Email:usefirad@gmail.com 4
3
...ادامه انتقال داده ها بین مکان های مختلف
Datasg segment para ‘data’p1 DB 15p2 DB 25
Datasg endsCodesg segment para ‘code’main proc farassume cs:codesg ,ds:datasg
mov ax,datasgmov ds, ax
قرار داده و محتویات این دو محل را با هم عوض کند و را در محلهای ۲۵و ۱۵برنامه ای بنویسید که دو مقدار : مثال MOV AL,P1MOV BL,P2MOV P1,BLMOV P2,ALMain endp
Codesg endsend main
Email:usefirad@gmail.com 5
...ادامه انتقال داده ها بین مکان های مختلف قبل از اجرامتغیرها مقدار : خروجی مثال
اجراثبات ها بعد از مقدار
اجرامتغیرها بعد از مقدار Email:usefirad@gmail.com 6
4
...ادامه انتقال داده ها بین مکان های مختلف : مثال
Email:usefirad@gmail.com 7
...ادامه انتقال داده ها بین مکان های مختلف دستور بیت ) ۱۶یا ( ۸قرار داده و در ۱بیت اول عملوند ) ۱۶یا ( ۸را در ۲عملوند
را قرار می دهد ۲، عالمت عمولند ۱دوم عملوند
Email:usefirad@gmail.com 8
5
...ادامه انتقال داده ها بین مکان های مختلف دستور بیت ) ۱۶یا ( ۸قرار داده و در ۱بیت اول عملوند ) ۱۶یا ( ۸را در ۲عملوند
، مقدار صفر قرار می دهد ۱دوم عملوند
Email:usefirad@gmail.com 9
...ادامه انتقال داده ها بین مکان های مختلف پس از اجرا دستورات زیر و حاصل ثبات : مثال
چند می باشد ؟
Email:usefirad@gmail.com 10
6
دستور تغییر محتویات دو عملوند
.می باشد دارای تمام شروط : فرم کلی
Email:usefirad@gmail.com 11
دستور آدرس حافظه
240165 X2402
2403300 Y2404
2405
آدرس آفست متغیر را مشخص می کند
Email:usefirad@gmail.com 12
7
...ادامه - دستور آدرس حافظه مثال
2401400 X24022403
240424052406240724082409
Email:usefirad@gmail.com 13
...ادامه - دستور مثال
آدرس حافظه 4001
613 X40024003248400440053654006400712640084009
4010 Email:usefirad@gmail.com 14
8
...ادامه - دستور دلند هر سه دستور زیر با یکدیگر معا: نکته
Email:usefirad@gmail.com 15
...ادامه - دستور مثال
آدرس حافظه 4001
126400240032484004400561340064007
1260400840094010 Email:usefirad@gmail.com 16
9
...ادامه - دستور : مثال
Email:usefirad@gmail.com 17
...ادامه - دستور .دستور العمل زیر را در نظر بگیرد: مثال
بدست می آید ، در و ، مجموع مقادیر این دستورالعمل محتوی آدرسی را که ، از . قرار می دهد ثبات Email:usefirad@gmail.com 18
10
داده ) واقعی ( محاسبه آدرس فیزیکی تآدرس شروع سگمن
داده مورد نظرافست
DS = 18A3
...ادامه - دستور . ندمی گوی افستمورد نظر از ابتدای سگمنت داده را ، فاصله
Offset = 5B27آدرس داده واقعی ؟
18A30 Email:usefirad@gmail.comبیتی است ۲۰آدرس شروع سگمنت 0000 0011 1010 1000 0001 = 19
و آدرس شروع اگر آدرس واقعی داده ، : مثال .باشد ، مقدار آفست محاسبه شود سگمنت
...ادامه - دستور
Email:usefirad@gmail.com 20
11
دستور .قرار می دهد آدرس متغیر را در یکی از ثباتهای
ثبات متغیر مثال
ذخیره می شود در ثبات آدرس متغیر Email:usefirad@gmail.com 21
...ادامه -دستور دو دستور زیر با هم برابرند : نکته
Email:usefirad@gmail.com 22
12
...ادامه -دستور : مثال
، با محتوی آدرس متغیر . قرار می گیرد جمع شده و در
IF BX=10 آدرس حافظه4001
COL400240032484004400561340064007
1260400840094010 Email:usefirad@gmail.com 23
...ادامه -دستور : مثال
Email:usefirad@gmail.com 24
13
دستور .یردعملوند یک با عملوند دو جمع شده و حاصل در عملوند یک قرار می گ
) SS , DS , CS , ES. ( ثبات سگمنت نباید بعنوان عملوند یک استفاده شود. هر دو عملوند نباید حافظه باشند
. این دستور روی پرچم ها تاثیر می گذارد.باشند WORDهر دو عملوند بایستی از نوع بایت یا هر دو از نوع
Email:usefirad@gmail.com 25
...ادامه - دستور
. اضافه می شود واحد به محتوی ۵
. اضافه می شود واحد به محتوی Email:usefirad@gmail.com 26
14
...ادامه - دستور
نتیجه
نتیجه
:مثال
Email:usefirad@gmail.com 27
...ادامه - دستور
نتیجه
:مثال آدرس حافظه
4001613 X40024003
2484004400512840064007
400840094010 Email:usefirad@gmail.com 28
15
...ادامه - دستور در دستور تاثیر پرچم : مثال
نتیجه
Email:usefirad@gmail.com 29
...ادامه - دستور
نتیجه
آدرس حافظه:مثال 101
X12102X+120103X+25104X+314105X+426106X+530107
108Email:usefirad@gmail.com 30
16
دستور جمع دو مقدار از نوع
Email:usefirad@gmail.com 31
...ادامه دستور :مثال
Email:usefirad@gmail.com 32
17
...ادامه دستور x
X+2
…Y
Y+2
…Z
Z+2
31 16 15 0X Word _ high Word _ LOW
31 ADC 16 15 ADD 0Y Word _ high Word _ LOW
31 16 15 0Z Word _ high Word _ LOW
، در محاسبه ADCیکی از کاربرد های مهم دستور . می باشد double wordمجموع دو مقدار از نوع
Email:usefirad@gmail.com 33
...ادامه دستور .با هم جمع کرده و حاصل را در مکان دیگری از حافظه قرار دهدبیتی موجود در حافظه را ۳۲برنامه ای بنویسید که دو عدد :مثال Datasg segment para ‘data’
p1L dw 1213hp1H dw 56ABhp2L dw 1020hp2H dw 19BDhp3L dw ?p3H dw ?
Datasg endsCodesg segment para ‘code’main proc far
assume cs:codesg ,ds:datasg
mov ax,datasgmov ds, ax
MOV AX,P1LADD AX,P2LMOV P3L,AXMOV BX,P1HADC BX,P2HMOV P3H,BX
Main endpCodesg endsend mainEmail:usefirad@gmail.com 34
18
...ادامه دستور Datasg: خروجی این مثال segment para ‘data’p1L dw 1213h
p1H dw 56ABhp2L dw 1020hp2H dw 19BDhp3L dw ?p3H dw ?
Datasg endsCodesg segment para ‘code’main proc farassume cs:codesg ,ds:datasg
Email:usefirad@gmail.com 35
...ادامه دستور مقادیر ثبات ها و بیت های پرچم در آغاز کار
Email:usefirad@gmail.com 36
19
...ادامه دستور
Email:usefirad@gmail.com 37
...ادامه دستور مقادیر ثبات ها و بیت های پرچم در پایان کار
Email:usefirad@gmail.com 38
20
...ادامه دستور 31 16 15 0
P1 56AB 121331 ADC 16 15 ADD 0
P2 A9BD 102031 16 15 0
P3 1 00068 2233
Email:usefirad@gmail.com 39
دستور جمع . انجام می شود ADDابتدا جمع معمولی با دستور -۱. اصالح می شود DAAسپس نتیجه با دستور -۲
دستور . بعد از جمع بکار می رود BCDبرای تصحیح عدد
عملوندی ندارد .کار می کند ALروی ثبات
Email:usefirad@gmail.com 40
21
...ادامه دستور جمع : مثال
نمی باشد BCDبه صورت
AL = (D9H + 60 H ) =139H . هست BCDیک عدد 1001139 0011 0001Email:usefirad@gmail.com 41
...ادامه دستور جمع خالصه عمل
، نیبل پایینی یا اگر پس از یک دستور -۱بیت ۴باشد ، به این باشد ، یا اگر ۹بزرگتر از . اضافه می شود پایین تر ،
نمی باشد BCDبه صورت باشدمی BCDبه صورت
Email:usefirad@gmail.com 42
22
...ادامه دستور جمع : مثال
. درا به نیبل پایینی اضافه می کن ۶مقدار DAAاست ، AF=1چون Email:usefirad@gmail.com 43
...ادامه دستور جمع باشد ، یا اگر ۹اگر نیبل باالیی بزرگتر از -۲
.جمع می شود باشد ، نیبل باالیی با
نمی باشد BCDبه صورت باشدمی BCDبه صورت
Email:usefirad@gmail.com 44
23
دستور .قرار می دهد ۱کم کرده و حاصل را در عملوند ۱را از عملوند ۲عملوند
) SS , DS , CS , ES. ( ثبات سگمنت نباید بعنوان عملوند یک استفاده شود. هر دو عملوند نباید حافظه باشند
. این دستور روی پرچم ها تاثیر می گذارد.باشند WORDهر دو عملوند بایستی از نوع بایت یا هر دو از نوع
Email:usefirad@gmail.com 45
...ادامه -دستور
. کم می شود واحد از محتوی ۵
. کم می شود واحد از محتوی Email:usefirad@gmail.com 46
24
...ادامه -دستور
نتیجه
نتیجه
:مثال
Email:usefirad@gmail.com 47
...ادامه -دستور آدرس حافظه:مثال
101X26102
X+1126103X+264104X+313105X+440106
60107108
Email:usefirad@gmail.com 48
25
دستور تفریق دو مقدار از نوع
Email:usefirad@gmail.com 49
...ادامه دستور :مثال
Email:usefirad@gmail.com 50
26
دستور تفریق . انجام می شود SUBابتدا تفریق معمولی با دستور -۱. اصالح می شود DASسپس نتیجه با دستور -۲
دستور . بعد از تفریق بکار می رود BCDبرای تصحیح عدد
.عملوندی ندارد.کار می کند ALروی ثبات
Email:usefirad@gmail.com 51
ضرب اعداد بدون عالمت دستور : فرم کلی
بایت در بایت ضرب
کلمه در کلمه ضرب
Email:usefirad@gmail.com 52
27
...ادامه -دستور : مثال
Email:usefirad@gmail.com 53
...ادامه -دستور : مثال
Email:usefirad@gmail.com 54
28
...ادامه -دستور : مثال
Email:usefirad@gmail.com 55
...ادامه -دستور : مثال
Email:usefirad@gmail.com 56
29
...ادامه -دستور : مثال
Email:usefirad@gmail.com 57
...ادامه -دستور طیلی با مساحت مستبرنامه اي بنویسید که :تمرین
. را محاسبه نماید ۱۳و عرض ۲۰طول . در محیط شبیه ساز اجرا شود
. کد و خروجی ارسال شودEmail:usefirad@gmail.com 58
30
...ادامه -دستور
Email:usefirad@gmail.com 59
ضرب اعداد عالمت دار دستور : فرم کلی
بایت در بایت ضرب
کلمه در کلمه ضرب
Email:usefirad@gmail.com 60
31
...ادامه -دستور : مثال
Email:usefirad@gmail.com 61
...ادامه -دستور : مثال
Email:usefirad@gmail.com 62
32
...ادامه -دستور : مثال
Email:usefirad@gmail.com 63
بیتی بدون عالمت ۳۲ضرب دو مقدار حاصلضرب نهایی حاصلضرب جزئی ۳ ۲حاصلضرب جزئی ۱حاصلضرب جزئی
103 ×124 =(3 × 1 × 124)+(0 × 10 × 124)+ (1 × 100 × 124 ) Email:usefirad@gmail.com 64
33
... ادامه بیتی بدون عالمت ۳۲ضرب دو مقدار × ۱حاصلضرب
۲حاصلضرب۳حاصلضرب۴حاصلضرب
مجموع ) = بیتی ۶۴( حاصلضرب نهایی Email:usefirad@gmail.com 65
تقسیم اعداد بدون عالمتدستور
DIV BL AX÷BL AL= خارج قسمت AH= باقی ماندهکلمه بر بایت تقسیم ه کلمه مضاعف بر کلمضرب
: فرم کلی
DIV BX DX:AX÷BX AX= خارج قسمت DX = باقی ماندهEmail:usefirad@gmail.com 66
34
...ادامه - دستور : مثال
Email:usefirad@gmail.com 67
...ادامه - دستور : مثال
Email:usefirad@gmail.com 68
35
تقسیم اعداد عالمت دار دستور
IDIV BL AX÷BL AL= خارج قسمت AH= باقی ماندهکلمه بر بایت تقسیم ه کلمه مضاعف بر کلمضرب
: فرم کلی
IDIV BX DX:AX÷BX AX= خارج قسمت DX = باقی ماندهEmail:usefirad@gmail.com 69
...ادامه -دستور : مثال
Email:usefirad@gmail.com 70
36
...ادامه -دستور : مثال
Email:usefirad@gmail.com 71
تبدیل کد اسکی به رقم و بالعکس
. کنید OFH ،ANDکد اسکی را با : روش اول -۱AND AL,OFH
تبدیل کد اسکی به رقم :قرار دارد فرض کنید کد اسکی در
. را از کد اسکی کم کنید 30Hیا 48عدد : روش دوم -۲SUB AL,48Email:usefirad@gmail.com 72
37
... ادامه تبدیل کد اسکی به رقم و بالعکس
. کنید 30H ،ORعدد را با : روش اول -۱OR AL,30H
تبدیل رقم به کد اسکی :قرار دارد فرض کنید عدد در
. را با عدد مورد نظر جمع کنید 30Hیا 48عدد : روش دوم -۲ADD AL,48
Email:usefirad@gmail.com 73
دستورالعمل های کاهش و افزایششکل کلی
. ، یک واحد کاهش پیدا می کند مقدار عملوند : . کنداضافه می ، یک واحد به مقدار عملوند :
. می گذارداثر PFو SF ،OF ،ZF ،AFاین دو دستور فقط روی فلگ های Email:usefirad@gmail.com 74
38
... ادامه –دستورالعمل های کاهش و افزایش نتیجه مثال
آدرس حافظهمثال 2000
X1302001200220032004 Email:usefirad@gmail.com 75
... ادامه –دستورالعمل های کاهش و افزایش آدرس حافظهمثال
2999X103000
20300126300241300363004
3005
نتیجه
Email:usefirad@gmail.com 76
39
دستورالعمل
: شکل کلیود یک عدد بکار می ر مکمل دو ،برای محاسبه
نتیجه
Email:usefirad@gmail.com 77
دستورالعمل
مبهم باشد و بخواهید آن را در اگر اندازه متغیر : مثال . قرار دهید ، از دستور زیر استفاده می شود ثبات
رود برای جایگزین کردن اندازه فرضی عملوند بکار می
Email:usefirad@gmail.com 78
40
به گسترش دستور -۱
s
SSSSSSSS s
AX
AL
ALAH
Email:usefirad@gmail.com 79
...ادامه به گسترش در ثبات ضرب محتوی ثبات : مثال
Email:usefirad@gmail.com 80
41
...ادامه به گسترش دستور -۲
s
SSSSSSSSSSSSSSSSS
DX:AX
AX
AXDX
Email:usefirad@gmail.com 81
...ادامه به گسترش بر ثبات تقسیم محتوی ثبات : مثال
Email:usefirad@gmail.com 82
Recommended