ثبات پرچم (Flag Register)

Download Report

Transcript ثبات پرچم (Flag Register)

‫مهدی ایل بیگی‬
‫دانشگاه ازاد اسالمی دماوند‬
‫‪ .1‬واحد محاسبه و منطق )‪(ALU‬‬
‫– واحد محاسبه )‪(Arithmetic Unit‬‬
‫– واحد منطق )‪(Logic Unit‬‬
‫‪ .2‬رجيسترها‬
‫‪ .3‬واحد کنترل )‪(Control Unit‬‬
‫‪ .4‬گذرگاه مشترک )‪(Bus‬‬
‫‪ .5‬حافظه )‪(Memory‬‬
‫‪2‬‬
CU
ALU
R0
R1
Rn
DATA
ADDRESS
MEMORY
3
‫•‬
‫حافظه اصلي يک مجموعه منطقي از مکانهايتتي است کته هرکتداع وانتوان ممتال مي وا تد يتک وايت مستتوراااماها يتا مامههتا را يتره مايتد‪ .‬هتر‬
‫واي حافظه اصلي ماراي يک ورچسب عدمي وه اع امرس ميواشد‪.‬‬
‫محتوي‬
‫‪500‬‬
‫‪1000‬‬
‫‪100‬‬
‫‪1001‬‬
‫‪250‬‬
‫‪1002‬‬
‫‪340‬‬
‫‪1003‬‬
‫‪10‬‬
‫‪1004‬‬
‫‪410‬‬
‫‪1005‬‬
‫‪501‬‬
‫‪1006‬‬
‫‪10‬‬
‫‪1007‬‬
‫ادرس‬
‫‪....‬‬
‫‪WRITE‬‬
‫‪4‬‬
‫‪READ‬‬
8bit
DATA 8 BIT
ADDRESS 10 BIT
1024 = 210
READ
WRITE
5
8bit
DATA 8 BIT
ADDRESS 20 BIT
1MB = 220
READ
WRITE
6
32bit
DATA 32 BIT
ADDRESS 28 BIT
256MB = 228
READ
WRITE
7
16bit
DATA 16 BIT
ADDRESS 20 BIT
1MB =
220
READ
WRITE
8
‫‪00000‬‬
‫‪000…00000‬‬
‫‪ 20‬بار‬
‫‪FFFFF‬‬
‫‪9‬‬
‫‪111...11111‬‬
‫‪ 20‬بار‬
F0000-FFFFF
EFFFF
BIOS
BIOS
256KB
BIOS ‫برنامه هاي‬
BIOS
C0000
BIOS
BFFFF
128KB
‫حافظه گرافيکي‬
A0000
9FFFF
9
8
‫قابل استفاده توسط برنامه ها‬
640 KB
1
00000
0
10
‫•‬
‫مر پرمازشگر ‪ 8086‬امرس ها ‪ 20‬ويتي اس ‪ ،‬وای چون سلول های حافظه و رجيسترها ‪ 16‬ويتي هستند‪ ،‬می توان امرس‬
‫ها را مر یک سلول حافظه یا مر یک رجیستر یره کرم‪.‬‬
‫•‬
‫راه حا = استفامه از روش امرس مهی )‪.(Segment-Offset‬‬
‫•‬
‫مر این روش حافظه وه وخش )‪(Segment‬هایتتی وه ا دازه ‪ 64k‬قسیم می شوم‪.‬‬
‫•‬
‫ودایا اینکه امرس همه ‪Segment‬ها مر مبنای شا زمه وه ‪ 0‬تم می شوم (زیرا ضرایبی از ‪ 16‬هستند)‪ ،‬ایتن صتفر‬
‫که ماامل ‪ 4‬وی صفر مر واینری است را مر امرس مهتی اوتتدای هتر ‪ Segment‬مر ظتر متی گیتریم و مر تیجته متی‬
‫وا یم امرس هر ‪ Segment‬را وا ‪ 16‬وین مایش مهیم‪.‬‬
‫‪11‬‬
‫‪64KB‬‬
‫‪64KB‬‬
‫‪64KB‬‬
‫ابتداي سگمنت‬
‫‪0000‬‬
‫•‬
‫‪ Offset‬وراوتتر است وتتا امرس یتتک ستتلول‬
‫از حافظ ت تته‪ ،‬مرون ی ت تتک ‪،Segment‬‬
‫کت تته وراوت تتر وت تتا فاصت تتله ست تتلول مت تتورم ظت تتر مر‬
‫حافظت ت تته‪ ،‬از اوت ت تتداي ‪ Segment‬مت ت تتی‬
‫شوم‪.‬‬
‫•‬
‫و ترای امرس مهتتی هتتر ستتلول از حافظتته‪ ،‬مر‬
‫‪X‬‬
‫هت ت تتر ‪ Segment‬ي ت ت تتاز و ت ت تته ‪ 16‬وي ت ت ت‬
‫ماريم‪.‬‬
‫‪64KB = 216‬‬
‫‪12‬‬
‫‪FFFF‬‬
RAM
SEGMENT : OFFSET
ACF2
ACF2:CF12
CF12
SEGMENT
13
‫• مرحله اول‪ :‬وا اضافه کرمن صفر حذف شده‪ ،‬امرس واقاي سگمن را وايد مي کنيم‪.‬‬
‫• مرحله موع‪ :‬جمع امرس شروع سگمن وا افس ‪.‬‬
‫• ممال‪ :‬امرس ‪ 2FC4:412A‬را وه امرس ‪ 20‬ويتي بديا ماييد‪:‬‬
‫‪2FC40 +‬‬
‫‪412A‬‬
‫‪------------------‬‬‫‪33D6A‬‬
‫‪14‬‬
‫‪ :Code Segment .1‬مستورات ور امه مر این قطاه قرار مار د‪.‬‬
‫– کتته‪ :‬هر ور امه‪ ،‬ازوما واید یک ‪ Code Segment‬ماشته واشند‪.‬‬
‫‪ :Data Segment .2‬اگر ور امه یاز وه اریف متغییر ماشته واشد‪ ،‬این احیه را ماریم‪.‬‬
‫‪ :Stack Segment .3‬امرس های محا های وازگش مر موقع فرا وا ی زیتر ور امته هتا و ‪ ،...‬مر‬
‫یره می شو د‪.‬‬
‫این احیه که مر واقع یک پشته اس‬
‫‪ :Extra Segment .4‬وترای یتره اعاعتات وانتوان وختش اضتافی و مر مستتورات کتار وتا رشتته و‬
‫‪ ،...‬از این احیه استفامه می شوم‪.‬‬
‫‪15‬‬
RAM
DATA SEG
DATA
CODE
STACK
CODE SEG
STACK SEG
EXTRA SEG
CODE
EXTRA
DATA
EXTRA
STACK
16
‫• رجيسترهاي سگمن‬
‫• رجيسترهاي مامه‬
‫• رجيسترهاي اشاره گر‬
‫• رجيسترهاي شا ص‬
‫• رجيستر مستوراااما‬
‫• رجیستر پرچم‬
‫‪17‬‬
•
.‫های ور امه را گهداري مي کنند‬Segment ‫ امرس شروع‬،‫این رجیسترها‬
15
0
CODE SEGMENT(CS)
15
0
STACK SEGMENT (SS)
15
0
DATA SEGMENT(DS)
15
0
EXTRA SEGMENT(ES)
18
‫• ثباتهاي ‪ DX ،CX ،BX ،AX‬را ثباتهاي مامهاي يا ثباتهاي همگا ي ميگويند‪.‬‬
‫• ثب ت ت ت تتات ‪ AX‬را و ت ت ت تتا وجت ت ت ت تته و ت ت تته اينک ت ت تته وس ت ت تتياري از ت ت ت تتاي محاس ت ت تتبات مر ان قت ت ت ترار ميگير ت ت تتد‪ ،‬گ ت ت ت تتاهي اکومو ت ت ت تتور‬
‫(‪ )Accumulator‬یز مي امند‪.‬‬
‫‪15‬‬
‫‪0‬‬
‫‪AX‬‬
‫‪15‬‬
‫‪0‬‬
‫‪BX‬‬
‫‪15‬‬
‫‪0‬‬
‫‪CX‬‬
‫‪15‬‬
‫‪0‬‬
‫‪DX‬‬
‫‪19‬‬
‫•واضی از مستوراااملهای زوان ماشین‪ ،‬وطور اص‪ ،‬یاز وه یکی از ایتن ثبتات هتا مارم‪ .‬امتا مر متورم واضتی‬
‫میگر از مستوراااما ها‪ ،‬استفامه از هر یک از این ثبات ها‪ ،‬فاو ی می کند‪.‬‬
‫•استفامه های اص از ثبات های مامه ای‪:‬‬
‫• ‪ :AX‬ورای ا جاع محاسبات استفامه می شوم‪( .‬ضرب و قسیم)‬
‫• ‪ :BX‬وه عنوان ثبات پایه جه امرس مهی استفامه می شوم‪.‬‬
‫• ‪ :CX‬وه عنوان ثبات شماره استفامه می شوم‪.‬‬
‫• ‪ :DX‬ویشتر ورای عملیات رشته ای استفامه می شوم‪.‬‬
‫‪20‬‬
‫•‬
‫هر کداع از ثباتهاي ‪ DX ،CX ،BX ،AX‬را مي وان وه صورت مو ثبات ‪ 8‬ويتي مستقا يانتي‬
‫صف وا وراي ‪ 8‬وي سم چپ و صف پائين وراي ‪ 8‬وي سم راس ‪ ،‬استفامه موم‪.‬‬
‫•‬
‫مر اينجتتا حتتروف ‪ H‬و ‪ L‬وتته ر يتتب قستتم وتتا ئي )‪ (High‬و پتتائيني )‪ (Low‬ثباتهتتا را شتتان‬
‫ميمهند‪.‬‬
‫‪7‬‬
‫‪0‬‬
‫‪8‬‬
‫‪AL‬‬
‫‪0‬‬
‫‪AH‬‬
‫‪7‬‬
‫‪8‬‬
‫‪BL‬‬
‫‪0‬‬
‫‪8‬‬
‫‪CL‬‬
‫‪21‬‬
‫‪15‬‬
‫‪CH‬‬
‫‪7‬‬
‫‪DL‬‬
‫‪15‬‬
‫‪BH‬‬
‫‪7‬‬
‫‪0‬‬
‫‪15‬‬
‫‪8‬‬
‫‪15‬‬
‫‪DH‬‬
‫•‬
‫رجیسترهای مامه مر ‪ 32 ،Pentium‬ویتی هستند‪.‬‬
‫•‬
‫تتاع ای تتن رجیس تتتر ه تتا ‪EBX, ECX, EDX‬‬
‫‪ Extended‬و وه مانی وساه یافته می واشد‪.‬‬
‫‪0‬‬
‫‪ EAX,‬است ت ک تته ح تترف ‪ E‬س تتر اع‬
‫‪31‬‬
‫‪EAX‬‬
‫‪31‬‬
‫‪0‬‬
‫‪EBX‬‬
‫‪31‬‬
‫‪0‬‬
‫‪ECX‬‬
‫‪31‬‬
‫‪0‬‬
‫‪EDX‬‬
‫‪22‬‬
‫‪ .1‬اشاره گر پشته‪ :‬مر هر احظه امرس عنصر وا يتتي پشته را گهداري مي کند‪.‬‬
‫‪15‬‬
‫‪0‬‬
‫)‪(SP‬‬
‫‪STACK POINTR‬‬
‫‪ .2‬اشاره گر پايه‪ :‬مر روش هاي امرس مهي مورم استفامه قرار مي گيرم‪.‬‬
‫‪15‬‬
‫‪0‬‬
‫)‪BASE POINTER (BP‬‬
‫‪23‬‬
‫•‬
‫مر واضی از مستوراااما های زوان اسمبلی ورای ا تقال رشته ها و کار وتا حافظته از ثبتات هتای شتا ص‬
‫استفامه می کنیم‪.‬‬
‫•‬
‫مو رجیستتتر شتتا ص ونتتاع هتتای رجيستتتر مبتتدا )‪ (Source‬و رجيستتتر مقصتتد )‪،(Destination‬‬
‫وراي ا تقا ت ولوکي مامه ها استفامه می شو د‪.‬‬
‫‪15‬‬
‫‪0‬‬
‫)‪SOURCE INDEX (SI‬‬
‫‪15‬‬
‫‪0‬‬
‫)‪DESTINATION INDEX (DI‬‬
‫‪24‬‬
‫•‬
‫ثبتات اشتاره گتر مستتوراااما )‪ ،IP (Instruction Pointer‬امرس مستتوراااملي کته وايتد‬
‫اجرا شوم را گهداري مي کند‪.‬‬
‫•‬
‫این ثبات ‪ 16‬ويتي اس و وا اجراي هر مستور وسط واحد کنترل‪ ،‬يک واحد افزايش مي ياود‪.‬‬
‫•‬
‫وانوان ممال مستورات پرش وا غییر ایتن ثبتات واعتی متی شتو د کته ور امته از هتر محتا میگتری قاوتا اجترا‬
‫واشد‪.‬‬
‫‪25‬‬
15 14 13 12
11
10
9
8
R
OF
DF
IF
TF
R
R
R
7
6
SF ZF
5
U
4
3
AF U
2
1
0
PF
U
CF
R = Reserved
ZF = Zero Flag
OF = Overflow
U = Undefined
DF = Direction Flag
AF = Auxiliary Flag
IF = Interrupt Flag
PF = Parity Flag
TF = Trap Flag
CF = Carry Flag
SF = Sign Flag
26
‫• ‪( :Carry Flag‬ویت قلتتی) مامتتو ‪ ،‬از محاستتبات تتاثیر متتی پتتذیرم‪ .‬وترای اعمتتال جمتتع و فریتتق از ایتتن ویت ‪،‬‬
‫ورای رقتم قلتی استتفامه متی گترمم‪ .‬مر اعمتاای ما نتد ‪ Shift‬مامن ویت هتا‪ ،‬ا ترین ویت ‪ Shift‬مامه شتده‪ ،‬مر‬
‫این وی قرار می گیرم‪ .‬همچنین اگر مر اعمال ور روی اعدام وی عام سرریز رخ مهد این وی یک می شوم‪.‬‬
‫• ‪ :Parity Flag‬از ایتتن ویت ‪ ،‬مامتتو وترای اشتتکال زمایت تتی مر ا تقتتال اعاعتتات استتتفامه متتی شتتوم‪ .‬وتته عبتارت‬
‫میگر‪ ،‬ورای کنترل صح اعاعات وه کار می روم‪ .‬این وی وراساس ادام وی های یک (‪ ،)1‬مر ‪ 8‬وی پتایینی‬
‫رجیسترها‪ ،‬یک یا صفر واهد شد‪ .‬وه عنوان ممال اگر سیستم ما ‪ Parity‬فرم واشد‪ ،‬مر ایتن صتورت اگتر اتدام‬
‫وی های یتک مر ‪ 8‬ویت فترم واشتد‪ ،‬ا گتاه ویت ‪ Parity‬صتفر متی شتوم و اگتر اتدام ویت هتای یتک زو واشتد‪،‬‬
‫این وی یک واهد شد‪.‬‬
‫• ‪ :Auxiliary Flag‬از این وی ‪ ،‬وته عنتوان ویت جا شتین ویت ‪ Carry‬استتفامه متی شتوم‪ .‬اگتر ایتن ویت‬
‫یک واشد از وی ‪ 3‬وه وی ‪ 4‬رقم قلی ماشته ایم‪.‬‬
‫‪27‬‬
‫• ‪ :Zero Flag‬مر صتور ی کته تیجته عمتتا محاستبا ی ‪ 0‬شتده واشتد‪ ،‬مقتتدار ایتن ویت ‪ 1 ،‬متی شتتوم‪ .‬مر‬
‫غیر این صورت این وی ‪ 0‬واهد شد‪.‬‬
‫• ‪ :Sign Flag‬عام تیجه محاسبه شده مر مستور اجرا شده قبلی را شان می مهد‪ .‬اگر ا ترین ویت‬
‫‪ 0‬واشد عام ممب و اگر این وی ‪ 1‬واش عام تیجه منفی اس ‪.‬‬
‫• ‪ :Trap Flag‬ورای اجترای مستتور وته مستتور ور امته‪ ،‬از ایتن ویت استتفامه متی شتوم‪ .‬اگتر ایتن ویت ‪1 ،‬‬
‫واشد‪ ،‬ور امه وه صورت مستور وه مستور اجرا می گرمم و می وان ور امه را ‪ Trace‬کرم‪.‬‬
‫• ‪ :Interrupt Flag‬وتا استتفامه از ایتن ویت ‪ ،‬متی توا یم کتاری کنتیم کته وقفته هتا‪ ،‬فاتال یتا غیتر فاتال‬
‫گرم د‪.‬‬
‫وقفه ها فاال‬
‫‪28‬‬
‫‪IF = 1‬‬
‫وقفه ها غیر فاال‬
‫‪IF = 0‬‬
‫• ‪ :Direction Flag‬از ایتن ویت ‪ ،‬وترای متایش جهت عملیتات‪ ،‬وتر روی رشتته هتا استتفامه متی شتوم‪.‬‬
‫مما جه عملیات مقایسه یا ا تقال رشته را مشخص می ماید‪.‬‬
‫‪Left to Right‬‬
‫‪DF=0‬‬
‫‪Right to Left‬‬
‫‪DF=1‬‬
‫• ‪ :Overflow‬مر صتتور ی کتته عمتتا محاستتبا ی وتتر روی اعتتدام عامتتتدار مارای ستترریز واشتتد‪ ،‬مقتتدار ایتتن‬
‫وی ‪ 1 ،‬می شوم و مر غیر این صورت ‪ 0‬واهد شد‪.‬‬
‫‪29‬‬
‫‪ ‬حاصا فریقهای زیر را ودس اورمه و مقامیر پرچمهای ‪ CF, AF, OF, SF, ZF, PF‬را مشخص مایید‬
‫‪1. 10100100 - 10101011‬‬
‫‪2. 11111111 - 10000000‬‬
‫‪3. 10000000 - 100000‬‬
‫‪4. 10 - 1010101‬‬
‫‪5. 11101 - 10‬‬
‫‪ ‬راهنمایتتی‪ :‬اوتدا همه اعدام را مر ‪ 8‬وی مایش مهید‪.‬‬
‫‪30‬‬
31