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

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

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 1 2.2 ภาษาเครื่อง (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 : 948 952 956 960 964 968 972 976 980 984 988 : 900 904 908 912 916 920 924 928 932 936 940 : 00000031 00000005 00000007 00000009 0000000C 00000008 0000000A 0000000F 00000100 00000003 00000004 : 49 5 7 9 12 8 10 15 16 3 4

6 13/06/47Machine Structure, Machine Language, and Assembly Language 6 Absolute address Relative Address Hexa Decimal Instructions : 948 952 956 960 964 968 972 976 980 984 988 : 900 904 908 912 916 920 924 928 932 936 940 : 00000031 00000036 00000007 00000009 0000000C 00000008 0000000A 0000000F 00000100 00000003 00000004 : 49 54 7 9 12 8 10 15 16 3 4

7 13/06/47Machine Structure, Machine Language, and Assembly Language 7 Absolute address Relative Address Hexa Decimal Instructions : 948 952 956 960 964 968 972 976 980 984 988 : 900 904 908 912 916 920 924 928 932 936 940 : 00000031 00000036 00000038 00000009 0000000C 00000008 0000000A 0000000F 00000100 00000003 00000004 : 49 54 56 9 12 8 10 15 16 3 4

8 13/06/47Machine Structure, Machine Language, and Assembly Language 8 Absolute address Relative Address Hexa Decimal Instructions 48 52 56 : 948 952 956 960 964 968 972 976 980 984 988 0 4 8 : 900 904 908 912 916 920 924 928 932 936 940 58201388 5A201384 5201388 : 00000031 00000005 00000007 00000009 0000000C 00000008 0000000A 0000000F 00000100 00000003 00000004 L 2,904(0,1) A 2,900(0,1) ST 2,904(0,1) : 49 5 7 9 12 8 10 15 16 3 4

9 13/06/47Machine Structure, Machine Language, and Assembly Language 9 Absolute address Relative Address Hexa Decimal Instructions 48 52 56 : 948 952 956 960 964 968 972 976 980 984 988 0 4 8 : 900 904 908 912 916 920 924 928 932 936 940 58201388 5A201384 5201388 : 00000031 00000036 00000007 00000009 0000000C 00000008 0000000A 0000000F 00000100 00000003 00000004 L 2,904(0,1) A 2,900(0,1) ST 2,904(0,1) : 49 54 7 9 12 8 10 15 16 3 4

10 13/06/47Machine Structure, Machine Language, and Assembly Language 10 Absolute address Relative Address Hexa Decimal Instructions 48 52 56 60 64 68 : 948 952 956 960 964 968 972 976 980 984 988 0 4 8 12 16 20 : 900 904 908 912 916 920 924 928 932 936 940 58201388 5A201384 5201388 5820138C 5A201384 5020138C : 00000031 00000036 00000007 00000009 0000000C 00000008 0000000A 0000000F 00000100 00000003 00000004 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) : 49 54 7 9 12 8 10 15 16 3 4

11 13/06/47Machine Structure, Machine Language, and Assembly Language 11 Absolute address Relative Address Hexa Decimal Instructions 48 52 56 60 64 68 : 948 952 956 960 964 968 972 976 980 984 988 0 4 8 12 16 20 : 900 904 908 912 916 920 924 928 932 936 940 58201388 5A201384 5201388 5820138C 5A201384 5020138C : 00000031 00000036 00000038 00000009 0000000C 00000008 0000000A 0000000F 00000100 00000003 00000004 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) : 49 54 56 9 12 8 10 15 16 3 4

