งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

13/06/47Machine Structure, Machine Language, and Assembly Language 1 2.2 ภาษาเครื่อง (Machine language) จากรูป แสดงลำดับของเลข 0 และ 1 นำไปใช้งานโดย CPU.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "13/06/47Machine Structure, Machine Language, and Assembly Language 1 2.2 ภาษาเครื่อง (Machine language) จากรูป แสดงลำดับของเลข 0 และ 1 นำไปใช้งานโดย CPU."— ใบสำเนางานนำเสนอ:

1 13/06/47Machine Structure, Machine Language, and Assembly Language ภาษาเครื่อง (Machine language) จากรูป แสดงลำดับของเลข 0 และ 1 นำไปใช้งานโดย CPU เป็นคำสั่ง Load ข้อมูล และ Mnemonic form ที่ใช้แทนคำสั่งดังกล่าวนี้

2 13/06/47Machine Structure, Machine Language, and Assembly Language 2 ตัวอย่าง จงเขียนโปรแกรม ที่บวกตัวเลข 49 กับข้อมูลแบบ Fullword ที่เก็บเรียงแถวติดกัน 10 ตัว โดยอยู่ ภายใต้ข้อสมมุติฐานต่อไปนี้ ข้อสมมุติฐานที่ 1: เลข 10 จำนวน ที่จะนำมาบวก เป็นแบบ Fullword เรียงติดกัน มีแอดเดรสเริ่มต้นแบบ Absolute ที่ 952 ข้อสมมุติฐานที่ 2: โปรแกรมอยู่ในหน่วยความจำ เริ่มต้นที่แอดเดรส 48 ข้อสมมุติฐานที่ 3: เลข 49 เป็นข้อมูลแบบ Fullword อยู่ที่ Absolute แอดเดรส 948 ข้อสมมุติฐานที่ 4: รีจิสเตอร์ 1 บรรจุข้อมูล 48

3 13/06/47Machine Structure, Machine Language, and Assembly Language 3

4 13/06/47Machine Structure, Machine Language, and Assembly Language 4

5 13/06/47Machine Structure, Machine Language, and Assembly Language 5 Absolute address Relative Address Hexa Decimal Instructions : : : C A F :

6 13/06/47Machine Structure, Machine Language, and Assembly Language 6 Absolute address Relative Address Hexa Decimal Instructions : : : C A F :

7 13/06/47Machine Structure, Machine Language, and Assembly Language 7 Absolute address Relative Address Hexa Decimal Instructions : : : C A F :

8 13/06/47Machine Structure, Machine Language, and Assembly Language 8 Absolute address Relative Address Hexa Decimal Instructions : : A : C A F L 2,904(0,1) A 2,900(0,1) ST 2,904(0,1) :

9 13/06/47Machine Structure, Machine Language, and Assembly Language 9 Absolute address Relative Address Hexa Decimal Instructions : : A : C A F L 2,904(0,1) A 2,900(0,1) ST 2,904(0,1) :

10 13/06/47Machine Structure, Machine Language, and Assembly Language 10 Absolute address Relative Address Hexa Decimal Instructions : : A C 5A C : C A F L 2,904(0,1) A 2,900(0,1) ST 2,904(0,1) L 2,908(0,1) A 2,900(0,1) ST 2,908(0,1) :

11 13/06/47Machine Structure, Machine Language, and Assembly Language 11 Absolute address Relative Address Hexa Decimal Instructions : : A C 5A C : C A F L 2,904(0,1) A 2,900(0,1) ST 2,904(0,1) L 2,908(0,1) A 2,900(0,1) ST 2,908(0,1) :

12 13/06/47Machine Structure, Machine Language, and Assembly Language หนทางยาวไกล ไม่มีลูปวนซ้ำ (Long Way, No Looping) ปัญหาของโปรแกรมที่แล้ว 1) ถ้าเราต้องการโปรเซสข้อมูล 300 ตัว ( แทนที่ จะเป็น 10 ตัว เหมือนครั้งแรก ) – ที่เก็บสำหรับคำสั่ง จะเป็น (3 คำสั่ง ) x ( ความยาวของแต่ละคำสั่ง ) x ( จำนวนข้อมูล ทั้งหมด ) = 3,600 ไบท์ – ดังนั้น คำสั่งก็จะ ทับข้อมูลของเราในหน่วยความจำ

