Anda di halaman 1dari 4

addressing mode วิธีการระบุขอมูลที่ตองการใชงานของ instruction

direct & indirect


1. immediate
คือการใชคาทีร่ ะบุในinstructionในการคํานวณทันที เชน คําสั่ง INC (increase) ซึ่งจะนําคาทีถ่ ูกระบุ
ใน instruction ไปบวกกับคาที่อยูใน ACC (accumulator register) หากใชการเขาถึงขอมูลแบบ
immediate ก็จะนําคาไปใชในทันที

ขอดี : รวดเร็วเพราะใชคาที่อยูใน instruction โดยตรงไมตองไป fetchคาจากที่อื่นมา สามารถ


ประมวลผลไดทันที
ขอเสีย : มีขอจํากัดในการบรรจุคาลงในinstruction เชน คําสั่งขนาด 16 bit อาจจะมีสวนที่ใชเก็บคา
เพียง 10 bit ทําใหสามารถเก็บคาที่แตกตางกันไดเพียง 210 คาเทานั้น
2. direct/absolute
วิธีนี้instructionจะเก็บaddressของคาที่ตองการใชเอาไว เมื่อinstructionถูกประมวลผล ก็จะไปดึง
คาจากmemoryตําแหนงที่ตรงกับaddressนั้น

INC 0x04 2 2+11

0x00 5
0x01 3
0x02 4
0x03 6
0x04 11

ขอดี : ดีกวาขอหนึ่งตรงที่ทําลายขอจํากัดเรื่องขนาดของขอมูลที่สามารถบรรจุลงได เพราะเปลี่ยนมาใช


memory เปนตัวเก็บแทน ทําใหสามารถเก็บไดเต็มหนึ่ง word
ขอเสีย : ในคอมพิวเตอรรุนแรกๆเปนที่นิยม แตเมื่อขนาดของmemoryใหญขึ้นทําใหaddressที่บรรจุ
อยูในinstructionไมสามารถชี้ไดทั้งหมด จึงกลายเปนขอจํากัดใหมขึ้นมาแทน เชน คําสั่งขนาด 16 bit อาจจะ
มีสวนที่ใชเก็บคาเพียง 10 bit ทําใหสามารถเก็บคาที่แตกตางกันไดเพียง 210 คาเทานั้น แตในปจจุบัน memory
มีขนาดใหญถงึ 512mb ซึ่งใหญกวา 210 หลายเทา
3. memory indirect
เหมือนกับวิธีที่สอง แตทaี่ ddressที่คําสั่งชี้ไปนัน้ จะเก็บaddressที่ชี้ไปยังคาที่ตองการใช

ขอดี : แบบนี้สามารถทําลายกําแพงการมองไมเห็นmemoryทั้งหมดไดสําเร็จ เพราะอาศัยการบรรจุ


memoryในwordของmemoryทําใหสามารถใสคาaddressที่แตกตางกันไดถึง 2 ตําแหนง(ในกรณีที่
32

wordมีขนาด32bit)~4,300 ลานตําแหนง(นั่นคือเพียงพอสําหรับmemoryขนาด 4 Gb)


ขอเสีย : เสียเวลาในการประมวลผลเพิ่มขึ้นเพราะตองทําการเขาถึงขอมูลถึงสองครั้ง
4. register direct
วิธีนี้คาที่เก็บไวในinstructionจะไมใชคาหรืออaddressที่อยูในmemory แตเปนตําแหนงของ
registerที่ตองการใช ซึ่งในregisterนั้นจะมีคาที่ตองการใชเก็บอยู

INC 0x04 2 2+6

0x00 5
0x01 3
0x02 4
0x03 6
0x04 0x01

0x00 5
0x01 3
0x02 4
0x03 6
0x04 6

Register

ขอดี : การเขาถึงขอมูลในregisterนั้นรวดเร็วกวามาก และเนื่องจากregisterมีจํานวนเพียง8-32


ตัวเทานั้น ทําใหขนาดของinstructionที่ใชวิธีนี้มีขนาดเล็กมาก และทําใหโปรแกรมมีขนาดเล็กตามไปดวย
ขอเสีย : เนื่องจากregisterมีนอย ดังนั้นจึงเกิดขอจํากัดในการเก็บขอมูลที่ตองการใชงาน จึงตองมีการ
เลือกใชงานอยางมีประสิทธิภาพที่สุด
5. Register indirect
วิธีนี้เหมือนวิธีในขอสี่ แตในregisterจะเก็บaddressในmemoryที่มีคาที่ตอ งการใชอยู

INC 0x04 2 2+3

0x00 5
0x01 3
0x02 4
0x03 6
0x04 0x01

0x00 5
0x01 3
0x02 4
0x03 6
0x04 0x01

Register

Anda mungkin juga menyukai