Addressing Modes

Post on 14-Feb-2016

29 views 1 download

description

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

Transcript of Addressing Modes

1

Addressing Modes

std@kmitnb.ac.th

2

Addressing

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

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

3

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

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

Instruction Destination Source

MOV AX, BX ADD AND OR

4

Addressing Modes

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

5

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

Immediate addressing Register addressing

6

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

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

7

1.Immediate Addressing Mode

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

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

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

8

Immediate...

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

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

65535 (0FFFFH)

9

Immediate...

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

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

(0FFH)

10

Immediate...

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

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

12

Register...

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

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

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

13

Register...

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

14

3.Direct Addressing Mode

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

[ ] โดยตรง

15

Direct...

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

16

4.Register Indirect Addressing Mode

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

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

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

17

Register Indirect...

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

18

5.Base Relative Addressing Mode

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

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

19

Base Relative...

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

20

Base Relative...

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

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

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

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

22

Base Relative...

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

23

6.Indexed Addressing Mode

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

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

24

Indexed...

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

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

25

Indexed...

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

26

7.Base Relative Indexed Addressing Mode

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

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...

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