13 13/06/47Machine Structure, Machine Language, and Assembly Language 13 ปัญหาของโปรแกรมที่แล้ว ( ต่อ ) 2) ระยะทางจาก คำสั่งแรก จนถึงข้อมูลตัวสุดท้าย ควรจะเป็น 4,800 ไบท์ แต่เนื่องจาก ข้อมูลมันเอง กินพื้นที่ 4 x 300 = 1,200 ไบท์ การใช้รีจิสเตอร์ เป็น Base รีจิสเตอร์ จึงเป็นไปไม่ได้ที่จะ Access ข้อมูล ตั้งแต่หัวถึงท้ายพร้อมกัน ถ้าเขียนภาษาเครื่อง และจะต้องนึกอยู่เสมอว่า ตัวเลขที่มากที่สุด ที่เป็นไปได้คือ หรือ 4,095 ซึ่งอาจไม่สามารถ Access ข้อมูลได้ ทั่วถึงทั้งหมดพร้อมกัน

14 13/06/47Machine Structure, Machine Language, and Assembly Language 14 Relocation ถ้าโปรแกรมก่อนหน้านี้ ถูก Load ไปไว้ที่ แอดเดรส 336 ( แทนที่จะเป็นแอดเดรส 48 เหมือนก่อนหน้า ) มันยังคงทำงานได้อย่าง ถูกต้อง ถ้าค่าในรีจิสเตอร์ 1 ถูกเปลี่ยนให้เป็น 336 การย้ายโปรแกรมไปยังตำแหน่งต่างๆ ใน หน่วยความจำ เรียกว่า การ Relocation โดย ปกติ Base รีจิสเตอร์ จะถูกใช้ในการ Relocation นี้

15 13/06/47Machine Structure, Machine Language, and Assembly Language การเปลี่ยนค่าแอดเดรส โดยการใช้คำสั่งเสมือนเป็นข้อมูล สมมติว่า มีนักศึกษาของ MIT คนหนึ่งต้องการออกเดทกับ หญิงสาว ขั้นตอนการออกเดทของเขา อาจจะเขียนเป็น โปรแกรมได้ดังนี้ เช่า สูท เหน็บ Slide rule โทรหา Nancy ถ้าถูก ปฏิเสธ เปลี่ยน 3 เป็น Marry กลับไป ทำ 1

16 13/06/47Machine Structure, Machine Language, and Assembly Language การเปลี่ยนค่าแอดเดรส โดยการใช้คำสั่งเสมือนเป็นข้อมูล ( ต่อ ) สมมติว่า มีนักศึกษาของ MIT คนหนึ่งต้องการออกเดทกับ หญิงสาว ขั้นตอนการออกเดทของเขา อาจจะเขียนเป็น โปรแกรมได้ดังนี้ เช่า สูท เหน็บ Slide rule โทรหา Marry ถ้าถูก ปฏิเสธ เปลี่ยน 3 เป็น Jane กลับไป ทำ 1

17 13/06/47Machine Structure, Machine Language, and Assembly Language 17 Absolute address Relative Address Instructions Comments : : L 2,904(0,1) A 2,900(0,1) ST 2,904(0,1) L 2,0 (0,1) A 2,896(0,1) ST 2,0 (0,1) L 2,8 (0,1) A 2,896(0,1) ST 2,8 (0,1) Branch to 0 : บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

18 13/06/47Machine Structure, Machine Language, and Assembly Language 18 Absolute address Relative Address Instructions Comments : : L 2,904(0,1) A 2,900(0,1) ST 2,904(0,1) L 2,0 (0,1) A 2,896(0,1) ST 2,0 (0,1) L 2,8 (0,1) A 2,896(0,1) ST 2,8 (0,1) Branch to 0 : บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

