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

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

CS344-321 Assembly Language Programming Period 4.

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


งานนำเสนอเรื่อง: "CS344-321 Assembly Language Programming Period 4."— ใบสำเนางานนำเสนอ:

1 CS344-321 Assembly Language Programming Period 4

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

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

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

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

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

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

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

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

10 ใช้ตัวเลขฐานสอง 4 ตัวแทนด้วยตัวเลขฐานสิบหกหนึ่งตัว ดังนี้ ฐานสองฐานสิบหก ฐานสอง ฐานสิบหก 0000 0 1010 A 0001 1 1011 B 0010 2 1100 C 0011 3 1101 D 0100 4 1110 E 0101 5 1111 F 0110 6 0111 7 1000 8 1001 9 เช่น 0000 0011 1100 0011 ฐานสอง เท่ากับ 0 3 C 3 ฐานสิบหก


ดาวน์โหลด ppt CS344-321 Assembly Language Programming Period 4.

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


Ads by Google