มีข้อสงสัยว่าบทความนี้อาจละเมิดลิขสิทธิ์ แต่ระบุไม่ได้ชัดเจนเพราะขาด หรืออ้างถึงสิ่งพิมพ์ที่ยังตรวจสอบไม่ได้ หากแสดงได้ว่าบทความนี้ละเมิดลิขสิทธิ์ ให้แทนป้ายนี้ด้วย {{}} หากคุณมั่นใจว่าบทความนี้ไม่ได้ละเมิดลิขสิทธิ์ ให้แสดงหลักฐาน โปรดอย่านำป้ายนี้ออกก่อนมีข้อสรุป |
สถาปัตยกรรมไมโคร (อังกฤษ: microarchitecture) เป็นลักษณะของ เครื่องคอมพิวเตอร์ส่วนใหญ่ที่มีการใช้งานมาตั้งแต่ยุคเริ่มต้น จนถึงยุคปัจจุบัน ได้รับการออกแบบโครงสร้างและการทำงานโดยจอนวอนนิวแมน(John Von Neumann ) ซึ่งเป็นผู้นำในการออกแบบเครื่องคอมพิวเตอร์ โดยเครื่องคอมพิวเตอร์ ที่เขาได้ออกแบบ มีส่วนประกอบที่สำคัญ 3 อย่างด้วยกันคือ หน่วยประมวลผลกลาง (Central Processing Unit), หน่วยความจำ (Main Memory) และ หน่วยเชื่อมต่ออุปกรณ์ภายนอก (Input/Output) สำหรับไมโครโปรเซสเซอร์ ในตระกูล x86 ออกแบบโดยใช้หลักการเดียวกันกับที่ วอนนิวแมนได้กำหนดไว้ กล่าวคือ การประมวลผลทั้งหมด ที่หน่วยประมวลผลกลาง สำหรับข้อมูล ไม่ว่าจะเป็นข้อมูลที่ใช้สำหรับประมวลผล หรือข้อมูลที่เป็นคำสั่งก็ตาม จะถูกเก็บไว้ในหน่วยความจำจนกว่าจะมีการเรียกใช้งานจากหน่วยประมวลผลกลาง สำหรับส่วนต่อเชื่อมกับอุปกรณ์ภายนอกนั้น การทำงานของหน่วยประมวลผลกลางก็จะคล้ายกับการทำงานกับหน่วยความจำ ทั้งนี้เพราะทั้งหน่วยความจำและอุปกรณ์ภายนอก เมื่อมีการทำงานกับหน่วยประมวลผลกลางก็มีลักษณะของการเรียกใช้ข้อมูลและนำข้อมูลไปเก็บ ต่างกันเพียงสถานที่ และ วิธีการเข้าถึงเท่านั้น บัสของระบบ หน่วยงานต่าง ๆ ภายในเครื่องคอมพิวเตอร์นั้น ต่อเชื่อเข้าด้วยกันดัวยระบบบัส สำหรับโปรเซสเซอร์ในตระกูล 80x86 มีด้วยกัน 3 กลุ่มอันได้แก่ ดาตาบัส แอดเดรสบัส และคอมโทรลบัส ดังรายละเอียดต่อไปนี้
ดาต้าบัส
เป็นสายนำสัญญาณข้อมูลของระบบ โดยมีทั้งขนาด 8 บิต , 16 บิต , 32 บิต และ 64 บิต ทั้งนี้ขึ้นอยู่กับรุ่นของไมโครโปรเซสเซอร์เอง ในกรณีนี้จำนวนสายสัญญาณของระบบบัส ไม่ได้เป็นข้อกำหนดขนาดความสามารถของตัวโปรเซสเซอร์ เช่น ในกรณีของ 80x88 มีขนาดของบัสเป็น 8 บิต ก็ไม่ได้หมายความว่า สามารถประมวลผลขนาด 8 บิต เป็นแต่เพียงว่าใน 1 จังหวะสัญญาณนาฬิกาจะ รับ-ส่ง ข้อมูลขนาด 8 บิต ดังนั้นเพื่อให้การรับส่งข้อมูลครบทั้ง 16 บิตก็ต้องใช้สัญญาณนาฬิกาจำนวน 2 ครั้งนั่นเอง ขนาดของดาต้าบัสแสดงในตาราง
แอดเดรสบัส
เป็นระบบบัสที่ใช้เพื่อส่งข้อมูลเพื่อกำหนดตำแหน่งของหน่วยความจำ และอุปกรณ์ภายนอก โดยที่แอดเดรสบัส กำหนดที่อยู่ และ ดาต้าบัสเป็นเส้นทางนำเข้าและส่งออกข้อมูลประมวลผล โดยที่จำนวนของ สายสัญญาณของแอดเดรสบัส จะเป็นตัวบอกถึงความสามารถในการระบุตำแหน่งที่ไมโครโปรเซสเซอร์สามารถกำหนดได้ดังในตาราง
โปรเซสเซอร์จำนวนของบัสหน่วยความจำสูงสุดหน่วย 8088201.048,5761 MB 80188201,048,5761 MB 8086201,048,5761 MB 80186201,048,5761 MB 802862416,777,21616 MB 80386SX2416,777,21616 MB 80386DX324,294,976,2964 GB 80486324,294,976,2964 GB 80586324,294,976,2964 GB
บัสควบคุมการทำงาน
เป็นระบบสายสัญญาณที่ควบคุมการทำงานทั้งหมดของระบบ โดยมีจำนวนสายที่ไม่เท่ากันในแต่ละ โปรเซสเซอร์ ซึ่งขึ้นอยู่กับการออกแบบของโปรเซสเซอร์เหล่านั้น และหน้าที่ของสายสัญญาณแต่ละเส่นก็จะแตกต่างกันออกไป เช่น ในการอ่าน และ บันทึกข้อมูลไปยังหน่วยงานต่าง ๆ ก็จะมีข้อมูล รับ-ส่ง กันไปมา แล้วจะทราบได้อย่างไรว่าขณะนี้กำลังอ่านข้อมูลจากหน่วยความจำ หรือว่ากำลังนำเอาข้อมูลไปเขียนเก็บไว้ในหน่วยความจำ ดังนั้นจึงต้องมีสายสัญญาณที่กำหนดว่า กำลัง อ่าน (read) หรือ เขียน (write) ข้อมูล เป็นต้น สำหรับเครื่องไมโครคอมพิวเตอร์โดยทั่ว ๆ ไปที่ใช้งานในปัจจุบัน ไม่ว่าจะเป็นเครื่อง IBM PC และ Compatible จะใช้ไมโครโปรเซสเซอร์ตระกูล 80x86 ของบริษัท Intel ซึ่ง เริ่มจาก 8086 , 80286 , 80386 , 80486 และเป็น Pentium ในปัจจุบัน ดังนั้นจึงเป็นการเหมาะสมอย่างมากที่จะใช้เพื่อการศึกษาการเขียนโปรแกรมภาษา Assembly โดยอ้างอิงกับไมโครโปรเซสเซอร์ของ Intel เนื่องจากมีใช้อย่างแพร่หลาย ถึงแม้ว่าจะมีไมโครโปรเซสเซอร์ของผู้ผลิตรายอื่น ๆ บ้าง เช่น ของบริษัท AMD แต่เราก็ยังสามารถใช้คำสั่งชุดเดียวกับที่ใช้กับ ไมโครโปรเซสเซอร์ของบริษัท INTEL ได้ สำหรับการศึกษาในรหัสวิชานี้จะศึกษาเฉพาะการทำงานในแบบ real mode เท่านั้น คือพิจารณาในส่วนของโปรเซสเซอร์ 8086 หรือ 8088 โดยจะศึกษาโครงสร้างรายละเอียดของ เรจิสเตอร์ ซึ่งอยู่ภายในไมโครโปรเซสเซอร์ ซึ่งมีหน้าที่ในการจัดเก็บข้อมูล โดยการจัดแบ่งกลุ่มของ เรจิสเตอร์ นั้นไปตามหน้าที่ของการทำงานของ เรจิสเตอร์ แต่ละตัวดังรายละเอียดต่อไปนี้ 3.2.Data เรจิสเตอร์ เป็น เรจิสเตอร์ ที่ใช้เก็บข้อมูลทั่วไป ถึงแม้ว่าในการทำงานของระบบคอมพิวเตอร์ จะสามารถใช้หน่วยความจำเป็นที่เก็บข้อมูลได้ แต่ว่าการประมวลผลนั้นจะเกิดขึ้นภายในตัวไมโครโปรเวสเซอร์ ดังนั้นจึงต้องใช้ เรจิสเตอร์ ที่อยู่ภายในตัวไมโครโปรเซสเซอร์เป็นที่เก็บข้อมูลและทำให้การประมวลผลมีความเร็วสูงขึ้น สำหรับ เรจิสเตอร์ ที่ใช้ประมวลผลทั่วไป เป็นขนาด 16 บิต มีจำนวน 4 ตัว คือ AX , BX , CX และ DX ทั้งนี้ เรจิสเตอร์ ทั้ง 4 ตัวนี้ สามารถที่จะใช้งานครั้งละ 8 บิตได้โดยแบ่งใช้งานทีละครึ่ง โดยมีชื่อเรียกใช้งานเป็น AH และ AL และสำหรับ เรจิสเตอร์ ที่เหลืออีก 3 ตัว จะมีวิธีการเรียกชื่อในทำนองเดียวกัน โดย เรจิสเตอร์ AH เป็นการใช้ เรจิสเตอร์ บิตที่ 8-15 และ AL เป็นการใช้ เรจิสเตอร์ บิตที่ 0-7 ดังแสดงในรูปที่ 3.1 สำหรับ เรจิสเตอร์ ทั้ง 4 ตัวนี้ เป็นแบบใช้งานทั่วไป แต่บางกรณีอาจนำไปใช้เป็นกรณีเฉพาะด้วยเช่น
15 8 7 0 AX AHAL BX BHBL CX CHCL DX DHDL รูปที่ 3.1 แสดงรายละเอียดของเรจิสเตอร์แต่ละตัว 3.2.1.เรจิสเตอร์ AX ( Accumulator เรจิสเตอร์) ใช้เป็น เรจิสเตอร์ ที่ใช้ในการประมวลผลคำสั่งทางคณิตศาสตร์ เช่น บวก ลบ คูณ หาร และ การกระทำทางลอจิค นอกจากนี้ยังใช้ในการโอนย้ายข้อมูลด้วยเนื่องจากใช้คำสั่งที่สั้น และยังใช้งานกับกลุ่มคำสั่ง อินพุทและเอาต์พุต 3.2.2.เรจิสเตอร์ BX ( Base เรจิสเตอร์ ) ใช้เพื่อเป็น เรจิสเตอร์ เก็บข้อมูลชนิดที่อยู่ (Address เรจิสเตอร์) เช่นกลุ่มคำสั่งในการค้นหาข้อมูลในตาราง 3.2.3.เรจิสเตอร์ CX ( Counter เรจิสเตอร์ ) .ใช้เพื่อเป็นตัวนับจำนวนรอบของการทำงานของโปรแกรมที่มีลักษณะเป็นวงรอบ 3.2.4.เรจิสเตอร์ DX (Data เรจิสเตอร์ ) ใช้กับกลุ่มคำสั่งคูณและหาร และกับคำสั่งอินพุทและเอาต์พุต สำหรับหน้าที่ต่าง ๆ ที่กล่าวมาแล้วสำหรับเรจิสเตอร์แต่ละตัวนั้น ยังทำหน้าที่หลัก ๆ ที่เหมือนกันอย่างหนึ่งคืก ใช้เพื่อการเก็บข้อมูลชั่วคราวด้วย 3.2.5.เซ็กเมนต์ เรจิสเตอร์ ในการดำเนินการที่ติดต่อกับหน่วยความจำนั้น สำหรับไมโครโปรเซสเซอร์ในตระกูล 8088 นั้นมีจำนวน address bus ขนาด 20 บิต นั่นหมายความว่า สามารถเข้าถึงหน่วยความจำได้ขนาด 1 MB แต่เนื่องจาก เรจิสเตอร์ ภายในทั่งหมดนั้นมีขนาดเพียง 16 บิต ทำให้ไม่สามารถ address ข้อมูลในหน่วยความจำได้โดยตรง จึงต้องมีการจัดเนื้อที่ของหน่วยความจำออกเป็นส่วน ๆ เรียกว่า เซ็กเมนต์ โดยจะใช้ เรจิสเตอร์ จำนวน 2 ตัวในการอ้างถึงหน่วยความจำในแต่ละตำแหน่ง โดย เรจิสเตอร์ ตัวหนึ่งทำหน้าที่เป็นตัวกำหนด เซ็กเมนต์ และ เรจิสเตอร์ อีกตัวหนึ่งทำหน้าที่กำหนดค่าของ offset ทำให้การอ้างถึงข้อมูลจึงมีลักษณะเป็น logical address เช่น 1000:2000 ค่าตัวเลข 1000 หมายถึงส่วนของ เซ็กเมนต์ และค่าตัวเลข 2000 หมายถึงส่วนของ offset แต่หากพิจารณาดู จะพบว่า จำนวนบิตของข้อมูลเกิน 20 บิต ดังนั้นในการอ้าง address ที่ถูกต้องจึงได้จากการคำนวณค่าระหว่าง เซ็กเมนต์ และ offset ดังนี้
10000 + 2000 12000 มีขนาด 20 บิต ตรงกับ Physical address
ไมโครโปรเซสเซอร์ 8088 มี เซ็กเมนต์ เรจิสเตอร์ จำนวน 4 ตัว คือ Code เซ็กเมนต์ (CS) , Data เซ็กเมนต์ (DS) , Stack เซ็กเมนต์ (SS) และ Extra เซ็กเมนต์ (ES) ซึ่ง เรจิสเตอร์ ทั้ง 4 ตัวจะมีหน้าที่การทำงานที่แตกต่างกันออกไป และรับผิดชอบในการดูแลข้อมูลแต่ละกลุ่ม เรจิสเตอร์ทั้ง 4 ตัวนี้มีขนาดเป็น 16 บิต และขนาดของหน่วยความจำที่ไมโครโปรเซสเซอร์สามารถใช้งานได้ใน real mode มีขนาด 1 MB ทำให้มีจำนวน เซ็กเมนต์ ทั้งสิ้น 64 K เซ็กเมนต์ และในแต่ละ เซ็กเมนต์ จะสามารถ address ข้อมูลได้ 64 KB ในการ address หน่วยความจำของแต่ละ เซ็กเมนต์ อาจ กำหนด ให้ เซ็กเมนต์ เรจิสเตอร์ ทั้งหมด ชี้หน่วยความจำทีเดียวกันทั้งหมด หรือ แยกเป็นแต่ละส่วนก็สามรถทำได้ทั้ง 2 กรณี ขึ้นอยู่กับวัตถุประสงค์ของการใช้งานและ ลักษณะในการเขียนโปรแกรม แต่การใช้ เซ็กเมนต์ เรจิสเตอร์ แต่ละตัวก็ต้องพิจารณาให้เหมาะสมกับหน้าที่ และ เรจิสเตอร์ ที่มาใช้งานร่วมกัน (ส่วนของ offset ) เซ็กเมนต์ เรจิสเตอร์ ทั้ง 4 ตัวนี้มีขนาด 16 บิตและไม่สามารถแบ่งใช้งานได้เหมือนกับ เรจิสเตอร์ในกลุ่มของ data เรจิสเตอร์ โดยแต่ละตัวทำหน้าที่แตกต่างกันออกไปดังนี้คือ 3.2.5.1.เรจิสเตอร์ CS เป็น เซ็กเมนต์ เรจิสเตอร์ ที่ใช้เป็นตัวกำหนดที่อยู่ของหน่วยความจำในส่วนของคำสั่ง (Instruction) โดยจะมีการทำงานร่วมกับเรจิสเตอร์ IP 3.2.5.2.เรจิสเตอร์ SS เป็น เซ็กเมนต์ เรจิสเตอร์ ที่กำหนดที่อยู่ของ stack ซึ่งเป็นบริเวรหน่วยความจำที่กำหนดไว้เพื่อใช้เก็บข้อมูล โดยมีลักษณะการทำงานแบบ stack ใช้งานร่วมกับเรจิสเตอร์ SP 3.2.5.3.เรจิสเตอร์ DS และ ES ใช้กำหนดที่อยู่ของ ข้อมูลเมื่อทำการประมวลผลกับชุดคำสั่งกลุ่มข้อมูล โดยจะใช้งานร่วมกับ เรจิสเตอร์ BP และ DX 3.2.6.Pointer และ Index เรจิสเตอร์ เป็น เรจิสเตอร์ ที่ใช้ในการชี้ตำแหน่งข้อมูลในหน่วยความจำ โดยจะเป็นส่วนของ offset ประกอบด้วย เรจิสเตอร์ จำนวน 4 ตัวคือ 3.2.6.1.Stack pointer ( SP ) เป็น เรจิสเตอร์ ที่เก็บข้อมูลตำแหน่งหน่วยความจำในส่วนของ offset เพื่อใช้ชี้ตำแหน่งของ stack โดยใช้งานร่วมกับ Stack เซ็กเมนต์ (SS) 3.2.6.2.Base Pointer (BP) ใช้สำหรับ อ้างตำแหน่งข้อมูลในหน่วยความจำของ stack แตกต่างกับ SP ตรงที่สามารถเข้าถึงข้อมูลใน เซ็กเมนต์ อื่น ๆ ได้ 3.2.6.3.Source Index (SI) ใช้ในการอ้างตำแหน่งข้อมูล ในหน่วยความจำ โดยใช้งานร่วมกับ DS ส่วนใหญ่จะนำไปใช้งานกับกลุ่มคำสั่งประเภทกลุ่มข้อมูล 3.2.6.4.Destination Index (DI) มีการใช้งานเช่นเดียวกับ SI แต่ใช้งานร่วมกับ เรจิสเตอร์ ES 3.2.7.Instruction Pointer (IP) IP เป็น เรจิสเตอร์ ที่ใช้ในการชี้ตำแหน่งของข้อมูลในส่วนของคำสั่ง โดยใช้งานร่วมกับ CS ในการทำงานของไมโครโปรเซสเซอร์ ค่าของ IP จะเพิ่มขึ้นโดยอัตโนมัติ และไม่สามารถเปลี่ยนแปลงค่าโดยการโปรแกรมได้ โดยมันจะชี้ตำแหน่งของคำสั่งถัดไปในหน่วยความจำเสมอ 3.2.8.Flags เรจิสเตอร์ เป็น เรจิสเตอร์ ที่ใช้แสดงผลลัพธ์ของการประมวลของไมโครโปรเซสเซอร์ โดยค่าข้อมูลของ เรจิสเตอร์ ในแต่ละบิตนั้นถูกกำหนดความหมายไว้แตกต่างกันออกไป ซึ่งเรียกว่า flag โดยแบ่ง flag ออกเป็น 2 ประเภทด้วยกันคือ status flag และ control flag โดยที่ status flag ใช้เพื่อแสดงผลของการประมวลผลข้อมูล เช่น บวกข้อมูลแล้วมีตัวทดเกิดขึ้นหรือไม่ (carry flag) หรือ การลบข้อมูลมีผลลัพธ์เป็น 0 (zero flag) แต่ในส่วนของ control flag จะเป็นการควบคุมการทำงานของไมโครโปรเซสเซอร์ เช่น จะยอมให้มีการตอบรับการร้องขอ interrupt หรือไม่ เป็นต้น ซึ่งในรายละเอียดการใช้งาน flag ทั้ง 2 ประเภทนี้จะได้กล่าวถึงต่อไปในภายหลัง
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
mikhxsngsywabthkhwamnixaclaemidlikhsiththi aetrabuimidchdecnephraakhadaehlngthima hruxxangthungsingphimphthiyngtrwcsxbimid hakaesdngidwabthkhwamnilaemidlikhsiththi ihaethnpaynidwy laemidlikhsiththi hakkhunmnicwabthkhwamniimidlaemidlikhsiththi ihaesdnghlkthaninhnaxphipray oprdxyanapaynixxkkxnmikhxsrup sthaptykrrmimokhr xngkvs microarchitecture epnlksnakhxng ekhruxngkhxmphiwetxrswnihythimikarichnganmatngaetyukherimtn cnthungyukhpccubn idrbkarxxkaebbokhrngsrangaelakarthanganodycxnwxnniwaemn John Von Neumann sungepnphunainkarxxkaebbekhruxngkhxmphiwetxr odyekhruxngkhxmphiwetxr thiekhaidxxkaebb miswnprakxbthisakhy 3 xyangdwyknkhux hnwypramwlphlklang Central Processing Unit hnwykhwamca Main Memory aela hnwyechuxmtxxupkrnphaynxk Input Output sahrbimokhropressesxr intrakul x86 xxkaebbodyichhlkkarediywknkbthi wxnniwaemnidkahndiw klawkhux karpramwlphlthnghmd thihnwypramwlphlklang sahrbkhxmul imwacaepnkhxmulthiichsahrbpramwlphl hruxkhxmulthiepnkhasngktam cathukekbiwinhnwykhwamcacnkwacamikareriykichngancakhnwypramwlphlklang sahrbswntxechuxmkbxupkrnphaynxknn karthangankhxnghnwypramwlphlklangkcakhlaykbkarthangankbhnwykhwamca thngniephraathnghnwykhwamcaaelaxupkrnphaynxk emuxmikarthangankbhnwypramwlphlklangkmilksnakhxngkareriykichkhxmulaelanakhxmulipekb tangknephiyngsthanthi aela withikarekhathungethann bskhxngrabb hnwyngantang phayinekhruxngkhxmphiwetxrnn txechuxekhadwykndwyrabbbs sahrbopressesxrintrakul 80x86 midwykn 3 klumxnidaek databs aexdedrsbs aelakhxmothrlbs dngraylaexiydtxipnisthaptykrrmimokhrkhxng 80286databsepnsaynasyyankhxmulkhxngrabb odymithngkhnad 8 bit 16 bit 32 bit aela 64 bit thngnikhunxyukbrunkhxngimokhropressesxrexng inkrninicanwnsaysyyankhxngrabbbs imidepnkhxkahndkhnadkhwamsamarthkhxngtwopressesxr echn inkrnikhxng 80x88 mikhnadkhxngbsepn 8 bit kimidhmaykhwamwa samarthpramwlphlkhnad 8 bit epnaetephiyngwain 1 cnghwasyyannalikaca rb sng khxmulkhnad 8 bit dngnnephuxihkarrbsngkhxmulkhrbthng 16 bitktxngichsyyannalikacanwn 2 khrngnnexng khnadkhxngdatabsaesdngintarangaexdedrsbsepnrabbbsthiichephuxsngkhxmulephuxkahndtaaehnngkhxnghnwykhwamca aelaxupkrnphaynxk odythiaexdedrsbs kahndthixyu aela databsepnesnthangnaekhaaelasngxxkkhxmulpramwlphl odythicanwnkhxng saysyyankhxngaexdedrsbs caepntwbxkthungkhwamsamarthinkarrabutaaehnngthiimokhropressesxrsamarthkahndiddngintarang opressesxrcanwnkhxngbshnwykhwamcasungsudhnwy 8088201 048 5761 MB 80188201 048 5761 MB 8086201 048 5761 MB 80186201 048 5761 MB 802862416 777 21616 MB 80386SX2416 777 21616 MB 80386DX324 294 976 2964 GB 80486324 294 976 2964 GB 80586324 294 976 2964 GBbskhwbkhumkarthanganepnrabbsaysyyanthikhwbkhumkarthanganthnghmdkhxngrabb odymicanwnsaythiimethakninaetla opressesxr sungkhunxyukbkarxxkaebbkhxngopressesxrehlann aelahnathikhxngsaysyyanaetlaesnkcaaetktangknxxkip echn inkarxan aela bnthukkhxmulipynghnwyngantang kcamikhxmul rb sng knipma aelwcathrabidxyangirwakhnanikalngxankhxmulcakhnwykhwamca hruxwakalngnaexakhxmulipekhiynekbiwinhnwykhwamca dngnncungtxngmisaysyyanthikahndwa kalng xan read hrux ekhiyn write khxmul epntn sahrbekhruxngimokhrkhxmphiwetxrodythw ipthiichnganinpccubn imwacaepnekhruxng IBM PC aela Compatible caichimokhropressesxrtrakul 80x86 khxngbristh Intel sung erimcak 8086 80286 80386 80486 aelaepn Pentium inpccubn dngnncungepnkarehmaasmxyangmakthicaichephuxkarsuksakarekhiynopraekrmphasa Assembly odyxangxingkbimokhropressesxrkhxng Intel enuxngcakmiichxyangaephrhlay thungaemwacamiimokhropressesxrkhxngphuphlitrayxun bang echn khxngbristh AMD aeterakyngsamarthichkhasngchudediywkbthiichkb imokhropressesxrkhxngbristh INTEL id sahrbkarsuksainrhswichanicasuksaechphaakarthanganinaebb real mode ethann khuxphicarnainswnkhxngopressesxr 8086 hrux 8088 odycasuksaokhrngsrangraylaexiydkhxng ercisetxr sungxyuphayinimokhropressesxr sungmihnathiinkarcdekbkhxmul odykarcdaebngklumkhxng ercisetxr nniptamhnathikhxngkarthangankhxng ercisetxr aetlatwdngraylaexiydtxipni 3 2 Data ercisetxr epn ercisetxr thiichekbkhxmulthwip thungaemwainkarthangankhxngrabbkhxmphiwetxr casamarthichhnwykhwamcaepnthiekbkhxmulid aetwakarpramwlphlnncaekidkhunphayintwimokhroprewsesxr dngnncungtxngich ercisetxr thixyuphayintwimokhropressesxrepnthiekbkhxmulaelathaihkarpramwlphlmikhwamerwsungkhun sahrb ercisetxr thiichpramwlphlthwip epnkhnad 16 bit micanwn 4 tw khux AX BX CX aela DX thngni ercisetxr thng 4 twni samarththicaichngankhrngla 8 bitidodyaebngichnganthilakhrung odymichuxeriykichnganepn AH aela AL aelasahrb ercisetxr thiehluxxik 3 tw camiwithikareriykchuxinthanxngediywkn ody ercisetxr AH epnkarich ercisetxr bitthi 8 15 aela AL epnkarich ercisetxr bitthi 0 7 dngaesdnginrupthi 3 1 sahrb ercisetxr thng 4 twni epnaebbichnganthwip aetbangkrnixacnaipichepnkrniechphaadwyechn 15 8 7 0 AX AHAL BX BHBL CX CHCL DX DHDL rupthi 3 1 aesdngraylaexiydkhxngercisetxraetlatw 3 2 1 ercisetxr AX Accumulator ercisetxr ichepn ercisetxr thiichinkarpramwlphlkhasngthangkhnitsastr echn bwk lb khun har aela karkrathathanglxcikh nxkcakniyngichinkaroxnyaykhxmuldwyenuxngcakichkhasngthisn aelayngichngankbklumkhasng xinphuthaelaexatphut 3 2 2 ercisetxr BX Base ercisetxr ichephuxepn ercisetxr ekbkhxmulchnidthixyu Address ercisetxr echnklumkhasnginkarkhnhakhxmulintarang 3 2 3 ercisetxr CX Counter ercisetxr ichephuxepntwnbcanwnrxbkhxngkarthangankhxngopraekrmthimilksnaepnwngrxb 3 2 4 ercisetxr DX Data ercisetxr ichkbklumkhasngkhunaelahar aelakbkhasngxinphuthaelaexatphut sahrbhnathitang thiklawmaaelwsahrbercisetxraetlatwnn yngthahnathihlk thiehmuxnknxyanghnungkhuk ichephuxkarekbkhxmulchwkhrawdwy 3 2 5 eskemnt ercisetxr inkardaeninkarthitidtxkbhnwykhwamcann sahrbimokhropressesxrintrakul 8088 nnmicanwn address bus khnad 20 bit nnhmaykhwamwa samarthekhathunghnwykhwamcaidkhnad 1 MB aetenuxngcak ercisetxr phayinthnghmdnnmikhnadephiyng 16 bit thaihimsamarth address khxmulinhnwykhwamcaidodytrng cungtxngmikarcdenuxthikhxnghnwykhwamcaxxkepnswn eriykwa eskemnt odycaich ercisetxr canwn 2 twinkarxangthunghnwykhwamcainaetlataaehnng ody ercisetxr twhnungthahnathiepntwkahnd eskemnt aela ercisetxr xiktwhnungthahnathikahndkhakhxng offset thaihkarxangthungkhxmulcungmilksnaepn logical address echn 1000 2000 khatwelkh 1000 hmaythungswnkhxng eskemnt aelakhatwelkh 2000 hmaythungswnkhxng offset aethakphicarnadu caphbwa canwnbitkhxngkhxmulekin 20 bit dngnninkarxang address thithuktxngcungidcakkarkhanwnkharahwang eskemnt aela offset dngni 10000 2000 12000 mikhnad 20 bit trngkb Physical address imokhropressesxr 8088 mi eskemnt ercisetxr canwn 4 tw khux Code eskemnt CS Data eskemnt DS Stack eskemnt SS aela Extra eskemnt ES sung ercisetxr thng 4 twcamihnathikarthanganthiaetktangknxxkip aelarbphidchxbinkarduaelkhxmulaetlaklum ercisetxrthng 4 twnimikhnadepn 16 bit aelakhnadkhxnghnwykhwamcathiimokhropressesxrsamarthichnganidin real mode mikhnad 1 MB thaihmicanwn eskemnt thngsin 64 K eskemnt aelainaetla eskemnt casamarth address khxmulid 64 KB inkar address hnwykhwamcakhxngaetla eskemnt xac kahnd ih eskemnt ercisetxr thnghmd chihnwykhwamcathiediywknthnghmd hrux aeykepnaetlaswnksamrththaidthng 2 krni khunxyukbwtthuprasngkhkhxngkarichnganaela lksnainkarekhiynopraekrm aetkarich eskemnt ercisetxr aetlatwktxngphicarnaihehmaasmkbhnathi aela ercisetxr thimaichnganrwmkn swnkhxng offset eskemnt ercisetxr thng 4 twnimikhnad 16 bitaelaimsamarthaebngichnganidehmuxnkb ercisetxrinklumkhxng data ercisetxr odyaetlatwthahnathiaetktangknxxkipdngnikhux 3 2 5 1 ercisetxr CS epn eskemnt ercisetxr thiichepntwkahndthixyukhxnghnwykhwamcainswnkhxngkhasng Instruction odycamikarthanganrwmkbercisetxr IP 3 2 5 2 ercisetxr SS epn eskemnt ercisetxr thikahndthixyukhxng stack sungepnbriewrhnwykhwamcathikahndiwephuxichekbkhxmul odymilksnakarthanganaebb stack ichnganrwmkbercisetxr SP 3 2 5 3 ercisetxr DS aela ES ichkahndthixyukhxng khxmulemuxthakarpramwlphlkbchudkhasngklumkhxmul odycaichnganrwmkb ercisetxr BP aela DX 3 2 6 Pointer aela Index ercisetxr epn ercisetxr thiichinkarchitaaehnngkhxmulinhnwykhwamca odycaepnswnkhxng offset prakxbdwy ercisetxr canwn 4 twkhux 3 2 6 1 Stack pointer SP epn ercisetxr thiekbkhxmultaaehnnghnwykhwamcainswnkhxng offset ephuxichchitaaehnngkhxng stack odyichnganrwmkb Stack eskemnt SS 3 2 6 2 Base Pointer BP ichsahrb xangtaaehnngkhxmulinhnwykhwamcakhxng stack aetktangkb SP trngthisamarthekhathungkhxmulin eskemnt xun id 3 2 6 3 Source Index SI ichinkarxangtaaehnngkhxmul inhnwykhwamca odyichnganrwmkb DS swnihycanaipichngankbklumkhasngpraephthklumkhxmul 3 2 6 4 Destination Index DI mikarichnganechnediywkb SI aetichnganrwmkb ercisetxr ES 3 2 7 Instruction Pointer IP IP epn ercisetxr thiichinkarchitaaehnngkhxngkhxmulinswnkhxngkhasng odyichnganrwmkb CS inkarthangankhxngimokhropressesxr khakhxng IP caephimkhunodyxtonmti aelaimsamarthepliynaeplngkhaodykaropraekrmid odymncachitaaehnngkhxngkhasngthdipinhnwykhwamcaesmx 3 2 8 Flags ercisetxr epn ercisetxr thiichaesdngphllphthkhxngkarpramwlkhxngimokhropressesxr odykhakhxmulkhxng ercisetxr inaetlabitnnthukkahndkhwamhmayiwaetktangknxxkip sungeriykwa flag odyaebng flag xxkepn 2 praephthdwyknkhux status flag aela control flag odythi status flag ichephuxaesdngphlkhxngkarpramwlphlkhxmul echn bwkkhxmulaelwmitwthdekidkhunhruxim carry flag hrux karlbkhxmulmiphllphthepn 0 zero flag aetinswnkhxng control flag caepnkarkhwbkhumkarthangankhxngimokhropressesxr echn cayxmihmikartxbrbkarrxngkhx interrupt hruxim epntn sunginraylaexiydkarichngan flag thng 2 praephthnicaidklawthungtxipinphayhlng