register

15
ไไไไไไไไไไไไไไไไไไไไไไไไไไไไไไไ ไไไไไ (2104-2311) ไไไไไไไไไไ (Register) รรรรรรรรรร : o รรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรร o รรรรรรรรรรรรรรรรรรรร 16 รรร รรรรรรรรรรรรรร รรรร 16 รรรรรรร o รรรรรรรรรรรรรรรรรร o รรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรร รรร o รรรรรรรรรร 16 รรร รรรรรรรรรรร 2 รรร รรรร AX o รรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรร

Upload: -

Post on 25-Dec-2014

451 views

Category:

Education


0 download

DESCRIPTION

รีจิสเตอร์,Register

TRANSCRIPT

Page 1: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

ร�จิ�สเตอร� (Register)

• รี�จิ�สเตอรี :o ลอจิ�กเซอรีก�ตที่��อยู่��ในไมโครีโพรีเซสเซอรีo ไมโครีโพรีเซสเซอรีขนาด 16 บิ�ที่ จิะม�รี�จิ�สเตอรีขนาด 16 บิ�ที่ด�วยู่o เก บิข�อม�ลชั่"�วครีาวo ไมโครีโพรีเซสเซอรีสามารีถค$านวณบินต"วรี�จิ�สเตอรีได�o รี�จิ�สเตอรี 16 บิ�ที่ ใชั่�ต"วอ"กษรี 2 ต"ว เชั่�น AXo ใชั่�ชั่�'ต$าแหน�งของแอดเดรีสหน�วยู่ความจิ$า

Page 2: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

ชนิ�ดของร�จิ�สเตอร�

• General-purpose Register • Segment Register• Offset Register• Flag Register

Page 3: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

General-pupose Register

• ใชั่�ในงานที่"�ว ๆ ไป เชั่�น เก บิผลของการีกรีะที่$าที่างคณ�ตศาสตรี• ได�แก� รี�จิ�สเตอรีต�อไปน�'

o AX (Accumulator Register) : ใชั่�เก บิผลการีค$านวณ เชั่�น การีค�ณและการีหารี

o BX (Base Register) : ใชั่�ชั่�'จิ/ดเรี��มต�นของข�อม�ลในหน�วยู่ความจิ$าo CX (Counter Register) : ใชั่�ในการีน"บิจิ$านวนครี"'งในการีที่$างานo DX (Data Register) : ใชั่�ชั่�'ต$าแหน�งที่��อยู่��ของข�อม�ล

• ขนาด 8 บิ�ที่ : AH, AL• ขนาด 16 บิ�ที่ : AX• ขนาด 32 บิ�ที่ : EAX

AH AL

AX

15 7 0 31 15 0

AH AL

EAX

Page 4: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

ต�วอย่�างการเก�บข!อม"ล

• AX = C33F • AH = C3 และ AL = 3F

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

151413121110 9 8 7 6 5 4 3 2 1 0

C3 3F

Page 5: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

Segment Register

• ใชั่�ชั่�'เซกเมนตต�าง ๆ ในขณะรี"นโปรีแกรีม• ไมโครีโพรีเซสเซอรี 16 บิ�ที่ ได�แก�

o CS : ชั่�'ไปยู่"ง Code Segment เซกเมนที่ที่��เก บิโค�ดของโปรีแกรีม

o DS : ชั่�'ไปยู่"ง Data Segment เซกเมนที่ที่��เก บิข�อม�ลของโปรีแกรีม

o ES : ชั่�'ไปยู่"ง Extra Segment เซกเมนที่ที่��ม"กใชั่�เก บิข�อม�ล

o SS : ชั่�'ไปยู่"ง Stack Segment เซกเมนที่ที่��เก บิข�อม�ลของโปรีแกรีมในล"กษณะ

สแตก (stack)• ไมโครีโพรีเซสเซอรี 32 บิ�ที่ ม�เพ��ม : FS และ GS

Page 6: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

Offset Register

• ใชั่�ชั่�'แอดเดรีสหน�วยู่ความจิ$าที่��เป0นค�าออฟเซที่ในเซกเมนที่• รี�จิ�สเตอรี ขนาด 16 บิ�ที่ กล/�มน�'ได�แก�

