วันอังคาร, สิงหาคม 01, 2549

ทฤษฏีเบื้องต้น

การกำหนดตำแหน่งที่อยู่ของข้อมูล (Addressing Modes) เป็นวิธีการที่ใช้ในการอ้างอิงถึงข้อมูลเพื่อใช้ในการประมวลผล สำหรับการเขยนโปรแกรมภาษาแอสเซมบลี ซึ่งวิธีการในการกำหนดตำแหน่งที่อยู่ของข้อมูลนั้นสามารถที่จะกำหนดได้ทั้งข้อมูลที่อยู่ภายในหน่วยประมวลผลกลาง และข้อมูลที่อยู่ในหน่วยความจำหลัก โดยการกำหนดตำแหน่งที่อยู่ของข้อมูลสำหรับสถาปัตยกรรม Intel x86 นั้นจะมีวิธีการอยู่ 7 วิธี ซึ่งได้แก่
1.Immediate Addressing Mode วิธีนี้จะเป็นการกำหนดค่าคงที่ (Constant) ที่ต้องการนำไปใช้ ให้กับรีจิสเตอรืดดยไม่ต้องนำไปเก็บในหน่วยความจำก่อน เช่น MOV AX,0065H เป็นต้น
2.Register Addressing Mode วิธีการนี้เป็นวิธีที่ใช้ในการอ้างอิงถึงข้อมูลที่ถูกเก็บอยู่ในรีจิสเตอร์ไปใช้งาน โดยที่สามรถใช้งานรีจิสเตอร์ได้ทุกตัว ยกเว้นรีจิสเตอร์ IP เช่น MOV AX,BX เป็นต้น
3.Direct Addressing Mode เป็นวิธีการกำหนดค่าออฟเซตขนาด 16 บิตลงไปในคำสั่ง เพื่อใช้ในการอ้างอิงถึงข้อมูลที่อยู่ในหน่วยความจำหลัก เช่น MOV AX,[0054H]
4.Register Indirect Addressing Mode เป็นวิธีการที่ใช้ในการอ้างอิงถึงตำแหน่งที่อยู่ในหน่วยความจำหลักโดยใช้ค่าภายในรีจสเตอร์เป็นตัวกำหนดตำแหน่งโดยรีจิสเตอร์ที่ใช้ในการเก็บค่าหมายเลขตำแหน่งออฟเซตนั้นจะใช้รีจิสเตอร์ BX,SI และ DI (ในการคำนวณหาตำแหน่งที่อยู่จริง(Physical Address) นั้นจะใช้คู่กับรีจิสเตร์DS หรือ ES )เช่น MOV AX,[BX]เป็นต้น
5.Based Relative Addressing Mode เป็นวิธีการที่ใช้ในการอ้างอิงตำแหน่งที่อยู่ของข้อมูลโดยผ่านทางรีจิสเตอร์ฐานและค่าอ้างอิง (Displacement) โดยรีจิสเตอร์ที่ถูกนำมาใช้งานนั้นจะเป็นรีจิสเตอร์ BX และ BP มีหน้าที่ในการเก็บค่าออฟเซต ซึ่งเมื่อถูกนำไปใช้งานนั้นจะนำค่าที่เก็บอยู่ในรีจิสเตอร์ฐานไปรวมเข้ากับค่าอ้างอ้ง เช่น MOV AX,[BX+05] เป็นต้น
6.Index Addressing Mode เป็นวิธีการที่ใช้ในการอ้างอิงตำแหน่งของข้อมูลโดยใช้ค่าที่เก็บอยู่ในอินเด็กซืรีจิสเตอร์ (Index Register) รวมกับค่าอ้างอิง (Displacement) เช่น MOV AX,[DI+25H]
7.Based Indexed Mode

0 ความคิดเห็น: