Addressing Modes

28
1 Addressing Modes [email protected]

description

Addressing Modes. [email protected]. Addressing. การแอดเดรสซิ่ง เป็นวิธีการที่จะเข้าถึงข้อมูลในที่ต่าง ๆ ซึ่งการแอดเดรสที่ต่างกันจะทำให้การเขียนโปรแกรมมี ความยากง่ายต่างกันออกไป. - PowerPoint PPT Presentation

Transcript of Addressing Modes

Page 1: Addressing Modes

1

Addressing Modes

[email protected]

Page 2: Addressing Modes

2

Addressing

การแอดเดรสซิง่ เป็นวธิกีารท่ีจะเขา้ถึง ขอ้มูลในท่ีต่าง ๆ ซึ่งการแอดเดรสท่ีต่างกันจะ

ทำาใหก้ารเขยีนโปรแกรมมี ความยากง่ายต่างกันออกไป

Page 3: Addressing Modes

3

โครงสรา้งคำาสัง่ทัว่ไป

คำาสัง่ โอเปอรแ์ลนด์ โอเปอรแ์ลนด์ ปลายทาง ต้นทาง

Instruction Destination Source

MOV AX, BX ADD AND OR

Page 4: Addressing Modes

4

Addressing Modes

1.Immediate addressing2.Register addressing3.Direct addressing4.Register indirect addressing5.Base relative addressing6.Indexed addressing7.Base relative indexed addressing

Page 5: Addressing Modes

5

การแอดเดรสซิง่แบบไมติ่ดต่อหน่วยความจำา

Immediate addressing Register addressing

Page 6: Addressing Modes

6

การแอดเดรสซิง่แบบติดต่อหน่วยความจำา

Direct addressing Register indirect addressing Base relative addressing Indexed addressing Base relative indexed addressing

Page 7: Addressing Modes

7

1.Immediate Addressing Mode

เป็นการติดต่อขอ้มูลแบบค่าคงท่ีขนาด 8 บติ หรอื 16 บติ

ค่าคงท่ีจะตามหลังรหสัคำาสัง่ (Opcode) มกัใชใ้นการกำาหนดค่าใหกั้บรจีสิเตอร์ หรอืหน่วยความจำา

ไมส่ามารถใชเ้ป็นโอเปอรแ์รนด์ปลายทางได้

Page 8: Addressing Modes

8

Immediate...

ค่าของเลข 16 บติ• แบบคิดเครื่องหมายจะมค่ีาอยูร่ะหวา่ง -32768

(8000H) ถึง 32767 (7FFFH)• แบบไมคิ่ดเครื่องหมายจะมค่ีาอยูร่ะหวา่ง 0-

65535 (0FFFFH)

Page 9: Addressing Modes

9

Immediate...

ค่าของเลข 8 บติ• แบบคิดเครื่องหมายจะมค่ีาอยูร่ะหวา่ง -128

(80H) ถึง 127 (7FH)• แบบไมคิ่ดเครื่องหมายจะมค่ีาอยูร่ะหวา่ง 0-255

(0FFH)

Page 10: Addressing Modes

10

Immediate...

ตัวอยา่ง• MOV AL, 44• MOV AX, 44H• MOV DI, 0• MOV BX, ”AB”• MOV CL, 11100000B• MOV Byte ptr[1234H], 12

Page 11: Addressing Modes

11

2.Register Addressing Mode

เป็นการติดต่อขอ้มูลในรจีสิเตอร์ 8 บติ• AH, AL, BH, BL, CH, CL, DH, DL

หรอืรจีสิเตอร์ 16 บติ• AX, BX, CX, DX, SI, DI, SP, BP, CS, DS,

ES, SS

Page 12: Addressing Modes

12

Register...

สามารถใชร้จีสิเตอรเ์ป็นโอเปอรแ์รนด์ต้นทางหรอืปลายทางได้

ยกเวน้ในกรณีท่ีใช้ CS, DS, SS, ES เป็น โอเปอรแ์รนด์ปลายทาง ต้องกำาหนดให้ AX

เป็นโอเปอรแ์รนด์ต้นทางเท่านัน้

Page 13: Addressing Modes

13

Register...

ตัวอยา่ง• MOV AL, BL• MOV AX, BX• MOV SP, BP• MOV DS, AX• MOV BX, DS

Page 14: Addressing Modes

14

3.Direct Addressing Mode

เป็นการติดต่อขอ้มูลไปท่ีหน่วยความจำาโดย ระบุตำาแหน่งท่ีจะติดต่อลงไปในเครื่องหมาย

[ ] โดยตรง

Page 15: Addressing Modes

15

Direct...

ตัวอยา่ง• MOV AL, NUMB• MOV BX, SHOW• MOV NAME, BL• MOV BP, DATA1• MOV AX, [1234H]

Page 16: Addressing Modes

16

4.Register Indirect Addressing Mode

เป็นการติดต่อขอ้มูลในหน่วยความจำาโดยใช้การกำาหนดตำาแหน่งของขอ้มูลท่ีจะติดต่อ

ลงในรจีสิเตอร์ BX, BP, SI หรอื DI แทน การกำาหนดค่าตรง ๆ ในวงเล็บ

ใชใ้นการโปรแกรมเพื่อจดัการกับขอ้มูลเป็นกลุ่ม

Page 17: Addressing Modes

17

Register Indirect...

ตัวอยา่ง• MOV AX, [BX]• MOV BL, [BP]• MOV [SI], DX• MOV [DI], DL• MOV Byte ptr[BX], 5

Page 18: Addressing Modes

18

5.Base Relative Addressing Mode

เป็นการติดต่อขอ้มูลในหน่วยความจำาโดยใช้การกำาหนดตำาแหน่งของ• รจีสิเตอรเ์บส (BX,BP) บวกกับ• ค่าสมัพทัธ์ (Relative)

ค่าสมัพทัธเ์ป็นได้ทัง้ค่าบวกและลบ มขีนาดได้ทัง้ 8 บติ และ 16 บติ

Page 19: Addressing Modes

19

Base Relative...

BX,BP : ใชใ้นการเก็บจุดเริม่ต้นของตาราง ค่าสมัพทัธ์ (Relation) : ชีข้อ้มูลในตาราง

Page 20: Addressing Modes

20

Base Relative...

เมื่อใช้ BX เป็นตัวอ้างอิงจะเป็นการติดต่อ ไปยงั Data Segment ต้องใช้ DS หา

Physical address เมื่อใช้ BP เป็นตัวอ้างอิงจะเป็นการติดต่อ

ไปยงั Stack Segment ต้องใช้ SS หาPhysical address

Page 21: Addressing Modes

21

Base Relative...

MOV AX,[BX+2]• Physical add = DS x 10H + BX + 2

MOV [BP-100],AX• Physical add = SS x 10H + BP - 100

Page 22: Addressing Modes

22

Base Relative...

ตัวอยา่ง• MOV AX, [BX+100H]• MOV BL, ARRY[SI]• MOV [BX+2], DX• MOV TABLE[BP], DL

Page 23: Addressing Modes

23

6.Indexed Addressing Mode

เป็นการติดต่อขอ้มูลในหน่วยความจำาโดยการอ้างอิงผ่าน• รจีสิเตอรอิ์นเด็กซ์ (SI,DI) รวมกับ• ค่าขจดั (Displacement)

SI,DI : เก็บดัชนีในการชีข้อ้มูลในตาราง ค่าขจดั : ชีจุ้ดเริม่ต้นตาราง

Page 24: Addressing Modes

24

Indexed...

MOV AL,1000[SI]• Physical add = DS x 10H + 1000 + SI

MOV BL,TABLE[DI]• Physical add = DS x 10H + TABLE + DI

Page 25: Addressing Modes

25

Indexed...

ตัวอยา่ง• MOV AX, [1000+DI]• MOV BL, 1000[SI]• MOV [TABLE+SI], DX• MOV TABLE[DI], DL

Page 26: Addressing Modes

26

7.Base Relative Indexed Addressing Mode

เป็นการติดต่อขอ้มูลในหน่วยความจำาโดยการอ้างอิงผ่าน• รจีสิเตอรอิ์นเด็กซ์ (SI,DI)• รจีสิเตอรเ์บส (BX,BP)• และค่าสมัพทัธ์ (Relative)

Page 27: Addressing Modes

27

MOV AL,1000[BX+SI]• Physical add = DSx10H+1000+BX+SI

MOV BL,TABLE[BP+DI]• Physical add = SSx10H+TABLE+BP+DI

Base Relative Indexed...

Page 28: Addressing Modes

28

Base Relative Indexed...

ตัวอยา่ง• MOV AX, [BX+DI+20H]• MOV BL, HOME[BP+SI]• MOV NAME[BX+SI+2], DX• MOV LIST[BP+DI], DL