คำอธิบายของ Endian Big และสถาปัตยกรรม Endian เพียงเล็กน้อย

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 102025 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

เมื่อคอมพิวเตอร์ออกแบบ มีอยู่สอง architectures แตกต่างกันสำหรับการจัดการหน่วยความจำที่เก็บ ผู้เรียก Endian Big และ Endian เพียงเล็กน้อย และอ้างอิงไปยังใบสั่งที่ไบต์ถูกเก็บไว้ในหน่วยความจำ windows NT ได้รับการออกแบบรอบ ๆ สถาปัตยกรรม Endian เพียงเล็กน้อย และไม่ได้ถูกออกแบบมาเพื่อให้เข้ากันได้กับ Endian Big เนื่องจากการเขียนโปรแกรมส่วนใหญ่จะขึ้นกับการอ้างอิงบางอย่างบน Endian เพียงเล็กน้อย

ข้อมูลเพิ่มเติม

วลีสองเหล่านี้มาจาก "สิ้นสุด Big ใน" และ "เล็กน้อยจบใน ให้อ้างอิงถึงวิธีการที่เก็บหน่วยความจำ บนคอมพิวเตอร์ที่ Intel จุดสิ้นสุดเพียงเล็กน้อยถูกเก็บไว้ก่อน ซึ่งหมายความว่า คำสั่งฐานสิบหกที่เหมือนกับ 0x1234 ถูกเก็บในหน่วยความจำเป็น (0x34 0x12) เพียงเล็กน้อยสิ้นสุด หรือสิ้นสุดล่าง ถูกเก็บไว้ก่อน เหมือนกันเป็นจริงสำหรับค่าไบต์สี่ ตัวอย่างเช่น 0x12345678 จะถูกเก็บไว้เป็น (0x78 0x56 0x34 0x12) "สิ้นสุด Big เป็น" ไม่นี้ในต้องย้อนกลับ เพื่อ 0x1234 จะถูกเก็บไว้เป็น (0x12 0x34) ในหน่วยความจำ นี้เป็นวิธีใช้งาน โดยคอมพิวเตอร์ Motorola และยังสามารถใช้ในคอมพิวเตอร์ที่ใช้ RISC คอมพิวเตอร์ที่ใช้ RISC MIPS และคอมพิวเตอร์ DEC Alpha ถูกจัดโครงแบบสำหรับ Endian Big หรือ Endian เพียงเล็กน้อย windows NT ทำงานเฉพาะในโหมด Endian เพียงเล็กน้อยบนคอมพิวเตอร์ทั้งสองเครื่อง

windows NT ไม่ได้รับการออกแบบรอบ ๆ สถาปัตยกรรม Endian เพียงเล็กน้อย ฮาร์ดแวร์ Abstraction Layer (HAL) ถูกเขียนลงเพื่อให้มีจัดการปัญหาที่เกี่ยวข้องกับระบบปฏิบัติการทั้งหมดโดยอัตโนมัติ ดังนั้น จากนี้คุณยังสามารถสร้าง HAL ที่อาจทำงานบนสถาปัตยกรรม Endian Big ปัญหาพื้นฐาน ด้วย porting รหัสได้ทำกับวิธีรหัสถูกเขียนขึ้นสำหรับโปรแกรมทั้งหมด มักจะมีเขียนรหัส ด้วย assumption ที่ว่า Endian Big หรือเพียงเล็กน้อย Endian กำลังถูกใช้ ซึ่งอาจไม่ได้ระบุ HAL อาจเป็นเหตุการณ์เป็นปกติเป็น masking บิตสำหรับกราฟิก clarify แนวคิดนี้เพิ่มเติม ตัวอย่างการเขียนโปรแกรมที่สองตามด้วย

ตัวอย่างที่ 1

   struct
   {
      WORD y;
      WORD x;
   } POS;

   lparam = (DWORD) POS;
				
basically คือ assumption ในรหัสว่า Endian เพียงเล็กน้อยมีการใช้ การสลับไบต์มีการสันนิษฐานในโครงสร้าง 'C' ซึ่งจะเร็วบนสถาปัตยกรรม Intel แต่จะไม่ได้มีการทำงานกับ Endian Big

ตัวอย่างที่ 2

ตัวอย่างอื่นเป็นวิธีปฏิบัติที่พบโดยทั่วไปของการใช้ masks บิต ต่อไปนี้คือ ตัวอย่างของการกำหนดรูปแบบการบิตที่ใช้งาน:
   #define BITMASK    0x0008
				
ซึ่งช่วยให้คุณตรวจสอบถ้าบิตที่ 4 การ ถ้าที่ 1 คุณ AND จะ มีหมายเลขอื่น โปรแกรมยังอนุญาตให้คุณสามารถตั้งค่าที่ 4 บิต โดย OR ing นั้น มีค่าอื่น ปัญหามาเมื่อคุณ OR หรือ AND นี้ ด้วย DWORD (สอง Word) หรืออย่างอื่นที่ไม่ใช่คำค่าขนาด ซึ่งทำให้สิ่งที่ผิดปกติจะเกิดขึ้นและผลลัพธ์ที่ไม่คาดคิด คุณอาจสร้างสมมติฐานเกี่ยวกับวิธีดังกล่าวทำงานกับ Endian เพียงเล็กน้อย ได้นั้นจะไม่ทำงานในลักษณะเดียวกับ Endian Big ได้มีสร้างรหัสจำนวนมาก ด้วยสมมติฐานเหล่านี้อยู่แล้วภายใน

โปรดสังเกตว่า chips PowerPC และ Sparc ยัง switchable ระหว่าง Endian เพียงเล็กน้อยและ Endian Big อย่างไรก็ตาม การใช้งานของ Apple PowerMac ของชิปเซ็ต PowerPC จะติดอยู่ในโหมด Endian Big hence, Windows NT อาจพอร์ต PowerPC แต่ การใช้งาน PowerMac ของ PowerPC อาจไม่

คุณสมบัติ

หมายเลขบทความ (Article ID): 102025 - รีวิวครั้งสุดท้าย: 6 มกราคม 2554 - Revision: 3.0
ใช้กับ
  • Microsoft Windows NT Workstation 3.1
Keywords: 
kbhardware kbmt KB102025 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:102025

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com