o SP : Stack Pointer ค��ก"บิเซกเมนที่ของ SSo BP : Base Pointer ค��ก"บิเซกเมนที่ของ SSo SI : Source Index ค��ก"บิเซกเมนที่ของ DSo DI : Destination Index ค��ก"บิเซกเมนที่ของ ESo IP : Instruction Pointer ค��ก"บิเซกเมนที่ของ CS

• 32 บิ�ที่ จิะเพ��ม ต"ว E เชั่�น ESP• รี�จิ�สเตอรี IP เป0นรี�จิ�สเตอรีที่��ชั่�'แอดเดรีสหน�วยู่ความจิ$าที่��ม�

ค$าส"�ง (ในโปรีแกรีม) ที่��จิะถ�กที่$างานถ"ดไป และจิะเปล��ยู่นเป0น แอดเดรีสของค$าส"�งถ"ดไป เม2�อเรี��มรี"นโปรีแกรีมค�าในรี�จิ�ส

เตอรี IP ชั่�'ที่��อยู่��ของค$าส"�งแรีกของโปรีแกรีม

Page 7: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

Flag Register

• เป0นรี�จิ�สเตอรีในไมโครีโพรีเซสเซอรี เชั่�น 16 บิ�ที่ แฟลกก จิะม�ขนาด 16 บิ�ที่

• ในแฟลกรี�จิ�สเตอรีปรีะกอบิด�วยู่ แฟลกเน2'อที่�� 1 บิ�ที่ซ3�งค�าในแฟลกม�ผลจิากการีที่$าค$าส"�งค$านวณและ

ตรีรีกะ การีต"ดส�นใจิในโปรีแกรีมข3'นอยู่��ก"บิค�าของแฟลกเหล�าน�'

• ค�าของแฟลกม� 2 ค�าค2อo เซต (set) หรี2อเป0นจิรี�ง เม2�อม�ค�าเป0น 1o เคล�ยู่รี (cleared) หรี2อเป0นเที่ จิ เม2�อม�ค�าเป0น 0

Page 8: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

การแบ�งแฟลก

• System and Control Flago ใชั่�ควบิค/มการีที่$างานของรีะบิบิo ค�าในแฟลกสามารีถถ�กที่$าให�เป0น set และ cleared ด�วยู่ค$าส"�งในโปรีแกรีม

o ค�าในแฟลกจิะม�ผลต�อการีที่$างานของ CPU• Status Flag

o แฟลกน�'จิะม�การีเปล��ยู่นแปลงค�าอยู่�างอ"ตโนม"ต�o ค�าที่��เปล��ยู่นจิะเปล��ยู่นหล"งจิากการีที่$างานของการี

ค$านวณและตรีรีกะของ CPU

Page 9: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

ช$%อและค�าของแฟลก• ชั่2�อของแฟลกใชั่�อ"กษรี 2 ต"ว แต�ในด�บิ"กจิะแสดงเฉพาะค�าของแฟลก

NCCYCF=Carry (yes/no)

POPEPF=Parity (even/odd)

NAACAF=Auxiliary carry (yes/no)

NZZRZF=Zero (yes/no)

PLNGSF=Sign (negative/positive)

DIEIIF=Interrupt (enable/disable)

UPDNDF=Direction (decrement/increment)

NVOVOF=Overflow (yes/no)

clearedsetFlag name

Page 10: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

System and Control Flag

• Trap Flag : o ให� CPU ที่$างานที่�ละค$าส"�ง (single stepping mode)

เม2�อแฟลกน�' เซ ที่o ใชั่�เม2�อต�องการีต�ดตามการีที่$างานของโปรีแกรีมเป0นครี"'งละค$าส"�ง

o ถ�า เคล�ยู่รี จิะเข�าส��การีที่$างานปกต�• Interrupt Flag

o บิอกให�ที่รีาบิว�าในขณะรี"นโปรีแกรีมจิะยู่อมให�อ�นเตอรีรี"พมาจิากภายู่นอกหรี2อไม�

o ถ�าค�าเป0นเซต จิะยู่อมให�ม�การีอ�นเตอรีรี"พจิากภายู่นอก ได� ถ�าเคล�ยู่รีไม�ได�

o ปกต�แฟลกจิะม�ค�าเป0นเคล�ยู่รี

Page 11: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

• Direction Flag :o สามารีถก$าหนดการีเปล��ยู่นแปลงสถานะได�o เคล2�อนยู่�ายู่สตรี�งว�า ไปในที่าง Forward หรี2อ

backwardo เคล�ยู่รี : Forwardo เซต : Backward

• Input/Output Privilege Level :o บิอกอ$านาจิที่��จิะกรีะที่$างานในรีะด"บิรีะบิบิ (System

Level)o เชั่�น การีเซตค�าของอ�นเตอรีรี"พแฟลก

System and Control Flag

Page 12: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

• Nested Task Flag :o เป0นแฟลกที่��บิอก CPU ว�างานน�'จิะสามารีถถ�กเรี�ยู่กจิากงานอ2�นหรี2อไม�

o ค�าของแฟลกจิะถ�กเซต โดยู่รีะบิบิและไม�สามารีถเปล��ยู่นด�วยู่โปรีแกรีม

• Resume Flag :o ใชั่�ใน one-line debugger ที่��ให�เรี��มที่$างานต�อไปหล"งจิากหยู่/ดการีที่$างาน

• Virtual 8086 mode Flag :o ถ�าเซต ในขณะอยู่��ในโหมด protected ก จิะกลายู่เป0นการี

ที่$างานในโหมด virtualo ถ�กเซต ด�วยู่ค$าส"�ง IRET และเม2�อม� Privilege level

เป0น 0

System and Control Flag

Page 13: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

Arithmetic and Logic Result Flag

• CF-carry Flag (NC=0,CY=1) :o แฟลกน�'จิะถ�กเซตเป0น 1 (CY) เม2�อผลบิวกต"วเลขม�การี

ที่ดค�า หรี2อเม2�อลบิต"วเลขแล�วที่$าให�ต�องม�การียู่2มเลขหล"กซ�ายู่ส/ด

• ZF-zero Flag (NZ=0,ZR=1) :o โปรีแกรีมจิะอ�างถ3งแฟลกน�' เพ2�อตรีวจิด�ว�าค$าส"�งส/ดที่�ายู่เสรี จิสมบิ�รีณหรี2อไม�

• SF-sign Flag (PL=0,NG=1) :o จิะแสดงค�าในบิ�ที่ส�งของผลล"พธ์ จิากการีที่$าที่างคณ�ตศาสตรี

o จิะเป0น NG เม2�อผลการีค$านวณเป0นลบิo จิะเป0น PL เม2�อผลการีค$านวณเป0นบิวก

Page 14: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

• OF-Overflow Flag (NV=0,OV=1) :o จิะบิอกให�รี� �ว�า ผลของการีกรีะที่$าการี โดยู่ที่��ค�าที่��ได�ใหญ่�กว�าที่��จิะเก บิได�ในโอเปอรีแรีนดปลายู่ที่าง

• PF-parity Flag (PO=0,PE=1) :o เป0นการีแที่นค�าของการีรีวมจิ$านวนเลข ของค�า 1 ในบิ�ที่o ถ�าม�จิ$านวนเลข 1 เป0นค�� : PE หรี2อ 1o ถ�าเป0นค��หรี2อ 0 : PO

• AF-Auxiliary carry Flag (NA=0,AC=1) :o บิอกสถานะ ของการีที่ดในการีค$านวณก"บิต"วเลขชั่น�ด BCD o ถ�าม�การีที่ด ค�าของแฟลกจิะเป0นเซต

Arithmetic and Logic Result Flag

Page 15: Register

ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)

ต�วอย่�าง

• Overflow Flag = NV (cleared) ข�อม�ลไม� ใหญ่�เก�น สามารีถเก บิได�

• Direction Flag = UP (cleared) รี�จิ�สเตอรีที่�� ชั่�'ก$าหนดแอดเดรีส เชั่�น SI จิะเพ��มค�าข3'น เป0น

ล"กษณะ Forward