ปรีดา เลิศพงศ วิภูษณะ [email protected]...
Transcript of ปรีดา เลิศพงศ วิภูษณะ [email protected]...
![Page 1: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/1.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/2.jpg)
สถาปตยกรรมคอมพิวเตอรเบ้ืองตนสถาปตยกรรมคอมพิวเตอรเบ้ืองตนสถาปตยกรรมท่ัวไปของระบบคอมพวิเตอรn หนวยประมวลผลกลางn หนวยความจํา
![Page 3: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/3.jpg)
สถาปตยกรรมคอมพิวเตอรเบ้ืองตนสถาปตยกรรมคอมพิวเตอรเบ้ืองตนสถาปตยกรรมของหนวยประมวลผลตระกูล 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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/4.jpg)
สถาปตยกรรมคอมพิวเตอรเบ้ืองตนสถาปตยกรรมคอมพิวเตอรเบ้ืองตนสถาปตยกรรมของหนวยประมวลผลสมัยใหม
![Page 5: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/5.jpg)
หนวยประมวลผลกลางหนวยประมวลผลกลางขั้นตอนการทํางานn อานคําสั่ง (Fetch)n การถอดรหัสและตีความ (Decode)n ประมวลผล (Excute)
![Page 6: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/6.jpg)
หนวยประมวลผลกลางหนวยประมวลผลกลางหนวยประมวลผลกลางจะทํางานตามชดุคาํสั่งท่ีอานขึ้นมาจากหนวยความจําหลักเทานั้น เรียกวา 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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/7.jpg)
หนวยความจําหนวยความจําบิต : หนวยท่ีเล็กท่ีสดุในการเก็บขอมลูไบต : หนวยท่ีใชในการอางถึงขอมูลในหนวยความจํา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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/8.jpg)
บัสบัส :: ชองทางสงสัญญาณชองทางสงสัญญาณอุปกรณตาง ๆ จะเชื่อมตอกันโดยผานทางกลุมของสายสัญญาณ ท่ีเราเรียกวา บัส
![Page 9: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/9.jpg)
บัสบัส :: ชองทางสงสัญญาณชองทางสงสัญญาณเราสามารถแบงกลุมของบัสออกเปน 3 กลุมn บัสขอมูลn บัสตําแหนง หรือ แอดเดรสบัสn บัสควบคุม
![Page 10: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/10.jpg)
สถาปตยกรรมสถาปตยกรรมของระบบไมโครโปรเซสเซอรของระบบไมโครโปรเซสเซอรตระกูลตระกูล 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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/11.jpg)
สถาปตยกรรมของหนวยประมวลผลสถาปตยกรรมของหนวยประมวลผลหนวยประมวลผลตระกูลอ่ืน ๆ เชนn 68000, PowerPC, Alpha, SPARC, MIPS
![Page 12: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/12.jpg)
การจัดการหนวยความจําการจัดการหนวยความจํา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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/13.jpg)
การอางแอดเดรสแบบเซกเมนตการอางแอดเดรสแบบเซกเมนต :: ออฟเซ็ตออฟเซ็ตการแปลงจากการอางแบบ เซกเมนต:ออฟเซ็ต เปน physical addressn เล่ือนบิตของเซกเมนต ไปทางซาย 4 บิต (-> มีขนาด 20 บิต)n นําคาของออฟเซ็ตมาบวก
![Page 14: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/14.jpg)
การอางแอดเดรสแบบเซกเมนตการอางแอดเดรสแบบเซกเมนต :: ออฟเซ็ตออฟเซ็ตตัวอยาง แปลงจาก 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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/15.jpg)
การเหลื่อมกันของเซกเมนตการเหลื่อมกันของเซกเมนตเซกเมนตหนึ่ง ๆ มขีอบเขตตัง้แต 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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/16.jpg)
การเหลื่อมกันของเซกเมนตการเหลื่อมกันของเซกเมนตลักษณะของการเรียงตัวของเซกเมนตจะเหล่ือมกัน 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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/17.jpg)
การเหลื่อมกันของเซกเมนตการเหลื่อมกันของเซกเมนตลักษณะของการเรียงตัวของเซกเมนตจะเหล่ือมกัน 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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/18.jpg)
เซกเมนตรีจิสเตอรเซกเมนตรีจิสเตอร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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/19.jpg)
แสต็กแสต็กเปนหนวยความจําสาํหรับเก็บขอมลู ท่ีมีลักษณะเปนแบบ เขากอน
ออกทีหลัง (First In Last Out :FILO)
![Page 20: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/20.jpg)
รายละเอียดของสวนประกอบภายในไมโครโปรเซสเซอรรายละเอียดของสวนประกอบภายในไมโครโปรเซสเซอร 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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/21.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/22.jpg)
คูรีจิสเตอรคูรีจิสเตอร 1616 บิตบิต และและ 88 บิตบิตAX (Accumulator Register)
BX (Base Register)
![Page 23: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/23.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/24.jpg)
โหมดการโหมดการอางแอดเดรสอางแอดเดรส (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](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/25.jpg)
การขัดจังหวะการขัดจังหวะการสั่งใหหนวยประมวลผลหยดุทํางานปจจุบนัชั่วคราว แลวกระโดดไปตอบสนองการขดัจังหวะนัน้ เมื่อตอบสนองเสร็จแลว CPU จะกลับมาประมวลผลงานเดิมท่ีคางไวn ตัวอยาง เชน อุปกรณบางชิ้นไดรับขอมูล ขอมูลเขียนลงในฮารดดิสกเรียบรอย หรือ มีการกดปุมบนแปนพิมพ เปนตน
การขดัจังหวะสามารถสรางไดจากn ฮารดแวร : ฮารดแวรอินเตอรรัพทw ใชในการแจงการเปลี่ยนสถานะของอุปกรณรอบขางตางๆ และตองการการจดัการจาก
CPUn ซอฟตแวร : ซอฟตแวรอินเตอรรัพทw ใชในการเรียกใชบริการของระบบ (system library)
![Page 26: ปรีดา เลิศพงศ วิภูษณะ plw@ku.ac.th ภาควิชาวิศวกรรม ...plw/assembly_language/presentation/color/alp-w02... · 26-Jun-06](https://reader035.fdocuments.net/reader035/viewer/2022070617/5e0b6135336a6a1efa33ffd1/html5/thumbnails/26.jpg)
สถาปตยกรรมของระบบคอมพิวเตอรสมัยใหมสถาปตยกรรมของระบบคอมพิวเตอรสมัยใหมเทคโนโลยีของหนวยประมวลผลกลางn หนวยประมวลผลแบบ RISCn การประมวลผลแบบ ไปปไลนn การประมวลผลแบบซูเปอรสเกลารระบบบัสสมัยใหมn หนวยความจําแคช