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 |
; ทำงานไม่ได้เพราะย้ายจากรีจีสเตอร์ไปเซกเมนต์ |
|
|
|
|
|
|
|
|
|