ระบบฝังตัว - การลงทะเบียน SFR
การลงทะเบียนฟังก์ชันพิเศษ (หรือการลงทะเบียนเพื่อวัตถุประสงค์พิเศษหรือเพียงแค่ลงทะเบียนพิเศษ) คือการลงทะเบียนภายในไมโครโปรเซสเซอร์ที่ควบคุมหรือตรวจสอบการทำงานต่างๆของไมโครโปรเซสเซอร์ เนื่องจากรีจิสเตอร์พิเศษเชื่อมโยงอย่างใกล้ชิดกับฟังก์ชันหรือสถานะพิเศษบางอย่างของโปรเซสเซอร์จึงอาจไม่สามารถเขียนได้โดยตรงตามคำสั่งปกติ (เช่นเพิ่มย้าย ฯลฯ ) แต่การลงทะเบียนพิเศษบางอย่างในสถาปัตยกรรมโปรเซสเซอร์บางตัวต้องการคำสั่งพิเศษในการแก้ไข
ใน 8051 การลงทะเบียน A, B, DPTR และ PSW เป็นส่วนหนึ่งของกลุ่มการลงทะเบียนที่เรียกกันทั่วไปว่า SFR (การลงทะเบียนฟังก์ชันพิเศษ) SFR สามารถเข้าถึงได้ด้วยชื่อหรือตามที่อยู่
ตารางต่อไปนี้แสดงรายการ SFR และที่อยู่
ที่อยู่ไบต์ | ที่อยู่บิต | ||||||||
---|---|---|---|---|---|---|---|---|---|
FF | |||||||||
F0 | F7 | F6 | F5 | F4 | F3 | F2 | F1 | F0 | ข |
E0 | E7 | E6 | E5 | E4 | E3 | E2 | E1 | E0 | ACC |
D0 | D7 | D6 | D5 | D4 | D3 | D2 | - | D0 | ป. ป. ส |
B8 | - | - | - | พ.ศ. | BB | ศ ธ | B9 | B8 | IP |
B0 | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 | P3 |
A2 | AF | - | - | AC | AB | AA | A9 | A8 | IE |
A0 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | P2 |
99 | บิตแอดเดรสไม่ได้ | SBUF | |||||||
98 | ชั้น 9 | 9E | 9 ด | 9 ค | 9B | 9A | 99 | 98 | SCON |
90 | 97 | 96 | 95 | 94 | 93 | 92 | 91 | 90 | P1 |
8D | บิตแอดเดรสไม่ได้ | TH1 | |||||||
8C | บิตแอดเดรสไม่ได้ | TH0 | |||||||
8B | บิตแอดเดรสไม่ได้ | TL1 | |||||||
8A | บิตแอดเดรสไม่ได้ | TL0 | |||||||
89 | บิตแอดเดรสไม่ได้ | TMOD | |||||||
88 | ชั้น 8 | 8E | 8D | 8C | 8B | 8A | 89 | 88 | TCON |
87 | บิตแอดเดรสไม่ได้ | PCON | |||||||
83 | บิตแอดเดรสไม่ได้ | ปส | |||||||
82 | บิตแอดเดรสไม่ได้ | DPL | |||||||
81 | บิตแอดเดรสไม่ได้ | SP | |||||||
80 | 87 | 87 | 85 | 84 | 83 | 82 | 81 | 80 | P0 |
พิจารณาสองประเด็นต่อไปนี้เกี่ยวกับที่อยู่ SFR
การลงทะเบียนฟังก์ชันพิเศษสามารถมีที่อยู่ระหว่าง 80H ถึง FFH ที่อยู่เหล่านี้สูงกว่า 80H เนื่องจากที่อยู่ตั้งแต่ 00 ถึง 7FH เป็นที่อยู่ของหน่วยความจำ RAM ภายใน 8051
SFR ไม่ได้ใช้พื้นที่แอดเดรส 80 ถึง FF ทั้งหมด สถานที่ที่ไม่ได้ใช้ตั้งแต่ 80H ถึง FFH สงวนไว้และโปรแกรมเมอร์ 8051 จะต้องไม่ใช้
CY | PSW.7 | ถือธง |
AC | PSW 6 | ธงพกพาเสริม |
F0 | PSW 5 | แฟล็ก 0 พร้อมใช้งานสำหรับผู้ใช้สำหรับวัตถุประสงค์ทั่วไป |
RS1 | PSW.4 | ลงทะเบียนตัวเลือกธนาคารบิต 1 |
RS0 | PSW.3 | ลงทะเบียนตัวเลือกธนาคารบิต 0 |
OV | PSW 2 | ค่าสถานะล้น |
- | PSW.1 | FLAG ที่ผู้ใช้สามารถกำหนดได้ |
ป | PSW.0 | ธงปาริตี ตั้งค่า / ล้างโดยฮาร์ดแวร์ระหว่างรอบคำสั่งเพื่อระบุจำนวนคู่ / คี่ของ 1 บิตในตัวสะสม |
ในตัวอย่างต่อไปนี้ชื่อผู้ลงทะเบียน SFR จะถูกแทนที่ด้วยที่อยู่
CY | AC | F0 | RS1 | RS0 | OV | - | ป |
---|
เราสามารถเลือกบิต Register Bank ที่เกี่ยวข้องโดยใช้บิต RS0 และ RS1
RS1 | RS2 | ลงทะเบียนธนาคาร | ที่อยู่ |
---|---|---|---|
0 | 0 | 0 | 00H-07H |
0 | 1 | 1 | 08H-0FH |
1 | 0 | 2 | 10H-17H |
1 | 1 | 3 | 18H-1FH |
Program Status Word (PSW) มีบิตสถานะเพื่อแสดงสถานะปัจจุบันของ CPU ตัวแปร 8051 มีการลงทะเบียนฟังก์ชันพิเศษหนึ่งรายการคือ PSW พร้อมข้อมูลสถานะนี้ 8251 มีแฟล็กสถานะเพิ่มเติมสองสถานะคือ Z และ N ซึ่งมีอยู่ในการลงทะเบียนฟังก์ชันพิเศษที่สองที่เรียกว่า PSW1