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

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

CS Assembly Language Programming

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


งานนำเสนอเรื่อง: "CS Assembly Language Programming"— ใบสำเนางานนำเสนอ:

1 CS344-321 Assembly Language Programming
Period 4

2 ระบบตัวเลข (Number Systems)
ระบบตัวเลขฐานสอง (binary number system) ประกอบด้วย 0, 1 ระบบตัวเลขฐานแปด (octal number system) ประกอบด้วย 0, 1, 2, …, 7 ระบบตัวตัวเลขฐานสิบ (decimal number system) ประกอบด้วย 0, 1, 2, …, 9 ระบบตัวเลขฐานสิบหก (hexadecimal number system) ประกอบด้วย 0, 1, 2, …, 9, A, B, C, D, E, F

3 การเปลี่ยนฐาน การเปลี่ยนจากเลขฐานสองให้เป็นเลขฐานสิบ ใช้สูตร
(bnb n-1 … b2b1b0.b-1b-2 …b-m)2 = (bn2n+b n-1 2n-1 + … + b222 + b121+b0 + b b … + b-m2-m)10 เช่น ( )2 = ( * )10 = ( )10 หมายเหตุ การเปลี่ยนจากเลขฐานแปดหรือสิบหกให้เป็นเลขฐานสิบ ใช้สูตรเหมือนกัน แต่เปลี่ยนจาก 2 เป็น 8 และ 16 ตามลำดับ โดยแทน A, B, C, D, E, F ด้วย 10, 11, 12, 13, 14, 15 ตามลำดับ

4 การเปลี่ยนตัวเลขหน้าจุด จากเลขฐานสิบให้เป็นเลขฐานสอง
ให้ใช้ 2 หาร ไปเรื่อย จนได้ผลลัพธ์เป็น 0 ขณะที่หารให้จดจำเศษที่ได้ นำเศษที่ได้จากการหารมาเรียงตามลำดับ เริ่มจากเศษที่ได้ครั้งสุดท้ายเรียงไปยังเศษที่ได้จากการหารครั้งแรก เช่น ) 123 เศษ 1 เศษ 1 เศษ 0 7 เศษ 1 3 เศษ 1 1 เศษ 1 0 เศษ 1 (123)10 = ( )2 หมายเหตุ การเปลี่ยนตัวเลขหน้าจุด จากเลขฐานสิบให้เป็นเลขฐานแปดหรือสิบหก ใช้สูตรเหมือนกัน แต่เปลี่ยนจากการหารด้วย 2 เป็นการหารด้วย 8 และ 16 ตามลำดับ โดยแทนเศษ 10, 11, 12, 13, 14, 15 ด้วย A, B, C, D, E, F ตามลำดับ

5 การเปลี่ยนตัวเลขหลังจุด จากเลขฐานสิบให้เป็นเลขฐานสอง
ให้คูณตัวเลขที่อยู่หลังจุดทั้งหมดด้วย 2 ไปเรื่อย ๆ จนกว่าจะได้ผลลัพธ์เป็นศูนย์ หรือได้จำนวนตัวเลขหลังจุดทศนิยมตามที่ต้องการ แล้วนำเลขหน้าจุดที่ได้จากการคูณแต่ละครั้ง มาเรียงกัน เช่น (0.6875)10 = ( ) * 2 1.3750 .3750 0.7500 .7500 1.5000 .5000 1.0000 .0000 หมายเหตุ การเปลี่ยนตัวเลขหลังจุด จากเลขฐานสิบให้เป็นเลขฐานแปดหรือสิบหก ใช้สูตรเหมือนกัน แต่เปลี่ยนจากการคูณด้วย 2 เป็นการคูณด้วย 8 และ 16 ตามลำดับ

6 การแทนข้อมูล (Data Representation)
อักขระ (character) แทนอักขระ หนึ่งตัว มีสองแบบ คือ - ASCII (ใช้ 7 บิต แทนรหัส และ parity 1 บิตใช้ตรวจสอบ) ดู appendix D - EBCDIC (ใช้ทั้ง 8 บิต แทนรหัส) เลขจำนวนเต็ม (integer) แทนเลขจำนวนเต็มทั้งแบบที่มีเครื่องหมาย และแบบที่ไม่มีเครื่องหมาย กรณีไม่มีเครื่องหมาย ถ้าใช้จำนวนบิต n บิต จะแทนเลขจำนวนเต็มไม่มีเครื่องหมายได้ ตั้งแต่ 0 ถึง 2n-1 เช่น n = 16 จะแทนเลขจำนวนเต็มได้ตั้งแต่ 0 ถึง เป็นต้น กรณีมีเครื่องหมาย สามารถแทนได้ในสามรูปแบบ คือ