12 13/06/47Machine Structure, Machine Language, and Assembly Language 12 2.2.1 หนทางยาวไกล ไม่มีลูปวนซ้ำ (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 ข้อมูล ตั้งแต่หัวถึงท้ายพร้อมกัน ถ้าเขียนภาษาเครื่อง และจะต้องนึกอยู่เสมอว่า ตัวเลขที่มากที่สุด ที่เป็นไปได้คือ 2 12 -1 หรือ 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 15 2.2.2 การเปลี่ยนค่าแอดเดรส โดยการใช้คำสั่งเสมือนเป็นข้อมูล สมมติว่า มีนักศึกษาของ MIT คนหนึ่งต้องการออกเดทกับ หญิงสาว ขั้นตอนการออกเดทของเขา อาจจะเขียนเป็น โปรแกรมได้ดังนี้ 12345 เช่า สูท เหน็บ Slide rule โทรหา Nancy ถ้าถูก ปฏิเสธ เปลี่ยน 3 เป็น Marry กลับไป ทำ 1

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

17 13/06/47Machine Structure, Machine Language, and Assembly Language 17 Absolute address Relative Address Instructions Comments 48 52 56 60 64 68 72 76 80 : 944 948 952 956 960 964 968 972 976 980 984 988 0 4 8 12 16 20 24 28 32 : 896 900 904 908 912 916 920 924 928 932 936 940 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 : 4 49 5 7 9 12 8 10 15 16 3 4 บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

18 13/06/47Machine Structure, Machine Language, and Assembly Language 18 Absolute address Relative Address Instructions Comments 48 52 56 60 64 68 72 76 80 : 944 948 952 956 960 964 968 972 976 980 984 988 0 4 8 12 16 20 24 28 32 : 896 900 904 908 912 916 920 924 928 932 936 940 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 : 4 49 5 7 9 12 8 10 15 16 3 4 บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

19 13/06/47Machine Structure, Machine Language, and Assembly Language 19 Absolute address Relative Address Instructions Comments 48 52 56 60 64 68 72 76 80 : 944 948 952 956 960 964 968 972 976 980 984 988 0 4 8 12 16 20 24 28 32 : 896 900 904 908 912 916 920 924 928 932 936 940 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 : 4 49 54 7 9 12 8 10 15 16 3 4 บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

20 13/06/47Machine Structure, Machine Language, and Assembly Language 20 Absolute address Relative Address Instructions Comments 48 52 56 60 64 68 72 76 80 : 944 948 952 956 960 964 968 972 976 980 984 988 0 4 8 12 16 20 24 28 32 : 896 900 904 908 912 916 920 924 928 932 936 940 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 : 4 49 54 7 9 12 8 10 15 16 3 4 บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

21 13/06/47Machine Structure, Machine Language, and Assembly Language 21 Absolute address Relative Address Instructions Comments 48 52 56 60 64 68 72 76 80 : 944 948 952 956 960 964 968 972 976 980 984 988 0 4 8 12 16 20 24 28 32 : 896 900 904 908 912 916 920 924 928 932 936 940 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 : 4 49 54 7 9 12 8 10 15 16 3 4 บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

22 13/06/47Machine Structure, Machine Language, and Assembly Language 22 Absolute address Relative Address Instructions Comments 48 52 56 60 64 68 72 76 80 : 944 948 952 956 960 964 968 972 976 980 984 988 0 4 8 12 16 20 24 28 32 : 896 900 904 908 912 916 920 924 928 932 936 940 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 : 4 49 54 7 9 12 8 10 15 16 3 4 บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

23 13/06/47Machine Structure, Machine Language, and Assembly Language 23 Absolute address Relative Address Instructions Comments 48 52 56 60 64 68 72 76 80 : 944 948 952 956 960 964 968 972 976 980 984 988 0 4 8 12 16 20 24 28 32 : 896 900 904 908 912 916 920 924 928 932 936 940 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 : 4 49 54 7 9 12 8 10 15 16 3 4 บวก 49 ให้กับ 904 เพิ่ม Load อีก 4 เพิ่ม Store อีก 4

24 13/06/47Machine Structure, Machine Language, and Assembly Language 24 Absolute address Relative Address Instructions Comments 48 52 56 60 64 68 72 76 80 : 944 948 952 956 960 964 968 972 976 980 984 988 0 4 8 12 16 20 24 28 32 : 896 900 904 908 912 916 920 924 928 932 936 940 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 : 4 49 54 56 9 12 8 10 15 16 3 4 บวก 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