10
CS344-321 Assembly Language Programming Period 4

CS344-321 Assembly Language Programming

Embed Size (px)

DESCRIPTION

CS344-321 Assembly Language Programming. Period 4. ระบบตัวเลข ( Number Systems). ระบบตัวเลขฐานสอง (binary number system) ประกอบด้วย 0, 1 ระบบตัวเลขฐานแปด (octal number system) ประกอบด้วย 0, 1, 2, …, 7 ระบบตัวตัวเลขฐานสิบ (decimal number system) ประกอบด้วย 0, 1, 2, …, 9 - PowerPoint PPT Presentation

Citation preview

Page 1: CS344-321 Assembly Language Programming

- 344321CS Assembl y Language

Programmi ng

4Period

Page 2: CS344-321 Assembly Language Programming

ระบบตั�วเลขฐานสอง ระบบตั�วเลขฐานสอง (binary number system) (binary number system)

ประกอบด้�วย ประกอบด้�วย 0, 10, 1

ระบบตั�วเลขฐานแปด้ ระบบตั�วเลขฐานแปด้ (octal number system) (octal number system)

ประกอบด้�วย ประกอบด้�วย 0, 1, 2, …, 70, 1, 2, …, 7

ระบบตั�วตั�วเลขฐานส�บ ระบบตั�วตั�วเลขฐานส�บ (decimal number system) (decimal number system)

ประกอบด้�วย ประกอบด้�วย 0, 1, 2, …, 90, 1, 2, …, 9

ระบบตั�วเลขฐานส�บหก ระบบตั�วเลขฐานส�บหก (hexadecimal number (hexadecimal number system) system)

ประกอบด้�วย ประกอบด้�วย 0, 1, 2, …, 9, A, B, C, D, E, F0, 1, 2, …, 9, A, B, C, D, E, F

Page 3: CS344-321 Assembly Language Programming

การเปล��ยนจากเลขฐานสองให�เป�นเลขฐานส�บการเปล��ยนจากเลขฐานสองให�เป�นเลขฐานส�บ

ใช้�ส ตัรใช้�ส ตัร

(b(bnnb b n-1n-1 … b … b22bb11bb00.b.b-1-1bb-2-2 …b …b-m-m))2 2 = (b= (bnn22nn+b +b n-1n-1 2 2n-1 n-1

+ … + b+ … + b222222 + b + b112211+b+b00 + b + b-1-122-1-1 +b +b-2-2 2 2-2-2 + … + b + … + b--

mm22-m-m))1010

เช้!น เช้!น (101101.1011)(101101.1011)22 = (2 = (255 + 0 + 1*2 + 0 + 1*233 +2 +222 + 0 + 0 + 1 + 2+ 1 + 2-1-1 + 0 + 2 + 0 + 2-3-3 + 2 + 2-4-4))1010 = (45.6875) = (45.6875)1010

หมายเหตัหมายเหตัุ การเปล��ยนจากเลขฐานแปด้หร$อส�บหกให�เป�นเลขุ การเปล��ยนจากเลขฐานแปด้หร$อส�บหกให�เป�นเลขฐานส�บฐานส�บ ใช้�ส ตัรเหม$อนก�น แตั!เปล��ยนจาก ใช้�ส ตัรเหม$อนก�น แตั!เปล��ยนจาก 2 2 เป�น เป�น 8 8 และ และ 16 16 ตัามล%าด้�บ โด้ยแทน ตัามล%าด้�บ โด้ยแทน A, B, C, D, E, F A, B, C, D, E, F ด้�วย ด้�วย 10, 11, 12, 10, 11, 12, 13, 14, 15 13, 14, 15 ตัามล%าด้�บตัามล%าด้�บ

Page 4: CS344-321 Assembly Language Programming

การเปล��ยนตั�วเลขหน�าจุด้ จากเลขฐานส�บให�เป�นเลขฐานสองการเปล��ยนตั�วเลขหน�าจุด้ จากเลขฐานส�บให�เป�นเลขฐานสอง ให�ใช้� ให�ใช้� 2 2 หาร ไปเร$�อย จนได้�ผลล�พธ์,เป�น หาร ไปเร$�อย จนได้�ผลล�พธ์,เป�น 0 0 ขณะท��หารให�จด้จ%าเศษท��ได้� น%าขณะท��หารให�จด้จ%าเศษท��ได้� น%าเศษท��ได้�จากการหารมาเร�ยงตัามล%าด้�บ เร��มจากเศษท��ได้�คร�1งสดุ้ท�ายเร�ยงเศษท��ได้�จากการหารมาเร�ยงตัามล%าด้�บ เร��มจากเศษท��ได้�คร�1งสดุ้ท�ายเร�ยงไปย�งเศษท��ได้�จากการหารคร�1งแรกไปย�งเศษท��ได้�จากการหารคร�1งแรก

