หน้าเว็บ

แสดงบทความที่มีป้ายกำกับ assembly แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ assembly แสดงบทความทั้งหมด

วันเสาร์ที่ 7 มกราคม พ.ศ. 2555

Big endian VS Little endian

        สมมติว่าเรามีแอดเดรสเป็นเลขฐาน 16 ดังนี้
0x00fc45c7
ข้อมูลนี้มีขนาด 4 ไบต์  เรียกว่า 1 WORD 

        Big endian byte order คือ  แอดเดรสที่มีความสำคัญสูงสุดหรือว่ามากที่สุดจะถูกเก็บก่อน
สมมติเราให้แสดงผลแอดเดรสทีละ 1 ไบต์  มันจะแสดงผลดังนี้
0x00  0xfc  0x45  0xc7

# สังเกตว่าไบต์  0x00 ซึ่งมีความสำคัญสูงสุดจะถูกเก็บก่อน

         Little endian byte order คือ  แอดเดรสที่มีความสำคัญต่ำสุดหรือว่าน้อยที่สุดจะถูกเก็บก่อน
มันจะแสดงผลดังนี้
0xc7  0x45  0xfc  0x00
สังเกตว่ามันจะสลับกันกับ Big endian

###หน่วยความจำของโปรเซสเซอร์  intel x86  จะเก็บแบบ   Little endian byte order  ***


ตัวอย่างการเก็บแบบ   Little endian byte order  
ทดสอบโดยใช้โปรแกรม gdb  ของ linux  (ทดสอบใน linux ubuntu 11.10  CPU intel core 2 duo P8400)



วันอังคารที่ 13 ธันวาคม พ.ศ. 2554

เขียนเพลง ด้วยภาษา Assembly

        อันนี้เป็นเพลงคล้ายๆ กับเพลงริงโทนของโทรศัพท์มือถือครับ  ซึ่งใช้ภาษา Assembly ในการเขียน
ด้วยการทำให้ลำโพง BIOS ดังเป็นจังหวะเพลงตามตัวโน๊ตที่เราได้เขียนลงไป



        งานนี้ผมเคยทำตอนที่เรียนอยู่ปี 2 และปี 3  ครับ  วิชา Assembly และวิชา Interface  อาจารย์ให้นำความรู้จากการที่ได้เรียน Assembly และ Interface มาเขียนเป็นเพลง   จะเขียนเพลงอะไรนั้นก็ตามใจเรา  ซึ่งผมเคยเขียนอยู่ 2 เพลงด้วยกัน  คือเพลง Numb ของ Linkin Park และเพลง Cannon Rock  มันสุดยอดมากเลยครับสองเพลงนี้  ผมชอบมากกกกกกกกก  ก็เลยตัดสินใจเอามาเขียนเป็นเพลง  เริ่มนอกเรื่องแล้ว ฮ่าๆๆๆๆๆ

เรามาดูโค๊ดกันเลยดีกว่าครับ  ต้องบอกก่อนว่า  มันเยอะมากกกกกกก