Page 21 - สถาปัตยกรรมคอมพิวเตอร์และระบบปฏิบัติการ
P. 21

โครงสร้างและการทำ�งานของหน่วยความจำ� 3-11

            - 	 รีจิสเตอร์ CX จะประกอบด้วย CH (8 บิต) และ CL (8 บิต) ทำ�หน้าที่เป็นเคานต์รีจิสเตอร์ (count
register หรือ accumulator and counter) และเป็นที่พักข้อมูลที่ใช้ในการคำ�นวณ หรือเป็นรีจิสเตอร์ที่ใช้จัดการ
เกี่ยวกับสตริง (string) และการวนรอบ (loop) โดย CL ใช้เป็นตัวแปรสำ�หรับการเลื่อนบิตหรือหมุนบิตเป็นวงรอบ

            - 	 รีจิสเตอร์ DX จะประกอบด้วย DH (8 บิต) และ DL (8 บิต) ทำ�หน้าที่เป็นรีจิสเตอร์ข้อมูล (data
register หรือ accumulator and I/O address) และเป็นที่พักข้อมูลที่ใช้ในการคำ�นวณ หรือเป็นรีจิสเตอร์ที่ใช้ใน
คำ�สั่งคูณหารเป็นเวิร์ดหรือใช้ในรูปแบบอ้างอิงแอดเดรสหน่วยนำ�เข้าหรือแสดงผลแบบอ้อม

       2. 	 กลุม่ สอง เป็นรีจิสเตอร์กลุ่มตัวชี้และอินเด็กซ์ ดังแสดงในภาพ ข)
            - 	 รีจิสเตอร์ SP เป็นสแต็กพอยน์เตอร์ (stack pointer) ที่ใช้กับคำ�สั่งสแต็ก เป็นตัวชี้ตำ�แหน่ง

แอดเดรสที่เก็บข้อมูลในสแต็ก
            - 	 รีจิสเตอร์ BP เป็นเบสพอยน์เตอร์ (base pointer) ที่ใช้กับคำ�สั่งสแต็ก เป็นตัวชี้ตำ�แหน่งแอดเดรส

ที่เก็บข้อมูลในสแต็กเช่นเดียวกับ รีจิสเตอร์ SP แต่ รีจิสเตอร์ BP จะใช้สำ�หรับเป็นตัวบวกเพื่อชี้ค่าสแต็กอีกครั้งหนึ่ง
            - 	 รีจิสเตอร์ SI และ DI เป็นซอร์สอินเด็กซ์ (source index) และเดสทิเนชันอินเด็กซ์ (destination

index) เป็นรีจิสเตอร์ที่ทำ�งานติดต่อกับหน่วยความจำ�หลักได้ ซึ่งจะทำ�งานได้ดีในกลุ่มคำ�สั่งสตริง การทำ�งานเป็น
บล็อก และการเชื่อมโยงข้อมูลในโครงสร้างอาเรย์ (array)

            - 	 รีจิสเตอร์ IP เป็นอินสตักชันพอยน์เตอร์ (instruction pointer) หรือรีจิสเตอร์ตัวชี้คำ�สั่ง ทำ�หน้าที่
เป็นตัวชี้ตำ�แหน่งแอดเดรสของคำ�สั่งถัดไปที่จะถูกทำ�งาน

       3. 	 กลมุ่ สาม เป็นรีจิสเตอร์กำ�หนดเซกเมนต์ ดังแสดงในภาพ ค)
       รีจิสเตอร์ 4 ตัวสุดท้าย จะเป็นเซกเมนต์รีจิสเตอร์ซึ่งซีพียู 8086 จะนำ�มาใช้อ้างอิงแอดเดรสของหน่วยความ
จำ�ด้วยหลักการอ้างอิงแบบกลุ่มบล็อกแอดเดรส ในรูปแบบ เซกเมนต์ (segment) ตามภาพที่ 3.3

            - 	 รีจิสเตอร์ CS เป็นโค้ดเซกเมนต์ (code segment) จะบรรจุค่าแอดเดรสเริ่มต้นของโปรแกรม
            - 	 รีจิสเตอร์ DS เป็นดาตาเซกเมนต์ (data segment) จะบรรจุค่าแอดเดรสเริ่มต้นของข้อมูล
            - 	 รีจิสเตอร์ SS เป็นสแต็กเซกเมนต์ (stack segment) จะบรรจุค่าแอดเดรสเริ่มต้นของสแต็ก
            - 	 รีจิสเตอร์ ES เปน็ เอ็กซ์ตราเซกเมนต์ (extra segment) จะบรรจคุ ่าแอดเดรสเริ่มต้นของข้อมลู รวม

CS               FFFFF
DS
SS       โปรแกรม
ES
          ข้อมูล
   15 0   สแต็ก

         เอ็กซ์ตรา
                  00000

ภาพที่ 3.4 แสดงเซกเมนตร์ จี ิสเตอรท์ ้ัง 4 ทชี่ ไี้ ปยังต�ำ แหน่งแอดเดรสเร่มิ ต้นของเซกเมนต์นัน้
   16   17   18   19   20   21   22   23   24   25   26