เช้!น เช้!น 2 ) 1232 ) 123 61 61 เศษ เศษ 11 30 30 เศษ เศษ 11 15 15 เศษ เศษ 00 77 เศษเศษ 11 33 เศษเศษ 11 11 เศษเศษ 11

00 เศษเศษ 11

(123)(123)1010 = (1111011) = (1111011)22

หมายเหตัุหมายเหตัุ การเปล��ยนตั�วเลขหน�าจุด้ จากเลขฐานส�บให�เป�นเลขฐานแปด้ การเปล��ยนตั�วเลขหน�าจุด้ จากเลขฐานส�บให�เป�นเลขฐานแปด้หร$อส�บหกหร$อส�บหก ใช้�ส ตัรเหม$อนก�น แตั!เปล��ยนจากการหารด้�วย ใช้�ส ตัรเหม$อนก�น แตั!เปล��ยนจากการหารด้�วย 2 2 เป�นการหารเป�นการหารด้�วย ด้�วย 8 8 และ และ 16 16 ตัามล%าด้�บ โด้ยแทนเศษ ตัามล%าด้�บ โด้ยแทนเศษ 10, 11, 12, 13, 14, 15 10, 11, 12, 13, 14, 15 ด้�วย ด้�วย A, B, C, D, E, F A, B, C, D, E, F ตัามล%าด้�บตัามล%าด้�บ

Page 5: CS344-321 Assembly Language Programming

การเปล��ยนตั�วเลขหล�งจุด้ จากเลขฐานส�บให�เป�นเลขฐานสองการเปล��ยนตั�วเลขหล�งจุด้ จากเลขฐานส�บให�เป�นเลขฐานสอง ให�ค ณตั�วเลขท��อย !หล�งจุด้ท�1งหมด้ด้�วย ให�ค ณตั�วเลขท��อย !หล�งจุด้ท�1งหมด้ด้�วย 2 2 ไปเร$�อย ๆ จนกว!าจะได้�ผลล�พธ์,ไปเร$�อย ๆ จนกว!าจะได้�ผลล�พธ์,เป�นศ นย, หร$อได้�จ%านวนตั�วเลขหล�งจุด้ทศน�ยมตัามท��ตั�องการ แล�วน%าเลขเป�นศ นย, หร$อได้�จ%านวนตั�วเลขหล�งจุด้ทศน�ยมตัามท��ตั�องการ แล�วน%าเลขหน�าจุด้ท��ได้�จากการค ณแตั!ละคร�1ง มาเร�ยงก�นหน�าจุด้ท��ได้�จากการค ณแตั!ละคร�1ง มาเร�ยงก�นเช้!น เช้!น (0.6875)(0.6875)1010 = (0 . 1 0 1 1 ) = (0 . 1 0 1 1 )22 .6875.6875 * 2* 2 1.3750 1.3750 .3750.3750 * 2* 2 0.75000.7500 .7500.7500 * 2* 2 1.50001.5000 .5000.5000 * 2* 2 1.00001.0000 .0000.0000หมายเหตั ุหมายเหตั ุการเปล��ยนตั�วเลขหล�งจุด้ จากเลขฐานส�บให�เป�นเลขฐานแปด้การเปล��ยนตั�วเลขหล�งจุด้ จากเลขฐานส�บให�เป�นเลขฐานแปด้หร$อส�บหกหร$อส�บหก ใช้�ส ตัรเหม$อนก�น แตั!เปล��ยนจากการค ณด้�วย ใช้�ส ตัรเหม$อนก�น แตั!เปล��ยนจากการค ณด้�วย 2 2 เป�นการค ณเป�นการค ณด้�วย ด้�วย 8 8 และ และ 16 16 ตัามล%าด้�บ ตัามล%าด้�บ

Page 6: CS344-321 Assembly Language Programming

แทนอ�กขระ หน3�งตั�ว ม�สองแบบ ค$อ แทนอ�กขระ หน3�งตั�ว ม�สองแบบ ค$อ - - ASCII (ASCII (ใช้� ใช้� 7 7 บ�ตั แทนรห�ส และ บ�ตั แทนรห�ส และ parity 1 parity 1 บ�ตัใช้�ตัรวจบ�ตัใช้�ตัรวจสอบสอบ) ) ด้ ด้ appendix Dappendix D - EBCDIC (- EBCDIC (ใช้�ท�1ง ใช้�ท�1ง 8 8 บ�ตั แทนรห�สบ�ตั แทนรห�ส))

