register
DESCRIPTION
รีจิสเตอร์,RegisterTRANSCRIPT
ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)
ร�จิ�สเตอร� (Register)
• รี�จิ�สเตอรี :o ลอจิ�กเซอรีก�ตที่��อยู่��ในไมโครีโพรีเซสเซอรีo ไมโครีโพรีเซสเซอรีขนาด 16 บิ�ที่ จิะม�รี�จิ�สเตอรีขนาด 16 บิ�ที่ด�วยู่o เก บิข�อม�ลชั่"�วครีาวo ไมโครีโพรีเซสเซอรีสามารีถค$านวณบินต"วรี�จิ�สเตอรีได�o รี�จิ�สเตอรี 16 บิ�ที่ ใชั่�ต"วอ"กษรี 2 ต"ว เชั่�น AXo ใชั่�ชั่�'ต$าแหน�งของแอดเดรีสหน�วยู่ความจิ$า
ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)
ชนิ�ดของร�จิ�สเตอร�
• General-purpose Register • Segment Register• Offset Register• Flag 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
ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(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
ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(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
ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(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 ชั่�'ที่��อยู่��ของค$าส"�งแรีกของโปรีแกรีม
ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(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
ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)
การแบ�งแฟลก
• System and Control Flago ใชั่�ควบิค/มการีที่$างานของรีะบิบิo ค�าในแฟลกสามารีถถ�กที่$าให�เป0น set และ cleared ด�วยู่ค$าส"�งในโปรีแกรีม
o ค�าในแฟลกจิะม�ผลต�อการีที่$างานของ CPU• Status Flag
o แฟลกน�'จิะม�การีเปล��ยู่นแปลงค�าอยู่�างอ"ตโนม"ต�o ค�าที่��เปล��ยู่นจิะเปล��ยู่นหล"งจิากการีที่$างานของการี
ค$านวณและตรีรีกะของ CPU
ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(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
ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(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นเคล�ยู่รี
ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)
• Direction Flag :o สามารีถก$าหนดการีเปล��ยู่นแปลงสถานะได�o เคล2�อนยู่�ายู่สตรี�งว�า ไปในที่าง Forward หรี2อ
backwardo เคล�ยู่รี : Forwardo เซต : Backward
• Input/Output Privilege Level :o บิอกอ$านาจิที่��จิะกรีะที่$างานในรีะด"บิรีะบิบิ (System
Level)o เชั่�น การีเซตค�าของอ�นเตอรีรี"พแฟลก
System and Control Flag
ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(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
ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(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นบิวก
ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(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
ไมโครโพรเซสเซอร�และไมโครคอมโทรลเลอร�(2104-2311)
ต�วอย่�าง
• Overflow Flag = NV (cleared) ข�อม�ลไม� ใหญ่�เก�น สามารีถเก บิได�
• Direction Flag = UP (cleared) รี�จิ�สเตอรีที่�� ชั่�'ก$าหนดแอดเดรีส เชั่�น SI จิะเพ��มค�าข3'น เป0น
ล"กษณะ Forward