Download presentation
Presentation is loading. Please wait.
2
دانشگاه صنعتی امیرکبیر باری بی.بری
ریزپردازنده های اینتل باری بی.بری
3
ثباتهای8086 تا پنتیوم 4 الف- ثباتهای چندمنظوره
ثباتهای8086 تا پنتیوم 4 الف- ثباتهای چندمنظوره
4
ثباتهای8086 تا پنتیوم 4 ب- ثباتهای تک منظوره
ثباتهای8086 تا پنتیوم 4 ب- ثباتهای تک منظوره
5
ثباتهای8086 تا پنتیوم 4 ج- ثباتهای قطعه(Segment)
6
آدرس دهی در مود واقعی حافظه
آدرس آفست+آدرس قطعه=آدرس مود واقعی
7
آدرس دهی در مود واقعی حافظه
آدرس آفست+آدرس قطعه=آدرس مود واقعی 16× segment + offset
8
Example
9
Default Segment and Offset Registers
CS:IP OR CS:EIP
10
Example CS = 1400H & IP/EIP = 1200H آدرس دستور بعدی=15200H
11
Segment and Offset Addressing Scheme Allows Relocation
Dos OS: Real Mode Windows OS: Protected Mode
12
Selector and Descriptor
G:گرانولیته(دانه بندی) AV:وجود قطعه D:نوع مد
13
Selector and Descriptor: Example
14
ساختار حق دستیابی
15
ثباتهای نامرئی: Program-Invisible Registers
16
فصل 3 روشهای آدرس دهی
17
روشهای آدرس دهی
18
روشهای آدرس دهی
19
1- روشهای آدرس دهی:آدرس دهی فوری
20
روشهای آدرس دهی:آدرس دهی فوری
برچسبها با یکی از کاراکترهای خاص ، . مشخص می شوند. برچسب ممکن است 1 تا 35 کاراکتر داشته باشد. Label Comment Opcode میدان عملوند Label میدان توضیح میدان برچسب میدان کدعمل
22
2- روشهای آدرس دهی:آدرس دهی مستقیم
Mov AL,[1234H] OR Mov AL,DS:[1234H] =آدرس مود واقعی(آدرس موثر)10* H=11234H
23
2- روشهای آدرس دهی:آدرس دهی مستقیم انواع روشهای آدرس دهی مستقیم
2- روشهای آدرس دهی:آدرس دهی مستقیم انواع روشهای آدرس دهی مستقیم 1- آدرس دهی مستقیم(روش معمول): استفاده از دستورات سه بایتی برای ذخیره سازی 2- آدرس مستقیم با تغییر مکان (جابجایی): استفاده از دستور چهار بایتی برای ذخیره سازی این روش در تا پنتیوم 4 میتواند تا 7 بایت نیز باشد. انعطاف پذیری بیشتر نسبت به روش قبلی
24
2- روشهای آدرس دهی:آدرس دهی مستقیم
25
روشهای آدرس دهی حافظه برنامه
الف – مستقیم ب- نسبی ج- غیرمستقیم روشهای آدرس دهی با دستورات پرشی (JMP) و فراخوانی (CALL) بکار می روند.
26
روشهای آدرس دهی حافظه برنامه:آدرس دهی مستقیم یا روش دور
JMP [10000H] چند نکته : قالب دستورالعمل
27
روشهای آدرس دهی حافظه برنامه:آدرس دهی نسبی
این روش در ریزپردازنده های قدیمی موجود نیست. در این روش از اشاره گر دستور(IP) استفاده می شود. دستور JMP در این روش یک بایتی است.(جابحایی یک بایتی به صورت کوتاه(Short) و یا نزدیک (Near) پرش کوتاه 8 بیتی است و در محدوده -128 تا +127 انجام میشود. پرش کوتاه 16 بیتی است و در محدوده +32KB تا -32KB انجام می شود. جابجایی 32 بیتی فقط در ریزپردازنده های و بالاتر از آن انجام می شود و فقط مد حفاظت شده را پشتیبانی می کند.
28
روشهای آدرس دهی حافظه برنامه:آدرس دهی غیرمستقیم Example
نکته : ایجاد آرایه M1 db dup (100) M2 db dup (?) پرش 16 بیتی
29
روشهای آدرس دهی حافظه پشته Stack Memory Addressing
پشته برای ذخیره سازی موقت داده ها استفاده می شود. پشته از ساختار LIFO استفاده می کند.(PUSH و POP) حافظه پشته با دو ثبات اشاره گر پشته (SP یا ESP) و ثبات قطعه پشته(SS) نگهداری می شود.
30
روشهای آدرس دهی حافظه پشته Stack Memory Addressing
31
روشهای آدرس دهی حافظه پشته Stack Memory Addressing
32
فصل 4 دستورات انتقال داده
فصل 4 دستورات انتقال داده
33
زبان ماشین زبان ماشین: کد دودویی قابل فهم برای ماشین
دستورات زبان ماشین در 8086 تا پنتیوم 4 ، از 1 الی 13 بایت متغیرند. مثلا دستورات 8086 تا ، 16 بیتی اند. فرمت دستورات 8086 تا 80386: 16 بیتی Prefix اندیس مقیاس دار فرمت دستورات تا P4 : 32 بیتی
34
آنگاه پیشوند Register Size اضافه می شود.
چند نکته: اگر ثبات دستورات 32 بیتی باشد(مثلا از تا P4 ) و بخواهیم در مد 16 بیتی کار کنیم، آنگاه پیشوند Register Size اضافه می شود. اگر بخواهیم با ثبات 16 بیتی در مد 32 بیتی کار کنیم، پیشوند Address Size اضافه می شود. پیشوند Register Size برابر با 66H و پیشوند Address Size برابر با 67H می باشد؟؟؟ میدان MOD روش آدرس دهی را برای دستور انتخابی و وجود/عدم وجود جابجایی را نشان می دهد. Mov AL,[Di] Mov Al,[Di+2] بدون جابجایی
35
چند نکته: قالب OP-CODE اگر D=1 باشد، جریان داده از حوزه R/M به سمت میدان ثبات خواهد بود و اگر D=0 باشد، بالعکس. اگر W=0 سایز داده برحسب بایت و اگر W=1 باشد، سایز داده برابر با کلمه یا کلمه مضاعف درنظر گرفته می شود. D: بیت جهت W: نوع سایز داده
36
Example مثال: دستور دو بایتی 8BECH برای مد 16 بیتی
Mov BP,SP
37
Example مثال: دستور دو بایتی 8BECH برای مد 16 بیتی
Mov BP,SP
38
More Example مثال: دستور 87ACH برای مد 16 بیتی
39
آدرس دهی R/M
40
دستورات PUSH و POP دارای 6 فرم ثباتی،حافظه ای، فوری، ثبات قطعه، پرچمها و همه ثباتها می باشند. دستورات PUSH و POP دستورات ”فوری“ و PUSHA و POPA دستورات ”همه ثباتها“ می باشند که در ریزپردازنده های اولیه 8086 و 8088 وجود ندارند.اما در تا P4 وجود دارند. دستور PUSH در 8088 و 8086 ، دو بایت را به پشته انتقال می دهد ولی در به بعد، دو یا چهاربایت را انتقال می دهد.
41
دستورات PUSH و POP
42
دستورات PUSH و POP
43
Example: PUSH & POP
44
برای مقداردهی اولیه پشته ثباتهای SS و SP بارگذاری می شوند.
برای مثال فرض کنید پشته قرار است در آدرسهای تا 1FFFF قرار داشته باشد آنگاه : SS=1000H SP=0000H ?
45
مقداردهی اولیه پشتهExample:
46
بارکردن آدرس موثر دستورات : LEA-LDS-LES-LFS-LGS-LSS
شکل کلی این دستور: LEA op1 ,op2 مناسب برای دستورات 16 و 32 بیتی دستور LEA بر هیچ فلگی اثر ندارد.
47
بارکردن آدرس موثر تفاوت دستور LEA و MOV
LEA BX,[DI] MOV BX,[DI] LEA BX,[DI]=MOV BX,OFFSET ( مقدار با آدرس ثابت ) دستور OFFSET همیشه با MOV بکار گرفته می شود. زمان اجرای دستور LEA بیشتر از دستور MOV است. (چرا؟؟؟؟) MOV BX,OFFSET [Di] Error
48
بارکردن آدرس موثر More Example
49
بارکردن آدرس موثر More Example
50
بارکردن آدرس موثر More Example
51
بارکردن آدرس موثر More Example
52
بارکردن آدرس موثر More Example
53
بارکردن آدرس موثر دستورات : LDS-LES-LFS-LGS-LSS
هرثبات 16 یا 32 بیتی را با یک آدرس آفست و یا ثباتهای قطعه مانند DS، ES، FS، GS و یا SS را با یک آدرس قطعه بارگذاری می کنند. فقط آدرس دهی حافظه ایی و آنهم برای دستیابی به یک بخش 32 یا 48 بیتی را انجام میدهند. ؟؟؟؟ این دستورات روش آدرسدهی ثباتی(MOD=11) را پوشش نمی دهند. فقط روی پردازنده های به بالا کار می کنند.
54
بارکردن آدرس موثر دستورات : LDS-LES-LFS-LGS-LSS Example:
55
دستورات انتقال رشته LODS-STOS-MOVS-INDS-OUTS
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته LODS-STOS-MOVS-INDS-OUTS رشته به بلوکهای پشت سرهم از بایتها یا Wordها گفته می شود. در دستورات رشته ای بیت پرچم جهت در ثبات پرچم (بیت D) و ثباتهای Di و Si نقش بسزایی دارند. بیت D عمل افزایش خودکار(D=0) یا کاهش خودکار(D=1) را برای Si و یا Di انجام می دهد. دستور CLD پرچم D را پاک (D=0) و دستور STD آنرا برقرار(D=1) می کند. (پاک یا Reset و برقرار یا Set) به دستور CLD مد افزایش خودکا ر و به دستور STD مد کاهش خودکار گفته می شود. اگر کلمه رشته ای انتقال یابد DS و SI دو واحد اضافه یا کم می شوند. اگر جفت کلمه رشته ای انتقال یابد DS و SI چهار واحد اضافه یا کم می شوند. در و بالاتر از ESI و EDI بجای SI و DI استفاده می شود. از SI و DI برای دستیابی به حافظه استفاده می شود.
56
دستورات انتقال رشته LODS-STOS-MOVS-INDS-OUTS
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته LODS-STOS-MOVS-INDS-OUTS علاوه بر سگمنت داده (Data Segment یا DS) ، برای برخی دستورات رشته ای از سگمنتی اضافی بنام ES یا Extra Segment استفاده می شود.
57
دستورات انتقال رشته MOVS
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته MOVS برای کپی کردن یا انتقال یک رشته از یک محل حافظه به محل دیگر. اگر رشته از نوع بایت باشد از MOVSB و اگر از نوع WORD باشد از MOVSW استفاده می شود و ....
58
دستورات انتقال رشته MOVS
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته MOVS
59
دستورات انتقال رشته Example : MOVS
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته Example : MOVS
60
دستورات انتقال رشته Example : MOVS
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته Example : MOVS
61
دستورات انتقال رشته MOVS
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته MOVS تمرین : اگر در مثال قبل CLD حذف شود؟
62
دستورات انتقال رشته LODS
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته LODS رشته مبداء را در AL ، AX یا EAX قرار می دهد. همانند MOVS، روی هیج فلگی اثر ندارد و برای تکرار رشته از دستور REP استفاده می کند. دارای سه نوع LODSB، LODSW و LODSD می باشد. رشته در Data Segment تعریف می شود و آدرس شروع رشته در SI قرار میگیرد.
63
دستورات انتقال رشته Example : LODS
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته Example : LODS
64
دستورات انتقال رشته STOS
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته STOS یک بایت یا یک کلمه و یا یک جفت کلمه را از ثباتهای AL یا AX و یا EAX به رشته مقصد منتقل میکند.(دستور ذخیره سازی در AL یا AX و یا EAX) رشته در Extra Segment و آدرس شروع آن در ثبات DI قرار می گیرد.
65
دستورات انتقال رشته Example : STOS
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته Example : STOS
66
دستورات انتقال رشته Example : STOS
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته Example : STOS
67
دستورات انتقال رشته Example : STOS
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته Example : STOS
68
دستورات انتقال رشته Example : STOS
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته Example : STOS
69
دستورات انتقال رشته INS (Input String)
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته INS (Input String) ورود اطلاعات رشته ای از واحد I/O به قسمتی از حافظه آدرس I/O در ثبات DX است آدرس حافظه در ثبات DI است INS در ریزپردازنده های 8086 و 8088 وجود ندارد پشتیبانی از دستور REP
70
دستورات انتقال رشته INS Example:
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته INS Example:
71
دستورات انتقال رشته OUTS (Output String)
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته OUTS (Output String) ورود اطلاعات رشته ای از حافظه به واحد I/O آدرس I/O در ثبات DX است آدرس حافظه در ثبات SI است OutSدر ریزپردازنده های 8086 و 8088 وجود ندارد پشتیبانی از دستور REP
72
دستورات انتقال رشته OUTS Example:
دانشگاه صنعتی امیرکبیر دستورات انتقال رشته OUTS Example:
73
دستورات تبادل داده XCHG-SAHF-LAHF-XLAT-IN-OUT-MOVSX-MOVZX-BSWAP-CMOV
دانشگاه صنعتی امیرکبیر دستورات تبادل داده XCHG-SAHF-LAHF-XLAT-IN-OUT-MOVSX-MOVZX-BSWAP-CMOV
74
دستورات تبادل داده XCHG
دانشگاه صنعتی امیرکبیر دستورات تبادل داده XCHG XCHG op1,op2 For example: XCHG AX,BX OR XCHG EAX,EBX استفاده از تمام روشهای آدرسدهی بجز آدرسدهی فوری op1 و op2 نمیتوانند ثابت باشند. Op1 و op2 باید هردو از یک نوع باشند.(مثلا هردو از نوع بایت یا کلمه یا ....) op1 و op2 نمیتوانند هردو متغیر باشند. XCHG روی هیچ فلگی تاثیر ندارد. روش دیگر جابجایی استفاده از دستور MOV . ؟؟؟؟؟
75
دستورات تبادل داده Example: XCHG
دانشگاه صنعتی امیرکبیر دستورات تبادل داده Example: XCHG
76
دستورات تبادل داده Example: XCHG
دانشگاه صنعتی امیرکبیر دستورات تبادل داده Example: XCHG
77
دستورات تبادل داده LAHF & SAHF
دانشگاه صنعتی امیرکبیر دستورات تبادل داده LAHF & SAHF فاقد عملوند کاربرد بسیار پایین(قابل استفاده در ریزپردازنده های تا 8086) LAHF بایت کم ارزش ثبات فلگ (بیتهای 0 تا 7) را به AH منتقل می کند. SAHF محتوای ثبات AH را به بایت کم ارزش ثبات فلگ (بیتهای 0 تا 7) منتقل می کند. روی هیچ فلگی تاثیر ندارند. SAHF LAHF
78
دستورات تبادل داده XLAT
دانشگاه صنعتی امیرکبیر دستورات تبادل داده XLAT ترجمه یک کاراکتر به کاراکتر دیگر قبل از اجرای این دستور، کاراکتری که باید ترجمه شود در AL قرار میگیرد.سپس برای ترجمه محتوای AL را به BX اضافه می کند. برای ترجمه از جدول ترجمه یا جدول نظاره (look Up Table) استفاده می کند. جدول ترجه در سگمنت داده قرار دارد.
79
دستورات تبادل داده IN-OUT
دانشگاه صنعتی امیرکبیر دستورات تبادل داده IN-OUT دستور IN داده ها را از I/O بهAL، AX یا EAX می ریزد. دستور OUT داده ها را از AL، AX یا EAX می ریزد. دو نوع روش آدرسدهی I/O برای دستورات IN و OUT وجود دارد:Constant Port و Variable Port در C.P داده ها با استفاده از آدرس 8 بیتی و در V.P با استفاده از آدرس 16 بیتی انتقال می یابند. آدرس دهی C.P همانند آدرسدهی فوری است. در V.P شماره پورت در DX ذخیره می شود.
80
دستورات تبادل داده Example: IN-OUT
دانشگاه صنعتی امیرکبیر دستورات تبادل داده Example: IN-OUT IN AL,6AH OUT 6AH,AL
81
دستورات تبادل داده MOVSX & MOVZX
دانشگاه صنعتی امیرکبیر دستورات تبادل داده MOVSX & MOVZX مختص تا P4 MOVZX AX,32H MOVSX AX,32H
82
دستورات تبادل داده BSWAP
دانشگاه صنعتی امیرکبیر دستورات تبادل داده BSWAP مختص تا P4 در یک ثبات 32 بیتی، بایت اول را با بایت چهارم و بایت دوم را با بایت سوم جابجا می کند. MOV EAX,FD4CB032H BSWAP EAX MOV EBX,EAX
83
دستورات تبادل داده CMOV (Conditional Move)
دانشگاه صنعتی امیرکبیر دستورات تبادل داده CMOV (Conditional Move) انتقال شرطی نیاز به سوئیچ .686 دارند.
84
دانشگاه صنعتی امیرکبیر
قالب برنامه اسمبلی
85
فصل 5 دستورات حسابی و منطقی
دانشگاه صنعتی امیرکبیر فصل دستورات حسابی و منطقی
86
دستورات جمع ADD-ADC-INC
دانشگاه صنعتی امیرکبیر دستورات جمع ADD-ADC-INC بیش از دستور جمع وجود دارد. XADD در تا P4 وجود دارد. این دستورات روی فلگها تاثیر دارند.
87
دانشگاه صنعتی امیرکبیر
دستورات جمع ADD دانشگاه صنعتی امیرکبیر
88
دانشگاه صنعتی امیرکبیر
دستورات جمع ADD دانشگاه صنعتی امیرکبیر
89
دانشگاه صنعتی امیرکبیر
دستورات ضرب و تقسیم دانشگاه صنعتی امیرکبیر MUL-IMUL-DIV-IDIV
90
دانشگاه صنعتی امیرکبیر
دستورات ضرب و تقسیم دانشگاه صنعتی امیرکبیر
91
دستورات ضرب و تقسیم Example
دانشگاه صنعتی امیرکبیر
92
فصل 9 مشخصات سخت افزاری 8086 تا 80886
دانشگاه صنعتی امیرکبیر
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.