ปรีดา เลิศพงศ วิภูษณะ [email protected]...

26
26-Jun-06 Assembly Language ([email protected]) 1 สถาปตยกรรมคอมพิวเตอรเบื้องตน สถาปตยกรรมคอมพิวเตอรเบื้องตน ปรีดา ปรีดา เลิศพงศวิภูษณะ เลิศพงศวิภูษณะ plw@ku plw@ku . . ac ac . . th th ภาควิชาวิศวกรรมคอมพิวเตอร ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร คณะวิศวกรรมศาสตร มหาวิทยาลัยเกษตรศาสตร มหาวิทยาลัยเกษตรศาสตร

Upload: others

Post on 12-Sep-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

26-Jun-06 Assembly Language ([email protected]) 1

สถาปตยกรรมคอมพิวเตอรเบ้ืองตนสถาปตยกรรมคอมพิวเตอรเบ้ืองตน

ปรีดาปรีดา เลิศพงศวิภูษณะเลิศพงศวิภูษณะplw@[email protected]

ภาควิชาวิศวกรรมคอมพิวเตอรภาควิชาวิศวกรรมคอมพิวเตอรคณะวิศวกรรมศาสตรคณะวิศวกรรมศาสตร มหาวิทยาลัยเกษตรศาสตรมหาวิทยาลัยเกษตรศาสตร

Page 2: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

สถาปตยกรรมคอมพิวเตอรเบ้ืองตนสถาปตยกรรมคอมพิวเตอรเบ้ืองตนสถาปตยกรรมท่ัวไปของระบบคอมพวิเตอรn หนวยประมวลผลกลางn หนวยความจํา

Page 3: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

สถาปตยกรรมคอมพิวเตอรเบ้ืองตนสถาปตยกรรมคอมพิวเตอรเบ้ืองตนสถาปตยกรรมของหนวยประมวลผลตระกูล 80x86n ความเปนมาn ลักษณะทั่วไปของไมโครโปรเซสเซอร 8086w ระบบบัสw การจัดการหนวยความจําw แสต็ก

n รายละเอียดของสวนประกอบภายในw ALUw Registers

n โหมดการอางแอดเดรสn การอินเตอรรัพท

Page 4: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

สถาปตยกรรมคอมพิวเตอรเบ้ืองตนสถาปตยกรรมคอมพิวเตอรเบ้ืองตนสถาปตยกรรมของหนวยประมวลผลสมัยใหม

Page 5: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

หนวยประมวลผลกลางหนวยประมวลผลกลางขั้นตอนการทํางานn อานคําสั่ง (Fetch)n การถอดรหัสและตีความ (Decode)n ประมวลผล (Excute)

Page 6: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

หนวยประมวลผลกลางหนวยประมวลผลกลางหนวยประมวลผลกลางจะทํางานตามชดุคาํสั่งท่ีอานขึ้นมาจากหนวยความจําหลักเทานั้น เรียกวา Stored Program Architecture หรือ (Von Neumann Architecture)ชุดคําสั่ง แตละชุดประกอบดวย Opcode และ Operandn Opcode : ระบุถึงประเภทของการประมวลผลn Operand : ระบุถึงขอมูลที่ตองนํามาประมวลผล

Page 7: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

หนวยความจําหนวยความจําบิต : หนวยท่ีเล็กท่ีสดุในการเก็บขอมลูไบต : หนวยท่ีใชในการอางถึงขอมูลในหนวยความจําn หนวยยอยจะมีหมายเลขเฉพาะตัว w แอดเดรส [Address]

การอางถึงขอมลูในหนวยความจําn หนวยประมวลผลจะตองสามารถระบุ แอดเดรสของขอมูลน้ันดวย

00000 A00001 B00002 C00003 D00004 E00005 F00006 G00007 H00008 I00009 J0000A K0000B L0000C M0000D N0000E O0000F P

FFFFF Z

Page 8: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

บัสบัส :: ชองทางสงสัญญาณชองทางสงสัญญาณอุปกรณตาง ๆ จะเชื่อมตอกันโดยผานทางกลุมของสายสัญญาณ ท่ีเราเรียกวา บัส

Page 9: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

บัสบัส :: ชองทางสงสัญญาณชองทางสงสัญญาณเราสามารถแบงกลุมของบัสออกเปน 3 กลุมn บัสขอมูลn บัสตําแหนง หรือ แอดเดรสบัสn บัสควบคุม

Page 10: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