แทนเลขจ%านวนเตั4มท�1งแบบท��ม�เคร$�องหมาย และแบบท��ไม!ม�แทนเลขจ%านวนเตั4มท�1งแบบท��ม�เคร$�องหมาย และแบบท��ไม!ม�เคร$�องหมาย เคร$�องหมาย

-กรณ�ไม!ม�เคร$�องหมาย ถ้�าใช้�จ%านวนบ�ตั กรณ�ไม!ม�เคร$�องหมาย ถ้�าใช้�จ%านวนบ�ตั n n บ�ตั จะแทนบ�ตั จะแทนเลขจ%านวนเตั4มไม!ม�เคร$�องหมายได้� ตั�1งแตั! เลขจ%านวนเตั4มไม!ม�เคร$�องหมายได้� ตั�1งแตั! 0 0 ถ้3ง ถ้3ง 22nn-1 -1 เช้!น เช้!น n = 16 n = 16 จะแทนเลขจ%านวนเตั4มได้�ตั�1งแตั! จะแทนเลขจ%านวนเตั4มได้�ตั�1งแตั! 0 0 ถ้3ง ถ้3ง 65535 65535 เป�นตั�นเป�นตั�น

-กรณ�ม�เคร$�องหมาย สามารถ้แทนได้�ในสามร ปแบบ ค$อกรณ�ม�เคร$�องหมาย สามารถ้แทนได้�ในสามร ปแบบ ค$อ

Page 7: CS344-321 Assembly Language Programming

กก . . sign magnitudesign magnitude ใช้�บ�ตัซ้�ายสดุ้ ใช้�บ�ตัซ้�ายสดุ้ (most (most significant bit) significant bit) แทนเคร$�องหมาย แทนเคร$�องหมาย โด้ยท�� โด้ยท�� 0 0 แทนเคร$�องหมายบวก และ แทนเคร$�องหมายบวก และ 1 1 แทนเคร$�องหมายลบแทนเคร$�องหมายลบ บ�ตัท��เหล$อใช้�แทนขนาด้ของตั�วเลขบ�ตัท��เหล$อใช้�แทนขนาด้ของตั�วเลข most significant bit most significant bit least significant bit least significant bit n-1 n-2 … 2 1 n-1 n-2 … 2 1 0 0

sign magnitudesign magnitude

เช้!น สมมุตั�ว!าใช้� จ%านวนบ�ตั เช้!น สมมุตั�ว!าใช้� จ%านวนบ�ตั 8 8 บ�ตั แทนเลขจ%านวนบ�ตั แทนเลขจ%านวน +5 +5 และ และ ––55 ได้�เป�นได้�เป�น 00000101 00000101 และ และ 10000101 10000101 เป�นตั�นเป�นตั�น

ถ้�าใช้�จ%านวน ถ้�าใช้�จ%านวน n n บ�ตั จะแทนเลขจ%านวนเตั4มแบบม�เคร$�องหมาย ได้�บ�ตั จะแทนเลขจ%านวนเตั4มแบบม�เคร$�องหมาย ได้�ตั�1งแตั! ตั�1งแตั! –– (2(2n-1n-1 –– 1) 1) ถ้3ง ถ้3ง +(2+(2n-1n-1- 1)- 1)

เช้!น เช้!น n = 16 n = 16 จะแทนเลขจ%านวนเตั4มม�เคร$�องหมายได้�ตั�1งแตั! จะแทนเลขจ%านวนเตั4มม�เคร$�องหมายได้�ตั�1งแตั! ––32767 32767 ถ้3ง ถ้3ง +32767 +32767 เป�นตั�นเป�นตั�น โด้ยท�� โด้ยท�� 0 0 แทนได้�ท�1ง แทนได้�ท�1ง +0 +0 และ และ ––00

Page 8: CS344-321 Assembly Language Programming

ขข.. one complementone complement ใช้�บ�ตัซ้�ายสดุ้ ใช้�บ�ตัซ้�ายสดุ้ (most (most significant bit) significant bit) แทนเคร$�องหมาย แทนเคร$�องหมาย โด้ยท�� โด้ยท�� 0 0 แทนเคร$�องหมายบวก และ แทนเคร$�องหมายบวก และ 1 1 แทนแทนเคร$�องหมายลบ เช้!นก�น เคร$�องหมายลบ เช้!นก�น การแทนเลขบวก จะเหม$อนก�บแบบ การแทนเลขบวก จะเหม$อนก�บแบบ sign sign magnitude magnitude แตั!การแทนตั�วเลขลบ จะตั!างก�น แตั!การแทนตั�วเลขลบ จะตั!างก�น แบบ แบบ one complement one complement จะแทนตั�วเลขลบโด้ยจะแทนตั�วเลขลบโด้ยการ ท%า การ ท%า complement (complement (เปล��ยนจากเลข เปล��ยนจากเลข 0 0 เป�น เป�น 1 1 และ เปล��ยนจากเลข และ เปล��ยนจากเลข 1 1 เป�น เป�น 0) 0) ก�บ ก�บ magnitude magnitude เช้!น สมมุตั�ว!าใช้� จ%านวนบ�ตั เช้!น สมมุตั�ว!าใช้� จ%านวนบ�ตั 8 8 บ�ตั แทนเลขจ%านวนบ�ตั แทนเลขจ%านวน +5 +5 และ และ ––55 ได้�เป�นได้�เป�น 00000101 00000101 และ และ 11111010 11111010 เป�นตั�นเป�นตั�น ถ้�าใช้�จ%านวน ถ้�าใช้�จ%านวน n n บ�ตั จะแทนเลขจ%านวนเตั4มแบบม�บ�ตั จะแทนเลขจ%านวนเตั4มแบบม�เคร$�องหมาย ได้�ตั�1งแตั! เคร$�องหมาย ได้�ตั�1งแตั! –– (2(2n-1n-1 –– 1) 1) ถ้3ง ถ้3ง +(2+(2n-1n-1- 1)- 1)

เช้!น เช้!น n = 16 n = 16 จะแทนเลขจ%านวนเตั4มม�เคร$�องหมายจะแทนเลขจ%านวนเตั4มม�เคร$�องหมายได้�ตั�1งแตั! ได้�ตั�1งแตั! ––32767 32767 ถ้3ง ถ้3ง +32767 +32767 เป�นตั�นเป�นตั�น โด้ยท�� โด้ยท�� 0 0 แทนได้�แทนได้�ท�1ง ท�1ง +0 +0 และ และ ––00

Page 9: CS344-321 Assembly Language Programming

คค.. two complementtwo complement ใช้�บ�ตัซ้�ายสดุ้ ใช้�บ�ตัซ้�ายสดุ้ (most (most significant bit) significant bit) แทนเคร$�องหมาย โด้ยท�� แทนเคร$�องหมาย โด้ยท�� 0 0 แทนแทนเคร$�องหมายบวก และ เคร$�องหมายบวก และ 1 1 แทนเคร$�องหมายลบ เช้!นก�น แทนเคร$�องหมายลบ เช้!นก�น การแทนเลขบวก จะเหม$อนก�บแบบ การแทนเลขบวก จะเหม$อนก�บแบบ sign sign magnitude magnitude แตั!การแทนตั�วเลขลบ จะตั!างก�น แตั!การแทนตั�วเลขลบ จะตั!างก�น แบบแบบ two complement two complement จะแทนตั�วเลขลบโด้ยจะแทนตั�วเลขลบโด้ยการ ท%า การ ท%า complement (complement (เปล��ยนจากเลข เปล��ยนจากเลข 0 0 เป�น เป�น 1 1 และ เปล��ยนจากเลข และ เปล��ยนจากเลข 1 1 เป�น เป�น 0) 0) ก�บ ก�บ magnitude magnitude แล�วแล�วบวกด้�วยหน3�งบวกด้�วยหน3�ง เช้!น สมมุตั�ว!าใช้� จ%านวนบ�ตั เช้!น สมมุตั�ว!าใช้� จ%านวนบ�ตั 8 8 บ�ตั แทนบ�ตั แทนเลขจ%านวนเลขจ%านวน +5 +5 และ และ ––55 ได้�เป�นได้�เป�น 00000101 00000101 และ และ 11111011 11111011 เป�นตั�นเป�นตั�น ถ้�าใช้�จ%านวน ถ้�าใช้�จ%านวน n n บ�ตั จะแทนเลขจ%านวนเตั4มแบบม�บ�ตั จะแทนเลขจ%านวนเตั4มแบบม�เคร$�องหมาย ได้�ตั�1งแตั! เคร$�องหมาย ได้�ตั�1งแตั! –– (2(2n-1n-1) ) ถ้3ง ถ้3ง +(2+(2n-1n-1- 1)- 1)

เช้!น เช้!น n = 16 n = 16 จะแทนเลขจ%านวนเตั4มม�เคร$�องหมายได้�จะแทนเลขจ%านวนเตั4มม�เคร$�องหมายได้�ตั�1งแตั! ตั�1งแตั! ––32768 32768 ถ้3ง ถ้3ง +32767 +32767 เป�นตั�นเป�นตั�น โด้ยท�� โด้ยท�� 0 0 แทนด้�วยแทนด้�วย +0+0 เท!าน�1นเท!าน�1น

Page 10: CS344-321 Assembly Language Programming

ใช้�ตั�วเลขฐานสอง 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 ฐานส�บหก