บทที่3
บทที่3.1
บทที่3.2
บทที่3.3
บทที่3.4
แบบทดสอบแอสเซมบี้ล
กระดานสนทนาห้องสนทนา ประวัติ หน้าหลัก  
บทที่ 3 การอ้างแอดเดรสของไมโครโปรเซสเซอร์
CPU สามารถเข้าถึงหรืออ้างตำแหน่งของข้อมูลได้หลายทาง ประเภทของการอ้างตำแหน่งที่เก็บข้อมูล เรียกว่า “Addressing Mode” โดยทั่วไปการอ้างแอดเดรสมีทั้งแบบติดต่อกับหน่วยความจำ และไม่ติดต่อกับหน่วยความจำ จากตัวอย่างคำสั่ง MOV
MOV Destination , Source
เป็นการนำข้อมูลจากตำแหน่งต้นทางไปยังปลายทาง โดย Destination เป็นตัวกระทำ1(Operand1) และ Source เป็นตัวกระทำ2 (Operand2)
การอ้างตำแหน่งข้อมูลที่นิยมกันมี 7 โหมด
1. register
2. immediate
3. direct
4. register indirect
5. based register
6. indexed relative
7. based indexed relative
A. Register Addressing Mode
เป็นการอ้างตำแหน่งโดยการใช้รีจีสเตอร์ชี้ตำแหน่งของข้อมูลที่ทำการติดต่อหรืออ้างข้อมูลระหว่าง รีจีสเตอร์โดยตรง ทำได้กับ รีจีสเตอร์ทั้ง 8 บิต และ 16 บิต หากใช้กับ 8 บิต ต้องทำกับรีจีสเตอร์ 8 บิต (AH,AL,BH,BL,CH,CL,DH,DL) หากใช้กับ 16 บิตต้องกระทำกับ รีจีสเตอร์ 16 บิต(AX,BX,CX ,DX,SI,DI,SP,BP) รีจีสเตอร์ทั้งสองต้องมีขนาดเท่ากัน และค่าของรีจีสเตอร์ต้นทางจะไม่เปลี่ยน
คำสั่ง
ตัวกระทำ (Operand)
คำอธิบาย
MOV BX, DX ;นำค่าจาก DX มาเก็บใน BX
MOV ES, AX ; นำค่าจาก AX มาเก็บใน ES
ADD AL, BH ;บวกค่าใน BH กับค่าใน AL
MOV AL, BL ;นำค่าจาก BL มาเก็บใน AL แบบ 8 บิต
MOV CH, CL ;นำค่าจาก CL มาเก็บใน CH แบบ 8 บิต
MOV AX, CX ;นำค่าจาก CX มาเก็บใน AX แบบ 16 บิต
MOV SP, BP ;นำค่าจาก BP มาเก็บใน SP แบบ 16 บิต
MOV DS, AX ;นำค่าจาก AX มาเก็บใน DS แบบ 16 บิต
MOV SI, DI ;นำค่าจาก DI มาเก็บใน SI แบบ 16 บิต
MOV BX, ES ;นำค่าจาก ES มาเก็บใน BX แบบ 16 บิต
MOV ECX, EBX ;นำค่าจาก EBX มาเก็บใน ECX แบบ 32 บิต
MOV ES, DS ;ทำงานไม่ได้เพราะย้ายจาก เซกเมนต์ ไปเซกเมนต์
MOV BL, DX ;ทำงานไม่ได้เพราะขนาดรีจีสเตอร์ไม่เท่ากัน
MOV CS, AX ; ทำงานไม่ได้เพราะย้ายจากรีจีสเตอร์ไปเซกเมนต์