สถาปตยกรรมสถาปตยกรรมของระบบไมโครโปรเซสเซอรของระบบไมโครโปรเซสเซอรตระกูลตระกูล 8080xx8686ความเปนมาn 4040 4 บิตn 8080 8 บิตn 8086 16 บิต อางหนวยความจําได 1 MBn 8088 ภายใน 16 บิต ภายนอก 8 บิตn 80186 ไมโครโปรเซสเซอรสําหรับระบบความคุมn 80286 16 บิต อางหนวยความจําได 16 MB เริ่มมีความสามารถในการจัดการ

หนวยความจําn 80386 32 บิต อางหนวยความจําได 4 GB มีความสามารถในการจัดการหนวยความจํา

ชุดคําสั่งและโครงสรางทางซอฟตแวรยังคงเปนมาตรฐานอยูในปจจุบันn 80486 เพิ่มหนวยประมวลผลทางคณิตศาสตรn Pentium พัฒนาการประมวลผลใหเร็วยิงขึ้น

Page 11: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

สถาปตยกรรมของหนวยประมวลผลสถาปตยกรรมของหนวยประมวลผลหนวยประมวลผลตระกูลอ่ืน ๆ เชนn 68000, PowerPC, Alpha, SPARC, MIPS

Page 12: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

การจัดการหนวยความจําการจัดการหนวยความจํา8086 มีแอดเดรสบัสขนาด 20 บิตn อางแอดเดรสได 220 แบบแตกตางกันn อางแอดเดรสได 1 MBn แอดเดรสขนาด 20 บิตน้ี คือแอดเดรสที่แทจริง (physical address) ทีห่นวยประมวลผลอางถึงหนวยความจํา

8086 มีรีจิสเตอรขนาด 16 บิตn ไมพอเพียงในการอางแอดเดรสn ตองใชรีจิสเตอร 2 ตัวในการอางแอดเดรสอางแอดเดรสแบบ เซกเมนต : ออฟเซ็ตn แบงหนวยความจําทั้งหมดออกเปนสวนยอย ๆ ที่เร่ิมตนแตกตางกัน [segment]แลวระบุระยะจากจุดเร่ิมตนน้ัน [offset]

Page 13: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

การอางแอดเดรสแบบเซกเมนตการอางแอดเดรสแบบเซกเมนต :: ออฟเซ็ตออฟเซ็ตการแปลงจากการอางแบบ เซกเมนต:ออฟเซ็ต เปน physical addressn เล่ือนบิตของเซกเมนต ไปทางซาย 4 บิต (-> มีขนาด 20 บิต)n นําคาของออฟเซ็ตมาบวก

Page 14: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

การอางแอดเดรสแบบเซกเมนตการอางแอดเดรสแบบเซกเมนต :: ออฟเซ็ตออฟเซ็ตตัวอยาง แปลงจาก 12ADh : 3A3Eh

ในทางกลับกัน physical address 1650Eh สามารถอางแอดเดรสแบบ segment : offset ไดเปน 12ADh : 3A3Eh เชนกัน และยังสามารถอางแบบอ่ืนไดดวย เชน 1650h :000Eh 1200h : 450Eh 1000h : 650Eh และ คู segment : offset อ่ืน ๆ อีกหลายคู

Page 15: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

การเหลื่อมกันของเซกเมนตการเหลื่อมกันของเซกเมนตเซกเมนตหนึ่ง ๆ มขีอบเขตตัง้แต offset ท่ี 0000h จนถึง FFFFh [16 บติ]n เซกเมนตมีขนาด = 64 KB [65536 bytes]จุดเร่ิมตนของเซกเมนตตาง ๆ n เซกเมนตที ่0000h เร่ิมตนที่ physical address 00000hn เซกเมนตที ่0001h เร่ิมตนที่ physical address 00010hn เซกเมนตที ่0002h เร่ิมตนที่ physical address 00020h

Page 16: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

การเหลื่อมกันของเซกเมนตการเหลื่อมกันของเซกเมนตลักษณะของการเรียงตัวของเซกเมนตจะเหล่ือมกัน 16 ไบต

MemorySegment 0000h

Segment 0001hSegment 0002h

Segment 0003hSegment 0004h

Segment 0005h

Page 17: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

การเหลื่อมกันของเซกเมนตการเหลื่อมกันของเซกเมนตลักษณะของการเรียงตัวของเซกเมนตจะเหล่ือมกัน 16 ไบต

00000 FFFFFSegment 0000

Segment 0001Segment 0002

Segment 0003Segment 0004

Segment 0005Segment 0006

Segment 0007Segment 0008

65,535 Bytes16 Bytes

1,048,576 Bytes

OffsetSegment

Segment:Offset

Page 18: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

เซกเมนตรีจิสเตอรเซกเมนตรีจิสเตอรCS : Code segment ชี้ไปยงัหนวยความจําท่ีเก็บโปรแกรมDS : Data segment ชี้ไปยงัหนวยความจําท่ีเก็บขอมูลES : Extra segment ชี้ไปยงัหนวยความจําท่ีเก็บขอมูลอ่ืน ๆ SS : Stack segment ชี้ไปยงัหนวยความจําท่ีเปน stack n 8086 สามารถอางหนวยความจําทั้งหมดได 1 MB แตสามารถอางไดพรอมกันแค 4 เซกเมนตเทาน้ัน

Memory

Code Segment

Data Segment

Stack Segment

Extra Segment

Page 19: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

แสต็กแสต็กเปนหนวยความจําสาํหรับเก็บขอมลู ท่ีมีลักษณะเปนแบบ เขากอน

ออกทีหลัง (First In Last Out :FILO)

Page 20: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

รายละเอียดของสวนประกอบภายในไมโครโปรเซสเซอรรายละเอียดของสวนประกอบภายในไมโครโปรเซสเซอร 80868086ALU : มีขนาด 16 บิตn ทําใหเรียก 8086 วาเปน CPU 16 บิตรีจิสเตอรn รีจิสเตอรทั่วไป (General-Purpose Registers)w 16 บิต : AX BX CX และ DXw 8 บิต : AH AL BH BL CH CL DH และ DL

n รีจิสเตอรสําหรับอางอิง (Index Registers)w มีขนาด 16 บิต : SI และ DI

n รีจิสเตอรสํารับการชี ้(Pointer Registers)w มีขนาด 16 บิต : BP และ SP

Page 21: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

26-Jun-06 Assembly Language ([email protected]) 21

รายละเอียดของสวนประกอบภายในไมโครโปรเซสเซอรรายละเอียดของสวนประกอบภายในไมโครโปรเซสเซอร 80868086n เซกเมนตรีจิสเตอร (Segment Registers)w CS DS ES และ SS

n แฟล็ก (Flags)w สถานะของผลลัพธจากการคํานวณ

n รีจิสเตอรอ่ืน ๆ ที่ผูใชไมสามารถใชไดโดยตรงw IP (Instruction Pointer) : เก็บตําแหนงของคําสั่งถัดไปw IR (Instrcution Register) : เก็บคําสั่งปจจุบันw etc.

Page 22: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

คูรีจิสเตอรคูรีจิสเตอร 1616 บิตบิต และและ 88 บิตบิตAX (Accumulator Register)

BX (Base Register)

Page 23: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

26-Jun-06 Assembly Language ([email protected]) 23

คูรีจิสเตอรคูรีจิสเตอร 1616 บิตบิต และและ 88 บิตบิตCX (Counter Register)

DX (Data Register)

Page 24: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

โหมดการโหมดการอางแอดเดรสอางแอดเดรส (Addressing Mode)(Addressing Mode)คือรูปแบบท่ี CPU อางถึงขอมลู แบงเปน 3 กลุมn อางถึงขอมูลใน รีจิสเตอรn อางถึงขอมูลจากที่ระบุในคําสั่งn อางถึงขอมูลในหนวยความจํา

Page 25: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

การขัดจังหวะการขัดจังหวะการสั่งใหหนวยประมวลผลหยดุทํางานปจจุบนัชั่วคราว แลวกระโดดไปตอบสนองการขดัจังหวะนัน้ เมื่อตอบสนองเสร็จแลว CPU จะกลับมาประมวลผลงานเดิมท่ีคางไวn ตัวอยาง เชน อุปกรณบางชิ้นไดรับขอมูล ขอมูลเขียนลงในฮารดดิสกเรียบรอย หรือ มีการกดปุมบนแปนพิมพ เปนตน

การขดัจังหวะสามารถสรางไดจากn ฮารดแวร : ฮารดแวรอินเตอรรัพทw ใชในการแจงการเปลี่ยนสถานะของอุปกรณรอบขางตางๆ และตองการการจดัการจาก

CPUn ซอฟตแวร : ซอฟตแวรอินเตอรรัพทw ใชในการเรียกใชบริการของระบบ (system library)

Page 26: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06

สถาปตยกรรมของระบบคอมพิวเตอรสมัยใหมสถาปตยกรรมของระบบคอมพิวเตอรสมัยใหมเทคโนโลยีของหนวยประมวลผลกลางn หนวยประมวลผลแบบ RISCn การประมวลผลแบบ ไปปไลนn การประมวลผลแบบซูเปอรสเกลารระบบบัสสมัยใหมn หนวยความจําแคช