7 ก. sign magnitude ใช้บิตซ้ายสุด (most significant bit) แทนเครื่องหมาย
โดยที่ 0 แทนเครื่องหมายบวก และ 1 แทนเครื่องหมายลบ บิตที่เหลือใช้แทนขนาดของตัวเลข most significant bit least significant bit n n … sign magnitude เช่น สมมุติว่าใช้ จำนวนบิต 8 บิต แทนเลขจำนวน +5 และ –5 ได้เป็น และ เป็นต้น ถ้าใช้จำนวน n บิต จะแทนเลขจำนวนเต็มแบบมีเครื่องหมาย ได้ตั้งแต่ – (2n-1 – 1) ถึง +(2n-1- 1) เช่น n = 16 จะแทนเลขจำนวนเต็มมีเครื่องหมายได้ตั้งแต่ –32767 ถึง เป็นต้น โดยที่ 0 แทนได้ทั้ง +0 และ –0

8 ข. one complement ใช้บิตซ้ายสุด (most significant bit) แทนเครื่องหมาย
โดยที่ 0 แทนเครื่องหมายบวก และ 1 แทนเครื่องหมายลบ เช่นกัน การแทนเลขบวก จะเหมือนกับแบบ sign magnitude แต่การแทนตัวเลขลบ จะต่างกัน แบบ one complement จะแทนตัวเลขลบโดยการ ทำ complement (เปลี่ยนจากเลข 0 เป็น 1 และ เปลี่ยนจากเลข 1 เป็น 0) กับ magnitude เช่น สมมุติว่าใช้ จำนวนบิต 8 บิต แทนเลขจำนวน +5 และ –5 ได้เป็น และ เป็นต้น ถ้าใช้จำนวน n บิต จะแทนเลขจำนวนเต็มแบบมีเครื่องหมาย ได้ตั้งแต่ – (2n-1 – 1) ถึง +(2n-1- 1) เช่น n = 16 จะแทนเลขจำนวนเต็มมีเครื่องหมายได้ตั้งแต่ –32767 ถึง เป็นต้น โดยที่ 0 แทนได้ทั้ง +0 และ –0

9 ค. two complement ใช้บิตซ้ายสุด (most significant bit) แทนเครื่องหมาย โดยที่ 0 แทนเครื่องหมายบวก และ 1 แทนเครื่องหมายลบ เช่นกัน การแทนเลขบวก จะเหมือนกับแบบ sign magnitude แต่การแทนตัวเลขลบ จะต่างกัน แบบ two complement จะแทนตัวเลขลบโดยการ ทำ complement (เปลี่ยนจากเลข 0 เป็น 1 และ เปลี่ยนจากเลข 1 เป็น 0) กับ magnitude แล้วบวกด้วยหนึ่ง เช่น สมมุติว่าใช้ จำนวนบิต 8 บิต แทนเลขจำนวน +5 และ –5 ได้เป็น และ เป็นต้น ถ้าใช้จำนวน n บิต จะแทนเลขจำนวนเต็มแบบมีเครื่องหมาย ได้ตั้งแต่ – (2n-1) ถึง +(2n-1- 1) เช่น n = 16 จะแทนเลขจำนวนเต็มมีเครื่องหมายได้ตั้งแต่ –32768 ถึง เป็นต้น โดยที่ 0 แทนด้วย +0 เท่านั้น

10 การแทนข้อมูลด้วยเลขฐานสิบหก (Hexadecimal Representation)
ใช้ตัวเลขฐานสอง 4 ตัวแทนด้วยตัวเลขฐานสิบหกหนึ่งตัว ดังนี้ ฐานสอง ฐานสิบหก ฐานสอง ฐานสิบหก A B C D E F เช่น ฐานสอง เท่ากับ C ฐานสิบหก


ดาวน์โหลด ppt CS Assembly Language Programming

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


Ads by Google