19 13/06/47Machine Structure, Machine Language, and Assembly Language 19 Absolute address Relative Address Instructions Comments : : L 2,904(0,1) A 2,900(0,1) ST 2,904(0,1) L 2,0 (0,1) A 2,896(0,1) ST 2,0 (0,1) L 2,8 (0,1) A 2,896(0,1) ST 2,8 (0,1) Branch to 0 : บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

20 13/06/47Machine Structure, Machine Language, and Assembly Language 20 Absolute address Relative Address Instructions Comments : : L 2,904(0,1) A 2,900(0,1) ST 2,904(0,1) L 2,0 (0,1) A 2,896(0,1) ST 2,0 (0,1) L 2,8 (0,1) A 2,896(0,1) ST 2,8 (0,1) Branch to 0 : บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

21 13/06/47Machine Structure, Machine Language, and Assembly Language 21 Absolute address Relative Address Instructions Comments : : L 2,908(0,1) A 2,900(0,1) ST 2,904(0,1) L 2,0 (0,1) A 2,896(0,1) ST 2,0 (0,1) L 2,8 (0,1) A 2,896(0,1) ST 2,8 (0,1) Branch to 0 : บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

22 13/06/47Machine Structure, Machine Language, and Assembly Language 22 Absolute address Relative Address Instructions Comments : : L 2,908(0,1) A 2,900(0,1) ST 2,904(0,1) L 2,0 (0,1) A 2,896(0,1) ST 2,0 (0,1) L 2,8 (0,1) A 2,896(0,1) ST 2,8 (0,1) Branch to 0 : บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

23 13/06/47Machine Structure, Machine Language, and Assembly Language 23 Absolute address Relative Address Instructions Comments : : L 2,908(0,1) A 2,900(0,1) ST 2,908(0,1) L 2,0 (0,1) A 2,896(0,1) ST 2,0 (0,1) L 2,8 (0,1) A 2,896(0,1) ST 2,8 (0,1) Branch to 0 : บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

24 13/06/47Machine Structure, Machine Language, and Assembly Language 24 Absolute address Relative Address Instructions Comments : : L 2,908(0,1) A 2,900(0,1) ST 2,908(0,1) L 2,0 (0,1) A 2,896(0,1) ST 2,0 (0,1) L 2,8 (0,1) A 2,896(0,1) ST 2,8 (0,1) Branch to 0 : บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

25 13/06/47Machine Structure, Machine Language, and Assembly Language 25 แอดเดรส เปลี่ยนได้อย่างไร เพื่อที่จะดูการทำงานของโปรแกรม เราต้องนึกอยู่เสมอ ว่า ค่าที่บรรจุอยู่ในตำแหน่ง 48 ( ดังรูปที่ 2.1 ไม่ใช่ L 2, 904(0,1) แต่มันเป็น

26 13/06/47Machine Structure, Machine Language, and Assembly Language 26 ปัญหา การใช้คำสั่งเป็นเสมือนข้อมูลไม่ใช่เทคนิคการ เขียนโปแกรมที่ดี เพราะว่าในระยะยาว การ แก้ไขบำรุงรักษา (Maintenance) โปรแกรมจะ ลำบาก มันจะยากต่อการทำความเข้าใจว่า เริ่มแรกเลย ผู้เขียนต้องการจะทำอะไร ในกรณีของระบบ Multiprocessing ( หลายงาน บนระบบที่มีโปรเซสเซอร์มากกว่า 1 ตัว ทำงาน พร้อมกัน ) มันจะขัดแย้งกับกับกฎของ โค้ด บริสุทธิ์ (Pure code) หรือที่เรียกว่า เข้าใหม่ได้ หลายครั้ง (Re-entrant code) เป็นโค้ดที่ ไม่มี การแก้ไขตัวมันเอง


ดาวน์โหลด ppt 13/06/47Machine Structure, Machine Language, and Assembly Language 1 2.2 ภาษาเครื่อง (Machine language) จากรูป แสดงลำดับของเลข 0 และ 1 นำไปใช้งานโดย CPU.

งานนำเสนอที่คล้ายกัน


Ads by Google