สำหรับผู้ลงโฆษณา
ติดต่อ โกลอฟนาหุ่นยนต์ รายการภาษาที่ใช้เขียนโปรแกรมเอาท์พุตเรียกว่า เข้าภาษาของฉัน และภาษาที่โปรเซสเซอร์ถ่ายโอนสำหรับการประมวลผลวิดีโอ - สุดสัปดาห์ของฉัน. กระบวนการแปลงภาษาอินพุตเป็นภาษาเอาต์พุตเรียกว่า
ออกอากาศ. เนื่องจากโปรเซสเซอร์เหล่านี้ผลิตโปรแกรมในภาษาเครื่องที่มีรหัสคู่ซึ่งไม่ได้ตั้งโปรแกรมไว้สำหรับการเขียนโปรแกรม จึงจำเป็นต้องแปลโปรแกรมเอาท์พุตทั้งหมดวิโดมิ สองวิธีการออกอากาศ: การรวบรวมและการตีความ ที่การรวบรวม โปรแกรมเอาท์พุตจะถูกถ่ายโอนไปยังโปรแกรมเอาท์พุตที่เทียบเท่ากันทันทีที่เรียกว่าวัตถุประสงค์ โปรแกรมแล้วก็เสร็จสิ้น
ออกอากาศ. กระบวนการนี้ดำเนินการโดยใช้ความช่วยเหลือพิเศษโปรแกรม เรียกว่าคอมไพเลอร์ คอมไพเลอร์ซึ่งภาษาอินพุตแสดงในรูปแบบสัญลักษณ์โดยภาษาเครื่อง (เอาต์พุต) ของรหัสคู่เรียกว่าผู้ประกอบ
การตีความ
ข้อความแต่ละแถวในโปรแกรมเอาต์พุตจะถูกวิเคราะห์ (ตีความ) และระบุคำสั่งให้สิ้นสุดทันที
การดำเนินการตามวิธีนี้ขึ้นอยู่กับ
โปรแกรมล่าม
การตีความใช้เวลานานมาก เพื่อเพิ่มประสิทธิภาพในการเปลี่ยนการประมวลผลของแถวสกิน ล่ามจะต้องทำงานใหม่ทั้งหมดก่อนทีม
แถวที่สัญลักษณ์ (
- ลำดับของสัญลักษณ์ถูกสร้างขึ้นและใช้เพื่อกำหนดตำแหน่งให้กับโปรแกรมเอาท์พุตของฟังก์ชัน
ภาษาแอสเซมเบลอร์ที่แสดงด้านล่างนี้ถูกนำมาใช้พร้อมกับการคอมไพล์เพิ่มเติม
คุณสมบัติของภาษา
คุณสมบัติหลักของแอสเซมเบลอร์:
● ● การแทนที่รหัสคู่ในภาษาด้วยชื่อสัญลักษณ์ - มนีโม-นิกา.ตัวอย่างเช่น สำหรับคำสั่งเพิ่มเติม (
) ช่วยในการจำ vikorist วิดนิมันยา (การคูณ (
) ไม่มีข้อมูลดังกล่าว
เป็นสิ่งสำคัญที่ภาษาสำหรับการเขียนโปรแกรมระบบ (เช่น C) มักจะครองตำแหน่งระดับกลาง จากมุมมองของความเป็นไปได้ การเข้าถึงนั้นใกล้เคียงกับภาษาแอสเซมเบลอร์มากกว่า แต่ไวยากรณ์ของภาษานั้นอยู่ในระดับสูง● ภาษาแอสเซมเบลอร์
ไม่ใช่ภาษาสากล สำหรับกลุ่มไมโครโปรเซสเซอร์ที่ร้องเพลงสกินนั้นมีแอสเซมเบลอร์ของตัวเอง Movi ในระดับสูง งดเว้นข้อบกพร่องนี้
ในระดับสูง การเขียนและการดีบักโปรแกรมในภาษาแอสเซมเบลอร์ใช้เวลานานหลายชั่วโมง ภาษาของแอสเซมเบลอร์ถูกลบออกทันทีอย่างไร้เหตุผลหลากหลายสี
ผ่านสถานการณ์ดังต่อไปนี้:
● โปรแกรมประกอบด้วยแอสเซมเบลอร์ของฉันและมีขนาดที่เล็กกว่ามากและทำงานได้เต็มประสิทธิภาพ โปรแกรมระดับล่างฉันเขียนในระดับสูง
สำหรับแอปพลิเคชันบางประเภท จอแสดงผลเหล่านี้มีบทบาทสำคัญ เช่น ในโปรแกรมระบบจำนวนมาก (รวมถึงคอมไพเลอร์) โปรแกรมในบัตรเครดิต
โทรศัพท์สติลนิคอฟ
, ไดรเวอร์อุปกรณ์;
● ขั้นตอนบางอย่างจำเป็นต้องมีการเข้าถึงความปลอดภัยของฮาร์ดแวร์เพิ่มเติม ซึ่งทำให้ไม่สามารถดำเนินการในระดับสูงได้ เราเห็นการหยุดชะงักและการประมวลผลของผู้ประมวลผลข้อมูลในระบบปฏิบัติการ รวมถึงตัวควบคุมอุปกรณ์ในระบบที่ติดตั้งซึ่งทำงานในโหมดเรียลไทม์ได้มากเพียงใดโปรแกรมส่วนใหญ่มีโค้ดทั้งหมดเพียงเล็กน้อยเท่านั้นซึ่งสอดคล้องกับระยะเวลาที่โปรแกรมเสร็จสิ้นประมาณร้อยชั่วโมง
คำนวณ 1% ของโปรแกรมสำหรับ 50% ของเวลาของสงคราม และ 10% ของโปรแกรมสำหรับ 90% ของเวลาของสงคราม
ดังนั้นในการเขียนโปรแกรมเฉพาะในใจจึงใช้ทั้งแอสเซมเบลอร์และหนึ่งในภาษาระดับสูงสุด
วิธีคิดแบบนี้ทิ้งร่องรอยไว้
ในการกำหนดชื่อ จะใช้ตัวอักษร (ใหญ่) ของตัวอักษรภาษาอังกฤษและตัวเลข
ที่ด้านบนของชื่อจะมีตัวอักษรเช่น - ตัวคั่นในรูปแบบของโน้ตคู่
สามารถเขียนป้ายกำกับคู่ในแถวที่อยู่ติดกัน และสามารถเขียนโค้ดการดำเนินการบนแถวนำในคอลัมน์ 2 ซึ่งจะทำให้คอมไพเลอร์ทำงานได้ง่ายขึ้น
การไม่มีกล่องคู่ทำให้ไม่สามารถลบป้ายกำกับของรหัสการทำงานซึ่งวางอยู่ในแถวที่อยู่ติดกัน
ในแอสเซมเบลอร์ภาษาบางเวอร์ชัน กล่องคู่จะถูกวางไว้หลังเครื่องหมายคำสั่งเท่านั้น แต่จะไม่อยู่หลังเครื่องหมายข้อมูล และส่วนท้ายของเครื่องหมายสามารถล้อมรอบด้วยอักขระ 6 หรือ 8 ตัวได้
ฟิลด์ป้ายกำกับไม่จำเป็นต้องมีชื่อมากกว่านี้ เนื่องจากป้ายกำกับเชื่อมโยงกับที่อยู่คำสั่ง
หากในกระบวนการจบโปรแกรม ไม่จำเป็นต้องคลิกคำสั่งหรือข้อมูลจากหน่วยความจำ ช่องป้ายกำกับจะเว้นว่างไว้
ฟิลด์รหัสการดำเนินงาน
ฟิลด์นี้มีรหัสช่วยในการจำของคำสั่งหรือคำสั่งหลอก (div. ด้านล่าง)
รหัสช่วยในการจำของคำสั่งถูกเลือกโดยนักพัฒนาภาพยนตร์
ในภาษาแอสเซมเบลอร์
ตัวช่วยจำได้รับเลือกให้แก้ไขการลงทะเบียนหน่วยความจำ ) และการบันทึกแทนการลงทะเบียนในหน่วยความจำถือเป็นตัวช่วยจำ- ในภาษาแอสเซมเบลอร์
สำหรับการดำเนินการทั้งสองคุณสามารถใช้ชื่อเดียวกันได้อย่างชัดเจน
เนื่องจากการเลือกชื่อของตัวช่วยจำอาจเพียงพอแล้ว ความจำเป็นในการเลือกคำสั่งเครื่องสองคำสั่งนั้นเนื่องมาจากสถาปัตยกรรมของโปรเซสเซอร์
ตัวช่วยจำการลงทะเบียนยังขึ้นอยู่กับเวอร์ชันของแอสเซมเบลอร์ด้วย (ตาราง 5.2.1)
สนามโอเปร่า
ที่นี่เริ่มใหญ่ขึ้นแล้ว
ข้อมูลเพิ่มเติม
จำเป็นก่อนการดำเนินการขั้นสุดท้าย
ฟิลด์ตัวถูกดำเนินการสำหรับคำสั่งข้ามประกอบด้วยที่อยู่ซึ่งจำเป็นต้องมีการข้าม เช่นเดียวกับการตั้งค่าที่อยู่และการลงทะเบียนที่ทำหน้าที่เป็นตัวถูกดำเนินการสำหรับคำสั่งเครื่องจักร
ตามกฎแล้วเราสามารถชี้ตัวถูกดำเนินการที่สามารถใช้กับโปรเซสเซอร์ 8 บิตได้
● ข้อมูลตัวเลข
นำเสนอในระบบตัวเลขต่างๆ
เพื่อแสดงถึงระบบชัยชนะของตัวเลข ค่าคงที่จะอยู่หลังตัวอักษรละตินตัวใดตัวหนึ่ง:
Vіdpovіdnodvіykova, vіsіmkova, สิบหก, ระบบตัวเลขสิบ (
ไม่อาจเขียนลงไปได้)
เนื่องจากหลักแรกของตัวเลขที่สิบหกคือ A, B, C
จากนั้นจะมีการเพิ่ม 0 (ศูนย์) ที่ไม่มีนัยสำคัญไว้ข้างหน้า
(ร่วมกับวิโคนันนา อูโมวี) นั้น การเปลี่ยนแปลงที่บ้าคลั่งตัวอย่างเช่น ตัวถูกดำเนินการ M1 ของคำสั่ง
หมายถึงความจำเป็นในการเปลี่ยนแปลงอย่างรวดเร็วไปยังคำสั่งที่มีที่อยู่ในฟิลด์ป้ายกำกับค่าด้วยตัวระบุ M1
● วิราซี
ซึ่งจะเป็นวิธีการเชื่อมโยงการตรวจสอบข้อมูลเหล่านี้ด้วยความช่วยเหลือของตัวดำเนินการทางคณิตศาสตร์และตรรกะ
สิ่งสำคัญคือวิธีการจองพื้นที่ข้อมูลจะถูกเก็บไว้ในเวอร์ชั่นของภาพยนตร์
ผู้จัดจำหน่ายประกอบ Movi สำหรับ
หมายถึงคำนั้น) และตอนนี้พวกเขาได้สั่งห้ามทางเลือกอื่นแล้ว
ซึ่งตั้งแต่เริ่มแรกถูกใช้ใน mov สำหรับโปรเซสเซอร์
ในเวอร์ชั่นภาพยนตร์
วิโคริสต์
ค่าคงที่นัยสำคัญ)
โปรเซสเซอร์รวบรวมตัวถูกดำเนินการจากแหล่งต่างๆ
เพื่อจุดประสงค์นี้ นักพัฒนาแอสเซมเบลอร์จึงยกย่องโซลูชันต่างๆ เช่น:
รีจิสเตอร์ II ของระดับที่แตกต่างกันมีชื่อที่แตกต่างกัน: EAX - สำหรับรองรับตัวถูกดำเนินการ 32 บิต (ประเภท
- AX - สำหรับ 16 บิต (type
และ AN - สำหรับ 8 บิต (type
● สำหรับโปรเซสเซอร์
ส่วนต่อท้ายจะถูกเพิ่มในโค้ดการทำงานของสกิน: ส่วนต่อท้าย
สำหรับประเภท
- คำต่อท้าย ".В" สำหรับประเภท
สำหรับตัวถูกดำเนินการของ dovzhin ที่แตกต่างกัน จะใช้รหัสการดำเนินการที่แตกต่างกัน เช่น ในการรับไบต์ คำ (
) และคำต่างๆ ในรีจิสตรี 64 บิตจะถูกปรับแต่งตามโค้ดการดำเนินการ
อย่างชัดเจน.
● ช่องแสดงความคิดเห็นในด้านนี้จะมีการอธิบายเกี่ยวกับโปรแกรมเหล่านี้
ความคิดเห็นใช้ไม่ได้กับการทำงานของโปรแกรมและผู้คน
อาจจำเป็นต้องแก้ไขโปรแกรม เนื่องจากหากไม่มีความคิดเห็นดังกล่าว พวกเขาอาจเพิกเฉยต่อการแจ้งโปรแกรมเมอร์โดยสิ้นเชิง
ความคิดเห็นขึ้นต้นด้วยสัญลักษณ์ i และใช้เพื่ออธิบายเอกสารประกอบของโปรแกรม
● อักขระซังของความคิดเห็นสามารถเป็นได้:● จุดด้วย com (;) ใน movs สำหรับโปรเซสเซอร์ของบริษัท
● สัญญาณลูกเห็บ(!) ใน movakh สำหรับ สกินรอบๆ แถวที่แนะนำใต้ความคิดเห็นถูกถ่ายโอนไปยังสัญลักษณ์ซังคำสั่งหลอก (คำสั่ง)
ในภาษาแอสเซมเบลอร์มีคำสั่งหลักสองประเภท:
.
ขั้นพื้นฐาน
คำสั่งเทียบเท่ากับรหัสเครื่องของโปรเซสเซอร์
● จัดลำดับขั้นตอน (โปรแกรมย่อย) ให้เป็นระเบียบและเรียกร้องความต้องการ
วิธีนี้มีข้อเสีย: ในไม่ช้าคุณจะต้องใช้คำสั่งขั้นตอนพิเศษและคำสั่งการหมุน ซึ่งด้วยลำดับที่สั้นและซ้ำๆ กัน จะสามารถลดความลื่นไหลของโปรแกรมได้อย่างมาก วิธีที่ง่ายและมีประสิทธิภาพมากที่สุดในการทำซ้ำคำสั่งหลาย ๆ ครั้งพบได้ใน Vikoristanมาโคร,
ซึ่งสามารถแสดงเป็นคำสั่งหลอกที่มีไว้สำหรับการแปลซ้ำๆ มักพบในกลุ่มคำสั่งในโปรแกรม
แมโครหรือคำสั่งมาโครมีลักษณะเป็นสามลักษณะ: การตีความแมโคร การรวมแมโคร และการขยายแมโคร
ค่ามาโคร
นี่เป็นลำดับคำสั่งโปรแกรมที่ซ้ำกันอย่างมากซึ่งใช้สำหรับส่งข้อความไปยังโปรแกรม
ค่ามาโครมีโครงสร้างดังต่อไปนี้:
รายชื่อไวรัส
ค่ามาโคร
คำแนะนำของโครงสร้างค่ามหภาคสามารถดูได้เป็นสามส่วน:
● ชื่อเรื่อง
มาโครซึ่งรวมถึงชื่อ
คำสั่งหลอก และตั้งค่าพารามิเตอร์● ระบุด้วยจุด
ร่างกาย
มาโคร;
● ทีม
เสร็จสิ้น
ค่ามาโคร
ชุดพารามิเตอร์มาโครประกอบด้วยรายการพารามิเตอร์ทั้งหมดที่ระบุในฟิลด์ตัวถูกดำเนินการสำหรับกลุ่มคำสั่งที่เลือก
หากระบุพารามิเตอร์เหล่านี้ในโปรแกรมก่อนหน้านี้ ค่ามาโครอาจไม่ระบุไว้ในส่วนหัว
เพื่อประกอบกลุ่มคำสั่งที่เลือกอีกครั้ง สัตว์ร้ายที่ถูกสร้างขึ้นตามชื่อนั้นจะได้รับชัยชนะ
คำสั่งแมโครสำหรับถ่ายโอนพารามิเตอร์ด้วยค่าอื่น เมื่อแอสเซมเบลอร์คอมไพล์ค่าแมโคร จะจัดเก็บไว้ในตารางคำจำกัดความของแมโครเมื่อโปรแกรมปรากฏขึ้นในอนาคตชื่อ ( ) ไปยังมาโคร แอสเซมเบลอร์จะแทนที่เนื้อหาด้วยแมโคร
ชื่อที่เกี่ยวข้องสำหรับแมโครเรียกว่ารหัสการดำเนินการ มาโครอาราม(macrovisa) แทนมาโครลำตัว -
การขยายมาโคร เพื่อแสดงโปรแกรมเป็นลำดับตัวอักษร (ตัวอักษร ตัวเลข ช่องว่าง เครื่องหมายวรรคตอน และการหมุนแคร่เลื่อนไป
แถวใหม่ ) จากนั้นการขยายตัวแบบมหภาคจะเกิดขึ้นเมื่อมีการเปลี่ยนเชือกเส้นเล็กบางอันโดยต้องเสียค่าใช้จ่ายด้วยเชือกเส้นเล็กอื่น ๆ
การขยายมาโครเกิดขึ้นระหว่างการประกอบ ไม่ใช่ระหว่างการทำงานของโปรแกรม
● ในรอบอื่น โปรแกรมที่ไม่มีมาโครจะถูกสร้างขึ้นใหม่
มาโครพร้อมพารามิเตอร์
สำหรับหุ่นยนต์ที่มีลำดับคำสั่งที่ทำซ้ำ พารามิเตอร์ที่สามารถยอมรับได้ ความหมายที่แตกต่างกัน, ค่ามาโครที่ถ่ายโอน:
● ส ข้อเท็จจริงพารามิเตอร์ที่เหมาะสมกับฟิลด์ของตัวถูกดำเนินการของตัวแปรแมโคร
● ส เป็นทางการพารามิเตอร์
ในกระบวนการขยายแมโคร พารามิเตอร์อย่างเป็นทางการที่ปรากฏในเนื้อความของมาโครจะถูกแทนที่ด้วยพารามิเตอร์จริงที่เกี่ยวข้อง
การเลือกมาโครจากพารามิเตอร์
โปรแกรม 1 มีลำดับคำสั่งที่คล้ายกันสองลำดับ ต่างกันตรงที่ลำดับแรกจะสลับระหว่าง P และ
และเป็นเพื่อน
โปรแกรมมีการรวมมาโคร 2 รายการพร้อมพารามิเตอร์อย่างเป็นทางการสองตัว P1 และ P2
เมื่อขยายมาโคร สัญลักษณ์สกิน P1 ที่อยู่ตรงกลางของร่างกายจะถูกแทนที่ด้วยมาโครด้วยพารามิเตอร์จริงตัวแรก (P,
) และสัญลักษณ์ P2 จะถูกแทนที่ด้วยพารามิเตอร์จริงอื่น (
) กับโปรแกรมอันดับ 1 พร้อมวีซ่ามาโคร
โปรแกรม 2 ถูกทำเครื่องหมาย: P,
พารามิเตอร์จริงตัวแรก
อีกหนึ่งพารามิเตอร์ที่แท้จริง
โปรแกรม 1
โปรแกรม 2
MOV EBX, Q MOV EAX, Pl
MOV Q, EAX MOV EBX, P2
MOV P, EBX MOV P2, EAX
ขยายกำลังการผลิต
มาดูวิธีขยายขีดความสามารถด้านภาษากัน
หากแมโครที่วางคำสั่งการเปลี่ยนผ่านอัจฉริยะและป้ายกำกับก่อนที่การเปลี่ยนแปลงจะเกิดขึ้นจะถูกเรียกสองครั้งขึ้นไป ป้ายกำกับนั้นจะถูกทำซ้ำ (ปัญหาของการทำซ้ำป้ายกำกับ) ซึ่งจะทำให้เกิดความชัดเจน
ดังนั้นด้วยการเรียกสกิน พารามิเตอร์จึงถูกกำหนด (โดยโปรแกรมเมอร์) ให้กับป้ายกำกับ okrema
ในภาพยนตร์
ป้ายกำกับได้รับการโหวตในท้องถิ่น (
) และด้วยความสามารถที่ขยายทั้งหมด แอสเซมเบลอร์จะสร้างป้ายกำกับอื่นโดยอัตโนมัติเมื่อมีการขยายมาโคร
อนุญาตให้วางมาโครไว้ตรงกลางของมาโครอื่นๆ ความสามารถที่เพิ่มขึ้นนี้จะยิ่งทรงพลังยิ่งขึ้นเมื่อรวมกับโปรแกรมที่ออกแบบอย่างชาญฉลาดมาดูกันดีกว่า ถ้า WordSize GT 16 M2 มาโคร Macro M2 สามารถมีค่าได้ทั้งสองส่วนของตัวดำเนินการ
ขึ้นอยู่กับโปรเซสเซอร์ที่โปรแกรมประกอบอยู่: 16 บิตหรือ 32 บิต
หากไม่ได้เปิดใช้งาน M1 มาโคร M2 จะไม่ถูกกำหนด คุณสมบัติเพิ่มเติมอีกประการหนึ่งคือมาโครสามารถเรียกมาโครอื่นได้รวมถึงตัวมันเองด้วย -і ซ้ำ
การบันทึกค่ามาโคร
ชื่อมาโครทั้งหมดจะถูกบันทึกไว้ในตาราง
สกินจะมาพร้อมกับลิงก์ไปยังมาโครที่เกี่ยวข้อง เพื่อให้สามารถคลิกได้ทุกเมื่อที่จำเป็น แอสเซมเบลอร์บางตัวสร้างตารางกลมสำหรับชื่อแมโคร ในขณะที่บางตัวสร้างตารางรองซึ่งประกอบกับชื่อแมโคร ประกอบด้วยคำสั่งและคำสั่งของเครื่องทั้งหมด
● เมื่อทำงานกับมาโคร กระบวนการจะถูกประกอบขึ้นถูกสร้างขึ้น:องค์ประกอบใหม่
ตาราง ด้วยชื่อของมาโครจำนวนพารามิเตอร์และการเข้าสู่ตารางอื่นของค่ามาโครที่บันทึกเนื้อหาของมาโคร● รายการ
เป็นทางการ
พารามิเตอร์
จากนั้นค่ามาโครของมาโครจะถูกคำนวณและจัดเก็บไว้ในตาราง ซึ่งเป็นเพียงชุดสัญลักษณ์
พารามิเตอร์ที่เป็นทางการ เช่น พารามิเตอร์ของลูป จะถูกระบุด้วยสัญลักษณ์พิเศษ
การสำแดงภายในสู่มาโคร
จากมุมมองของก้นสำหรับโปรแกรม 2 (หน้า 244) ดูเหมือนว่า:
MOV EAX, MOV EBX, MOV MOV &
โดยที่สัญลักษณ์การหมุนแคร่ถูกแทนที่ด้วยจุดที่มีอาการโคม่า และสัญลักษณ์ของพารามิเตอร์ที่เป็นทางการคือเครื่องหมายและ &
การขยายการคลิกมาโคร
แน่นอนว่าหากค่ามาโครกระจุกตัวระหว่างการประกอบ ค่ามาโครจะถูกจัดเก็บไว้ในตารางมาโคร
เมื่อแมโครถูกเรียก แอสเซมเบลอร์จะหยุดอ่านข้อมูลอินพุตจากอุปกรณ์อินพุตทันที และเริ่มอ่านเนื้อหาของแมโคร
พารามิเตอร์อย่างเป็นทางการที่ได้รับจากเนื้อความของมาโครจะถูกแทนที่ด้วยพารามิเตอร์จริงและระบุโดยการคลิก
พารามิเตอร์เครื่องหมายและก่อนช่วยให้แอสเซมเบลอร์จดจำได้
กระบวนการประกอบมีความคล้ายคลึงและคล้ายคลึงกันมากโดยไม่คำนึงถึงเวอร์ชันที่ใช้แอสเซมเบลอร์หลายเวอร์ชัน ด้านล่างนี้คุณจะเห็นการทำงานของแอสเซมเบลอร์แบบ double-passแอสเซมบลีผ่านคู่ โปรแกรมประกอบด้วยผู้ปฏิบัติงานระดับต่ำดูเหมือนว่าการประกอบจะสามารถกำหนดลำดับของการกระทำได้:
● ● แปล yogo ด้วยภาษาเครื่อง ● โอนรหัสเครื่องที่แยกออกมาไปยังไฟล์ และส่วนที่เกี่ยวข้องของแผ่นพับไปยังไฟล์อื่นและบันทึกสัญลักษณ์ทั้งหมดลงในตาราง (รวมถึงจำนวนเครื่องหมาย) และในอีกขั้นตอนหนึ่ง - อ่านและประกอบตัวดำเนินการสกิน
วิธีการนี้ค่อนข้างง่าย แต่การส่งผ่านโปรแกรมอื่นต้องใช้เวลาเพิ่มเติมในการดำเนินการอินพุต-เอาท์พุต ● ในการผ่านครั้งแรกดังต่อไปนี้สร้างใหม่
โปรแกรมลงในแบบฟอร์มระดับกลางและบันทึกไว้ในตาราง และรหัสผ่านอื่น ๆ จะไม่ถูกป้อนหลังจากโปรแกรมเอาต์พุต แต่เป็นไปตามตาราง
วิธีการประกอบนี้ช่วยประหยัดเวลา เนื่องจากการดำเนินการอินพุต-เอาท์พุตไม่เสร็จสมบูรณ์ในการผ่านครั้งอื่นผ่านครั้งแรก จุดประสงค์ของการผ่านครั้งแรก(!) ใน movakh สำหรับ - สร้างตารางสัญลักษณ์ตามที่ตั้งใจไว้ งานอื่นของการผ่านครั้งแรกคือการบันทึกค่ามาโครทั้งหมดและขยายจำนวนการคลิกในโลกของรูปลักษณ์ของพวกเขา
นอกจากนี้ ในครั้งเดียว ความหมายของสัญลักษณ์และการขยายมาโครก็ถูกสร้างขึ้นด้วย
สัญลักษณ์อาจเป็น buti abo เครื่องหมาย,(
ความหมาย, ซึ่งสำหรับคำสั่งเพิ่มเติม มีเพลงประกอบชื่อของเขา:і ;Value - ขนาดบัฟเฟอร์ด้วยการกำหนดค่าให้กับชื่อสัญลักษณ์ในฟิลด์ป้ายกำกับคำสั่ง แอสเซมเบลอร์จะระบุที่อยู่ของแต่ละคำสั่งเป็นหลักในขณะที่รันโปรแกรม ซึ่งแอสเซมเบลอร์จะบันทึกในระหว่างกระบวนการที่อยู่และคำสั่งทำความสะอาด ) เป็นการเปลี่ยนแปลงพิเศษในการผ่านครั้งแรก ค่าของการเปลี่ยนแปลงพิเศษจะถูกตั้งค่าเป็น 0 และเพิ่มขึ้นหลังจากใช้คำสั่ง skin ที่ส่วนท้ายของคำสั่งนี้
เหมือนก้นโต๊ะเลย
5.2.3 จะแสดงส่วนของโปรแกรมที่มีคำสั่ง 2 คำสั่งและค่าของแพทย์ออกมาแสดง
ในระหว่างการส่งผ่านครั้งแรก ตารางจะถูกสร้างขึ้น
ชื่อเชิงสัญลักษณ์คำสั่ง
รหัสธุรกรรม
และถ้าจำเป็น
ตัวอักษร
ตารางนี้ประกอบด้วยคำสั่งและคำสั่งหลอกทั้งหมดที่ปรากฏในโปรแกรมที่ประกอบขึ้น
ตารางรหัสการทำงาน
สำหรับแต่ละรหัสการดำเนินการในตารางการถ่ายโอนจะมีกราฟ: การกำหนดให้กับรหัสการดำเนินการ, ตัวถูกดำเนินการ 1, ตัวถูกดำเนินการ 2, ค่า 16 หลักให้กับรหัสการดำเนินการ, ค่าคำสั่งและประเภทคำสั่ง (ตาราง 5.2.5)
รหัสการทำงานแบ่งออกเป็นกลุ่มตามจำนวนและประเภทของตัวถูกดำเนินการ
ประเภทคำสั่งจะระบุหมายเลขกลุ่มและระบุขั้นตอนที่สามารถเรียกใช้เพื่อประมวลผลคำสั่งทั้งหมดในกลุ่มที่กำหนดได้อีกตอนหนึ่ง.
Meta ทางเดินอื่น - การสร้างโปรแกรมออบเจ็กต์และการพัฒนาตามความต้องการของโปรโตคอลการประกอบสรุปข้อมูลที่จำเป็นสำหรับตัวเชื่อมโยงเพื่อเชื่อมโยงขั้นตอนที่รวบรวมในเวลาที่ต่างกันเป็นไฟล์เดียวที่รวบรวม
ในระหว่างการส่งผ่านอีกครั้ง (เช่นเดียวกับครั้งแรก) แถวที่ตัวดำเนินการวางไว้จะถูกอ่านและตัดออกทีละแถวตัวดำเนินการเอาต์พุตและการมาจากระบบที่สิบหกจะถูกเอาต์พุต
● วัตถุประสงค์
รหัสสามารถแก้ไขหรือวางไว้ในบัฟเฟอร์เพื่อใช้ในอนาคต
หลังจากรีเซ็ตที่อยู่และคำสั่งของแพทย์แล้ว เจ้าหน้าที่ฝ่ายรุกจะถูกเรียก
โปรแกรมสุดสัปดาห์
คุณสามารถแก้ไขได้ เช่น:
สัญลักษณ์โฮเวอร์ไม่ได้ถูกกำหนดหรือถูกกำหนดมากกว่าหนึ่งครั้ง
● รหัสการดำเนินการแทนชื่อที่ไม่ถูกต้อง (ผ่านข้อยกเว้น) ไม่ได้ให้จำนวนตัวถูกดำเนินการเพียงพอ หรือมีตัวถูกดำเนินการมากเกินไป
● ผู้ให้บริการรายวัน ผู้ประกอบสามารถตรวจจับสัญลักษณ์ที่ไม่ตรงกันและแทนที่ได้อย่างไรก็ตาม ในกรณีส่วนใหญ่ เมื่อตรวจพบผู้ปฏิบัติงานที่มีการแตกหัก แอสเซมเบลอร์จะแสดงข้อความเกี่ยวกับการแตกหักบนหน้าจอ และได้รับการสนับสนุนให้ดำเนินการประกอบต่อไป
Statti ทุ่มเทให้กับการประกอบภาษา
ในการตั้งโปรแกรมแอสเซมเบลอร์ คุณต้องมีอุปกรณ์เครื่องมือต่างๆ จำนวนมาก รวมถึงสิ่งต่อไปนี้: คอมเพล็กซ์การประมวลผลที่จำเป็นซึ่งใช้ micro-EOM หรือ PEOM พร้อมชุดอุปกรณ์ต่อพ่วง (ออร่าปุ่มตัวเลขและตัวเลข, การแสดงสัญลักษณ์, NGMD และอุปกรณ์ drukuvalny) เนื่องจาก รวมถึงระบบการเขียนโปรแกรมข้ามไคประจำถิ่นสำหรับไมโครโปรเซสเซอร์ประเภทที่จำเป็น
ภาษาแอสเซมเบลอร์ช่วยให้คุณเขียนและพัฒนาโปรแกรมที่ซับซ้อนสูงได้อย่างมีประสิทธิภาพ โดยใช้ภาษาเครื่องต่ำ (สูงสุด 1 - 4 KB)
ภาพยนตร์ของแอสเซมเบลอร์เป็นแบบเน้นเครื่องจักร โดยจะถูกจัดเก็บในภาษาเครื่องและโครงสร้างของไมโครโปรเซสเซอร์ที่รองรับ เพื่อให้คำสั่งสกินของไมโครโปรเซสเซอร์ได้รับชื่อที่เป็นสัญลักษณ์มากขึ้น
ภาษาแอสเซมเบลอร์ช่วยเพิ่มผลผลิตให้กับโปรแกรมเมอร์เหนือภาษาเครื่องและในขณะเดียวกันก็ประหยัดความสามารถในการใช้ทรัพยากรฮาร์ดแวร์ที่เข้าถึงได้ของซอฟต์แวร์ทั้งหมดของไมโครโปรเซสเซอร์
ช่วยให้โปรแกรมเมอร์ที่มีคุณสมบัติเหมาะสมสามารถสร้างโปรแกรมที่สามารถทำให้เสร็จภายในเวลาอันสั้นและใช้พื้นที่หน่วยความจำน้อยลงเมื่อเทียบกับโปรแกรมที่สร้างโดยทีมงานระดับสูงของฉัน
ด้วยเหตุนี้ ในทางปฏิบัติโปรแกรมทั้งหมดสำหรับควบคุมอุปกรณ์อินพุต/เอาท์พุต (ไดรเวอร์) จึงเขียนด้วยภาษาแอสเซมเบลอร์ โดยไม่ต้องกังวลกับความเป็นไปได้ในการเข้าถึงภาษาระดับสูงที่หลากหลาย
การใช้ภาษาแอสเซมเบลอร์ โปรแกรมเมอร์สามารถตั้งค่าพารามิเตอร์ต่อไปนี้:
ตัวช่วยจำ (ชื่อสัญลักษณ์) ของคำสั่งสกินของภาษาเครื่องของไมโครโปรเซสเซอร์ รูปแบบมาตรฐานสำหรับโปรแกรมจำนวนหนึ่งที่อธิบายเป็นภาษาแอสเซมบลีรูปแบบสำหรับการแทรก
ในรูปแบบต่างๆ
ตัวเลือกการกำหนดที่อยู่และคำสั่ง
รูปแบบการแทรกค่าคงที่เชิงสัญลักษณ์และค่าคงที่จำนวนเต็มในระบบตัวเลขต่างๆ
คำสั่งหลอกที่ควบคุมกระบวนการประกอบ (แปล) โปรแกรม
ในภาษาแอสเซมเบลอร์ โปรแกรมจะเขียนทีละแถว กล่าวคือ ป้อนหนึ่งแถวต่อคำสั่ง
สำหรับ micro-EOM ที่ใช้ไมโครโปรเซสเซอร์ประเภทที่กว้างที่สุด คุณจะพบชุดภาษาแอสเซมเบลอร์จำนวนหนึ่ง แต่ในทางปฏิบัติ ภาษาแอสเซมเบลอร์ที่หลากหลายกว่าเรียกว่าหนึ่ง - นี่คือชื่อของภาษาแอสเซมเบลอร์มาตรฐาน
การเขียนโปรแกรมอยู่ในระดับคำสั่งเครื่องเท่านั้น - ในระดับต่ำสุดซึ่งเป็นไปได้สำหรับโปรแกรมที่พับ
ระบบคำสั่งเครื่องจักรอาจเพียงพอที่จะดำเนินการที่จำเป็น เช่น การใส่อุปกรณ์เครื่องคอมพิวเตอร์
คำสั่งเครื่องของไมโครโปรเซสเซอร์ซึ่งเขียนด้วยภาษาแอสเซมเบลอร์อยู่ในแถวเดียวซึ่งมีลักษณะทางวากยสัมพันธ์:
คำสั่งแท็ก / ตัวถูกดำเนินการคำสั่ง ; ความคิดเห็น
ในกรณีนี้ ฟิลด์บังคับในแถวคือคำสั่งหรือคำสั่ง
ป้ายกำกับ คำสั่ง/คำสั่ง และตัวถูกดำเนินการ (รวมถึง) จะถูกคั่นด้วยช่องว่างหรืออักขระแท็บเดียว
หากต้องใช้คำสั่งหรือคำสั่งต่อในแถวที่น่ารังเกียจ จะใช้สัญลักษณ์แบ็กสแลช: \
ภาษาของแอสเซมเบลอร์ไม่ได้แยกตัวอักษรขนาดใหญ่และเล็กในการเขียนคำสั่งและคำสั่ง
ที่อยู่โดยตรง: ที่อยู่ที่มีประสิทธิภาพจะถูกระบุโดยตรงโดยฟิลด์คำสั่งเครื่อง ซึ่งอาจมีขนาด 8, 16 หรือ 32 บิต
mov eax, ผลรวม;
eax = ผลรวม
แอสเซมเบลอร์จะแทนที่ผลรวมด้วยที่อยู่ที่เกี่ยวข้องซึ่งจัดเก็บไว้ในส่วนข้อมูล (โดยปกติจะระบุโดย ds register) และค่าที่เก็บไว้ด้านหลังที่อยู่ผลรวมด้วย eax registerที่อยู่ทางอ้อม
ดูเหมือนว่านี้:
· การกำหนดที่อยู่พื้นฐานทางอ้อม (รีจิสทรี)
· ฐานทางอ้อม (รีจิสตรี) จัดการกับการกระจัด
· การกำหนดที่อยู่ดัชนีทางอ้อม
· การกำหนดดัชนีฐานทางอ้อมการกำหนดที่อยู่ฐานทางอ้อม (รีจิสทรี)
ด้วยการระบุที่อยู่นี้ ที่อยู่ที่มีประสิทธิภาพของตัวถูกดำเนินการสามารถพบได้ในรีจิสเตอร์ใดๆ ที่มีวัตถุประสงค์พิเศษ ยกเว้น sp/esp และ bp/ebp (ซึ่งเป็นรีจิสเตอร์เฉพาะสำหรับการทำงานกับเซ็กเมนต์สแต็ก)
ในทางวากยสัมพันธ์ โหมดการกำหนดแอดเดรสของคำสั่งนี้แสดงโดยการใส่ชื่อรีจิสเตอร์ไว้ในลูกศรสี่เหลี่ยม mov eax, ; eax = * esi;
โครงสร้างคำสั่งแอสเซมบลี คำสั่งแอสเซมเบลอร์สั่งให้นักแปลสร้างไมโครโปรเซสเซอร์
คำสั่งแอสเซมเบลอร์คือพารามิเตอร์ที่ระบุในข้อความโดยโปรแกรมที่ส่งผลต่อกระบวนการแอสเซมบลีและพลังของไฟล์เอาต์พุต
ตัวถูกดำเนินการกำหนดค่าเริ่มต้นของข้อมูล (ส่วนของข้อมูล) หรือองค์ประกอบที่ดำเนินการหลังจากเพิ่มคำสั่ง (ส่วนของรหัส)
คำสั่งสามารถจับคู่ตัวถูกดำเนินการหนึ่งหรือสองตัว หรือไม่ตรงกับตัวถูกดำเนินการ
โครงสร้างของโปรแกรมในภาษาแอสเซมเบลอร์ โปรแกรมที่เขียนด้วยภาษาแอสเซมเบลอร์สามารถประกอบด้วยหลายส่วนเรียกว่าโมดูล ซึ่งแต่ละส่วนสามารถมีข้อมูล สแต็ก และโค้ดได้ตั้งแต่หนึ่งส่วนขึ้นไป
เมื่อใดก็ตามที่โปรแกรมแอสเซมเบลอร์เสร็จสิ้น จำเป็นต้องเปิดโมดูลหลักหรือโมดูลหลักเพียงตัวเดียวซึ่งเป็นจุดเริ่มต้นของโปรแกรม โมดูลสามารถประกอบด้วยส่วนของโปรแกรม ส่วนข้อมูล และสแต็ก เสียงสำหรับคำสั่งอื่นๆ ที่เกี่ยวข้องโมเดลหน่วยความจำ ก่อนที่จะลบเซ็กเมนต์ จำเป็นต้องระบุโมเดลหน่วยความจำเบื้องหลังคำสั่งเพิ่มเติม
MODEL ตัวแก้ไข memory_model, memory_name, OS_type, stack_parameter โมเดลหน่วยความจำพื้นฐานของภาษาแอสเซมเบลอร์: โมเดลหน่วยความจำ รหัสที่อยู่ การระบุที่อยู่ข้อมูล ระบบปฏิบัติการการเขียนโค้ดและข้อมูล TINY NEAR MS-DOS ยอมรับได้ ขนาดเล็กใกล้ MS-DOS, Windows ไม่มี ปานกลางไกลใกล้ MS-DOS, Windows ไม่มีขนาดกะทัดรัดใกล้ FAR MS-DOS, Windows ไม่ใหญ่ไกล MS-DOS, Windows ไม่ไกลมาก MS-DOS, Windows ไม่มี ใกล้กับ Windows 2000, Windows XP, Windows ที่ยอมรับได้ FLAT NEAR NT,
โมเดลหน่วยความจำ โมเดลแบบแบนถ่ายโอนการกำหนดค่าโปรแกรมที่ไม่แบ่งส่วน และจำกัดอยู่ที่ระบบปฏิบัติการ 32 บิต
โมเดลนี้คล้ายกับโมเดลขนาดเล็กตรงที่ข้อมูลและโค้ดอยู่ในส่วนเดียวเพียง 32 บิตเท่านั้น
หากต้องการขยายโมเดลโปรแกรมให้แบนก่อนคำสั่ง model flat race วางหนึ่งในคำสั่ง: . 386, .
486, .
586 อาโอ 686 การเลือกคำสั่งในการเลือกโปรเซสเซอร์หมายถึงชุดคำสั่งที่มีให้ในขณะที่เขียนโปรแกรมไม่ใช่สแต็ค Vikorist แต่เป็นเซ็กเมนต์ สแต็คทุกวัน- CODE – ส่วนโปรแกรมที่มีโค้ด
เริ่ม – ทำเครื่องหมาย END START - จุดสิ้นสุดของโปรแกรมและแจ้งให้คอมไพเลอร์ทราบว่าการเริ่มโปรแกรมต้องมีเครื่องหมาย STARTโปรแกรมสกินมีหน้าที่ออกคำสั่ง END ซึ่งหมายถึงจุดสิ้นสุด รหัสทางออกโปรแกรม
แถวทั้งหมดที่เป็นไปตามคำสั่ง END จะถูกละเว้น ป้ายกำกับที่ระบุหลังคำสั่ง END ระบุถึงผู้แปลชื่อของโมดูลส่วนหัวซึ่งเป็นจุดเริ่มต้นของโปรแกรม"> Трансляция программы в Microsoft Visual Studio 2005 1) Создать проект, выбрав меню File->New->Project и указав имя проекта (hello. prj) и тип проекта: Win 32 Project. В дополнительных опциях мастера проекта указать “Empty Project”.!}!}
หากโปรแกรมมีหนึ่งโมดูล คุณสามารถละเว้นป้ายกำกับหลังคำสั่ง END ได้"> Трансляция программы в Microsoft Visual Studio 2005 2) В дереве проекта (View->Solution Explorer) добавить файл, в котором будет содержаться текст программы: Source. Files->Add->New. Item.!}!}
นักแปลแอสเซมเบลอร์ Movi นักแปล - โปรแกรมหรือ
ความช่วยเหลือด้านเทคนิค
ความหมายคือการสร้างโปรแกรมขึ้นมาใหม่ซึ่งแสดงโดยโปรแกรมเดียว ซึ่งเป็นโปรแกรมทั้งหมดที่เรียกว่ารหัสอ็อบเจ็กต์
นอกเหนือจากการสนับสนุนการช่วยจำคำสั่งของเครื่องแล้ว โปรแกรมแปลสกินยังมีชุดคำสั่งและฟังก์ชันมาโครที่ทรงพลัง ซึ่งมักจะไม่มีอะไรแปลกเลย
ประเภทหลักของนักแปลแอสเซมเบลอร์: MASM (Microsoft Assembler), TASM (Borland Turbo Assembler), FASM (Flat Assembler) - แอสเซมเบลอร์ที่หลากหลายที่สามารถพบได้ทุกที่เขียนโดย Tomasz Grishtar (โปแลนด์), NASM (Netwide Assembler) - great 86 ผลงานสร้างสรรค์ของ buv โดย Simon Tatham ร่วมกับ Julian Hall และกำลังพัฒนาอยู่ในปัจจุบัน"> Трансляция программы в Microsoft Visual Studio 2005 6) Откомпилировать файл, выбрав Build->Build hello. prj. 7) Запустить программу, нажав F 5 или выбрав меню Debug->Start Debugging.!}!}
การเขียนโปรแกรมใน Windows OS การเขียนโปรแกรมใน Windows OS ขึ้นอยู่กับฟังก์ชัน API ที่เลือก (Application Program Interface) จำนวนของพวกเขาถึง 2,000 โปรแกรมสำหรับ Windows ส่วนใหญ่ประกอบด้วยการคลิกดังกล่าวการโต้ตอบทั้งหมดด้วย อาคารภายนอกตามกฎแล้ว ทรัพยากรของระบบปฏิบัติการจะถูกใช้เพื่อรองรับฟังก์ชันดังกล่าว
การดำเนินการ ระบบวินโดวส์แบบจำลองความทรงจำของ Vikorist ที่อยู่ตรงกลางหน่วยความจำถูกกำหนดแทนการลงทะเบียนแบบ 32 บิตหนึ่งรายการโครงสร้างโปรแกรมสำหรับ Windows มี 3 ประเภท: กล่องโต้ตอบ (ส่วนใหญ่เป็นกล่องโต้ตอบแบบหน้าต่าง), โครงสร้างคอนโซลหรือแบบไม่มีหน้าต่าง, โครงสร้างแบบคลาสสิก (หน้าต่าง, เฟรม)
วิคลิค
ฟังก์ชั่นวินโดวส์ API ในไฟล์วิธีใช้ ฟังก์ชัน API ใดๆ จะแสดงในรูปแบบของประเภท function_name (FA 1, FA 2, FA 3) ประเภท – ประเภทของค่าที่ถูกหมุน
ฟังก์ชั่น Viklik Windows API int Message
กล่อง (HWND h. Wnd, LPCTSTR lp. ข้อความ, LPCTSTR lp. คำบรรยาย, UINT u. ประเภท); API ในไฟล์วิธีใช้ ฟังก์ชัน API ใดๆ จะแสดงในรูปแบบของประเภท function_name (FA 1, FA 2, FA 3) ประเภท – ประเภทของค่าที่ถูกหมุนผลลัพธ์ของฟังก์ชัน API ใดๆ มักจะเป็นเลขจำนวนเต็มที่ปรากฏในการลงทะเบียน EAX API ในไฟล์วิธีใช้ ฟังก์ชัน API ใดๆ จะแสดงในรูปแบบของประเภท function_name (FA 1, FA 2, FA 3) ประเภท – ประเภทของค่าที่ถูกหมุนคำสั่ง OFFSET หมายถึง "การกระจัดในส่วน" หรือแปลเป็นแนวคิดระดับสูง "ฝักบัว" ที่หูแถว
คำสั่ง EQU เช่น #define ในภาษาหมายถึงค่าคงที่
คำสั่ง EXTERN ระบุให้นักแปลทราบว่าฟังก์ชันหรือตัวระบุอยู่ภายนอกโมดูลนี้
ตัวอย่างรายการ Hello ทุกคน!
- 686 P. รุ่นแบน, STDCALL.
STACK 4096 ข้อมูล MB_OK EQU 0 STR 1 DB "โปรแกรมแรกของฉัน", 0 STR 2 DB "สวัสดีทุกคน!", 0 HW DD?
ข้อความภายนอก
กล่อง.
____________________________________________________________________
: ใกล้. รหัสเริ่มต้น: PUSH MB_OK PUSH OFFSET 1 PUSH OFFSET 2 PUSH HW CALL ข้อความ
กล่อง.
RET สิ้นสุด เริ่มต้น
คำสั่ง INVOKE ตัวแปลภาษา MASM ช่วยให้คุณสามารถเรียกใช้ฟังก์ชันจากฟังก์ชันมาโครเดี่ยวได้ - คำสั่ง INVOKE: ฟังก์ชัน INVOKE, พารามิเตอร์ 1, พารามิเตอร์ 2, ... ในกรณีนี้ ไม่จำเป็นต้องเพิ่ม @16 ในการเรียกใช้ฟังก์ชัน ; |
พารามิเตอร์ถูกเขียนตามลำดับที่อธิบายฟังก์ชันทุกประการ |
ด้วยฟังก์ชันมาโครของนักแปล พารามิเตอร์จะถูกวางบนสแต็ก |
หากต้องการใช้คำสั่ง INVOKE คุณต้องอธิบายฟังก์ชันต้นแบบด้วยคำสั่ง PROTO ในรูปแบบ: ข้อความ |
กล่อง. PROTO: DWORD, : DWORD หากโปรแกรมมีฟังก์ชันส่วนตัวของ Win 32 API คุณสามารถใช้คำสั่ง include C ได้อย่างรวดเร็ว: masm 32includeuser 32. inc |
งานหลักสูตร |
จากวินัย "การเขียนโปรแกรมระบบ" |
หัวข้อที่ 4: “การแก้ปัญหาขั้นตอน” |
ตัวเลือกที่ 2 |
มหาวิทยาลัยแห่งรัฐสคิดโน-ไซบีเรีย |
เทคโนโลยีและการจัดการ |
วิทยาลัยเทคโนโลยี |
ซาฟดันเนีย |
สำหรับงานหลักสูตร |
การลงโทษ: |
หัวข้อ: การตรวจสอบงานสำหรับขั้นตอน |
วิโคนาเวทส์ยา:กลาวินสกา อารินา โอเล็คซานดริฟนา |
1. อาจนำเสนอคำอธิบายของ Rozrahunkov สำหรับโครงการหลักสูตรนี้ |
อิเล็กทรอนิกส์และฉบับพิมพ์ |
2. ภาระผูกพันเกิดจากการพิมพ์ดีดไม่น้อยกว่า 20 หน้าโดยไม่มีเอกสารเพิ่มเติม |
3. RPP จัดทำขึ้นตาม GOST 7.32-91 และลงนามโดยเสมียน |
หุ่นยนต์ Kerivnik __________________
วิโคนาเวตส์ __________________
วันวางจำหน่าย " 26 " เวเรสเนีย 2017 ร.
รายการ 2
1.1 ข้อมูลพื้นฐานเกี่ยวกับแอสเซมเบลอร์ภาษา
3
1.1.1 คำสั่งการโทร
4
1.2 การจัดระเบียบโปรแกรมย่อยในภาษาแอสเซมเบลอร์
4
1.3 วิธีการถ่ายโอนพารามิเตอร์ในโปรแกรมย่อย
6
1.3.1 การถ่ายโอนพารามิเตอร์ผ่านการลงทะเบียน
1.3.2 การส่งผ่านพารามิเตอร์ผ่านสแต็ก
7
2 การออกแบบเชิงปฏิบัติ 9
2.1 คำชี้แจงของปัญหา
9 2.2 คำอธิบายของงานที่เกี่ยวข้อง 9
2.3 การทดสอบโปรแกรม วิสโนวอค 8 รายชื่อวรรณกรรมเข้า
เห็นได้ชัดว่าการเขียนโปรแกรมใน Assembly มีความสำคัญ
อย่างที่คุณทราบ มีหลายสิ่งหลายอย่างเกิดขึ้นในขณะนี้
ระดับสูง
1. อ่านข้อมูลพื้นฐานเกี่ยวกับภาษา Assembler (โครงสร้างและส่วนประกอบของโปรแกรม Assembler รูปแบบคำสั่ง การจัดระเบียบโปรแกรมย่อย ฯลฯ)
2. กำหนดประเภทของการดำเนินการบิต รูปแบบ และตรรกะของคำสั่งเชิงตรรกะของแอสเซมเบลอร์
3. สร้างโปรแกรมย่อยแต่ละรายการใน Assembly
4.. กำหนดคำศัพท์เกี่ยวกับหุ่นยนต์วิโคนัน
1 การออกแบบเชิงทฤษฎี
ข้อมูลพื้นฐานเกี่ยวกับภาษาแอสเซมเบลอร์
แอสเซมเบลอร์เป็นภาษาโปรแกรมระดับต่ำที่มีรูปแบบสำหรับบันทึกคำสั่งของเครื่องที่มนุษย์สามารถประมวลผลได้อย่างง่ายดาย
คำสั่งแอสเซมเบลอร์ภาษาจะสอดคล้องกับคำสั่งของตัวประมวลผลทีละคำสั่ง และในความเป็นจริง ในรูปแบบสัญลักษณ์แบบแมนนวล จะบันทึก (โค้ดช่วยในการจำ) คำสั่งและอาร์กิวเมนต์ของคำสั่งเหล่านั้น
ภาษาแอสเซมเบลอร์ยังมีบทคัดย่อโปรแกรมพื้นฐาน: การเชื่อมโยงส่วนของโปรแกรมและข้อมูลผ่านป้ายกำกับที่มีชื่อและคำสั่งเชิงสัญลักษณ์
คำสั่งแอสเซมเบลอร์อนุญาตให้รวมบล็อกข้อมูลในโปรแกรม (อธิบายอย่างชัดเจนหรืออ่านจากไฟล์)
ทำซ้ำส่วนของเพลงหลาย ๆ ครั้งตามที่ระบุไว้
รวบรวมชิ้นส่วนด้านหลังสมอง
ตั้งค่าที่อยู่ของส่วนวิกิ เปลี่ยนค่าของเครื่องหมายในกระบวนการคอมไพล์
ค่ามาโคร Vykoristuvat พร้อมพารามิเตอร์และใน
ความชุ่มชื้นและข้อบกพร่อง
· จำนวนโค้ดแบบ over-the-top ขั้นต่ำ (ขึ้นอยู่กับจำนวนคำสั่งขั้นต่ำและจำนวนปริศนา)
ผลลัพธ์ที่ได้คือความเร็วที่มากขึ้นและขนาดโปรแกรมที่เล็กลง · ภาระผูกพันที่ดีต่อโค้ด รายละเอียดเพิ่มเติมจำนวนมาก· อ่านโค้ดได้ไม่ดี, การปรับปรุงที่ยาก (การปรับปรุง, การเพิ่มความสามารถ)
· ปัญหาของการนำกระบวนทัศน์การเขียนโปรแกรมไปปฏิบัติและแบบแผนที่ซับซ้อนอื่นๆ ความซับซ้อนของการพัฒนา
· มีห้องสมุดที่มีอยู่น้อยกว่า ห้องสมุดเหล่านี้มีคุณค่าน้อย
· การเข้าถึงอุปกรณ์โดยตรง: พอร์ตอินพุต-เอาต์พุต การลงทะเบียนตัวประมวลผลพิเศษ
· “ความพอดี” สูงสุดสำหรับแพลตฟอร์มที่ต้องการ (vicoristan
คำแนะนำพิเศษ
· นามธรรมที่กว้างขวาง (เหล่านี้เป็นองค์ประกอบของระบบระดับสูง) - ตั้งแต่การออกแบบขั้นตอนและฟังก์ชัน (เพื่อลดความซับซ้อนในการดำเนินการตามกระบวนทัศน์การเขียนโปรแกรมขั้นตอน) ไปจนถึงโครงสร้างทางจิตและลูป (สำหรับกระบวนทัศน์การเขียนโปรแกรมเชิงโครงสร้าง)
· มาโคร
คำสั่งโทรออก
คำสั่งทั่วไปในแอสเซมเบลอร์ภาพยนตร์:
· คำสั่งถ่ายโอนข้อมูล (mov และ in)
· คำสั่งทางคณิตศาสตร์ (เพิ่ม, ย่อย, อิมัล และอื่นๆ)
การดำเนินการทางตรรกะและระดับบิต (หรือ, และ, xor, shr และ in)
· คำสั่งสำหรับควบคุมความคืบหน้าของการทำงานของโปรแกรม (jmp, loop, ret ฯลฯ)
· คำสั่งการโทรขัดจังหวะ (บางครั้งเรียกว่าคำสั่งควบคุม): int
· คำสั่งเข้าและแสดงผลในพอร์ต (เข้า, ออก)
สำหรับไมโครคอนโทรลเลอร์และไมโครคอมพิวเตอร์ ยังมีคำสั่งทั่วไปที่ส่งผลให้เกิดการตรวจสอบซ้ำและเคลื่อนไปนอกสมอง เช่น
· jne - ไปถ้ามีมากกว่าหนึ่งอัน
· jge - ไปที่โบราณมากขึ้นหรือมากขึ้น
หัวข้อที่ 1.4 ช่วยในการจำการประกอบ
โครงสร้างและรูปแบบของคำสั่ง
ประเภทของที่อยู่
2 ระบบคำสั่งไมโครโปรเซสเซอร์
วางแผน:
1 ภาษาแอสเซมเบลอร์
แนวคิดพื้นฐาน
สัญลักษณ์แอสเซมเบลอร์ Movi3 ประเภทของคำสั่งแอสเซมเบลอร์
4 คำสั่งประกอบ5 ระบบคำสั่งโปรเซสเซอร์
1 ฉัน ซิกแอสเซมเบลอร์แนวคิดพื้นฐาน
ภาษาแอสเซมบลี
1) - นี่คือการแสดงสัญลักษณ์ของภาษาเครื่อง กระบวนการทั้งหมดในเครื่องที่ระดับฮาร์ดแวร์ต่ำสุดขับเคลื่อนด้วยคำสั่งภาษาเครื่องเท่านั้น (คำแนะนำ)
2) Zvidsi ตระหนักว่าไม่ว่าชื่อใดก็ตาม ภาษาของแอสเซมเบลอร์จะเป็นของตัวเองสำหรับคอมพิวเตอร์ทุกประเภทโปรแกรมภาษาแอสเซมบลีคือชุดของบล็อกหน่วยความจำ ชื่อเรื่อง
3) สกินรอบๆ แถวที่แนะนำใต้ความคิดเห็นถูกถ่ายโอนไปยังสัญลักษณ์ซังส่วนหน่วยความจำ
4) โปรแกรมสามารถประกอบด้วยหนึ่งหรือหลายบล็อคเซ็กเมนต์ ส่วนของสกินประกอบด้วยภาษาทั้งหมด ส่วนสกินจะใช้รหัสโปรแกรมจำนวนมาก
ข้อเสนอภาษาแอสเซมบลีมีสี่ประเภท:
ข้อเสนอที่สร้างโปรแกรมอาจเป็นโครงสร้างทางวากยสัมพันธ์ที่แสดงถึงคำสั่ง มาโคร คำสั่ง หรือข้อคิดเห็น เพื่อให้นักแปลแอสเซมเบลอร์จดจำได้ สิ่งเหล่านี้สามารถสร้างขึ้นได้ตามกฎวากยสัมพันธ์ง่ายๆі สำหรับคำอธิบายอย่างเป็นทางการของ vikorystuvati ที่ดีกว่าเกี่ยวกับไวยากรณ์ของภาพยนตร์เกี่ยวกับกฎไวยากรณ์ kshtalt คืออะไรวิธีการเขียนโปรแกรมที่ครอบคลุมที่สุดคล้ายกับคำอธิบาย - ไดอะแกรมวากยสัมพันธ์การขยายตัวของรูปแบบเบ็กคุส-เนาร์
เพื่อการใช้งานจริง พกพาสะดวก
ไดอะแกรมวากยสัมพันธ์
ตัวอย่างเช่น ไวยากรณ์ของแอสเซมเบลอร์คำพูดสามารถอธิบายได้โดยใช้ไดอะแกรมวากยสัมพันธ์เพิ่มเติมที่แสดงในรูปที่ 10, 11, 12 ต่อไปนี้
Malyunok 10 - รูปแบบข้อเสนอภาษาแอสเซมบลี
Malyunok 11 - รูปแบบคำสั่งMalyunok 12 - รูปแบบของคำสั่งและคำสั่งมาโคร
เกี่ยวกับเด็กน้อย:ชื่อป้ายกำกับ
- ตัวระบุค่าซึ่งเป็นที่อยู่ของไบต์แรกในตำแหน่งข้อความเอาต์พุตของโปรแกรมซึ่งหมายถึง ฉัน -
ตัวระบุที่ทำให้คำสั่งนี้แตกต่างจากคำสั่งอื่นที่มีชื่อเดียวกันอันเป็นผลมาจากการประมวลผลโดยแอสเซมเบลอร์ คำสั่งเพลงของชื่อนี้อาจได้รับการกำหนดลักษณะของเพลง
รหัสการดำเนินงาน (OPC) คำสั่งนั้น - สิ่งเหล่านี้คือความหมายช่วยในการจำของคำสั่งเครื่องย่อย คำสั่งแมโคร หรือคำสั่งของนักแปล
ตัวดำเนินการ -
ส่วนของคำสั่ง คำสั่งแมโคร หรือคำสั่งแอสเซมเบลอร์ที่กำหนดอ็อบเจ็กต์ที่มีการเชื่อมโยงการดำเนินการ
1) ตัวถูกดำเนินการของแอสเซมเบลอร์อธิบายด้วยนิพจน์ที่มีค่าคงที่ตัวเลขและข้อความ ป้ายกำกับและตัวระบุสัญลักษณ์ตัวแปร การดำเนินการ และคำสงวนอื่นๆ ไดอะแกรมวากยสัมพันธ์จะช่วยได้,หาแล้วเดินไปตามทางจากทางเข้าโดยใช้แผนภาพ (ซ้าย) ไปยังทางออก (ขวา)หากวิธีดังกล่าวชัดเจน แสดงว่าข้อเสนอและโครงสร้างถูกต้องตามหลักวากยสัมพันธ์
หากไม่มีวิธีดังกล่าว คอมไพเลอร์จะไม่ยอมรับโครงสร้างนี้ 0 2 สัญลักษณ์แอสเซมเบลอร์ Movi 9 ;
อักขระที่ยอมรับได้เมื่อเขียนข้อความโปรแกรม: ? , @ , $ , _ , & ;
ตัวอักษรละตินทั้งหมด: , . () < > { } + / * % ! " " ? = # ^ .
ก-ฮ ก-ซ- ในกรณีนี้ ตัวอักษรใหญ่และเล็กถือว่าเท่ากัน
2) ตัวเลขเข้าє:
ถึง - 3) สัญญาณ
2) 4) ตัวคั่น - ข้อเสนอภาษาแอสเซมบลีถูกสร้างขึ้นโดย
3) จำนวนเต็มในระบบจำนวนสมัยใหม่ระบบใดระบบหนึ่ง : สอง, สิบ, สิบหก
การระบุตัวเลขเมื่อเขียนในโปรแกรมภาษาแอสเซมบลีเป็นไปตามกฎต่อไปนี้: 4) ตัวเลขหลักสิบไม่จำเป็นต้องเพิ่มสัญลักษณ์ใดๆ เพิ่มเติมสำหรับนิพจน์ เช่น 25 หรือ 139 สำหรับนิพจน์ในข้อความเอาท์พุต โปรแกรมตัวเลขคู่ จำเป็นหลังจากจดเลขศูนย์และตัวที่ไปที่โกดังแล้วให้ใส่ภาษาละติน "ข จำเป็นหลังจากจดเลขศูนย์และตัวที่ไปที่โกดังแล้วให้ใส่ภาษาละติน ".
5) ” เช่น 10010101
ตัวเลขที่สิบหกมีความฉลาดมากกว่าเมื่อเขียน: 0...9 อย่างแรกเลยกลิ่นเหม็นมาจากตัวเลข , มาลิช ตานักเขียนผู้ยิ่งใหญ่ ตัวอักษรละติน,จำเป็นหลังจากจดเลขศูนย์และตัวที่ไปที่โกดังแล้วให้ใส่ภาษาละติน ", ก,ค,ง,จ(!) ใน movakh สำหรับ ฉ,ก,บี,ค,ดี,อี.
เอฟ มิฉะนั้น ผู้แปลอาจมีปัญหาในการจดจำเลขฐานสิบหกผ่านตัวเลขที่สามารถสร้างขึ้นจากตัวเลขเพียง 0...9 (เช่น 190845) และจากตัวอักษรของอักษรละตินด้วย (เช่น EF15 - เพื่อ “อธิบาย” ให้นักแปลทราบว่าโทเค็นที่กำหนดไม่ใช่เลขสิบ แต่เป็นตัวระบุ โปรแกรมเมอร์มีหน้าที่พิเศษในการดูเลขสิบหกหากต้องการสร้างเลขฐานสิบหกที่ส่วนท้ายของลำดับเลขฐานสิบหก ให้เขียนอักษรละติน “ 0 ชม. - Tse obov'yazkova umova
หากตัวเลขที่สิบหกขึ้นต้นด้วยตัวอักษร ให้เขียนศูนย์นำหน้าไว้ข้างหน้า: EF15ชม. เป็นเรื่องที่ปฏิบัติได้สำหรับข้อเสนอสกินในการวางคำอธิบายของวัตถุ ซึ่งปิดท้ายด้วยเพลงหรือเพื่อความช่วยเหลือวัตถุเหล่านี้เรียกว่า
ตัวถูกดำเนินการ
- Ix สามารถคำนวณได้ดังนี้:
ตัวดำเนินการ
- วัตถุเหล่านี้ (ค่า รีจิสเตอร์ หรือศูนย์หน่วยความจำ) ซึ่งคำสั่งและคำสั่งดำเนินการ หรือวัตถุเหล่านี้ซึ่งระบุหรือชี้แจงคำแนะนำและคำสั่งเหล่านี้
เป็นไปได้ที่จะดำเนินการจำแนกประเภทของตัวถูกดำเนินการเพิ่มเติม:
ตัวถูกดำเนินการคงที่และไม่ใช่สื่อกลาง
ตัวถูกดำเนินการที่อยู่
ตัวดำเนินการซึ่งจะเคลื่อนที่
ที่อยู่แพทย์
ลงทะเบียนตัวถูกดำเนินการ; ตัวถูกดำเนินการฐานและดัชนี.
ตัวถูกดำเนินการเชิงโครงสร้าง บันทึก.
วางแผน:
ตัวดำเนินการเป็นส่วนประกอบพื้นฐาน รวมถึงส่วนหนึ่งของคำสั่งเครื่องที่ระบุอ็อบเจ็กต์ที่ใช้ดำเนินการ ในโหมด glagal ตัวถูกดำเนินการสามารถรวมเป็นโกดังในแสงที่ยุบได้เรียกว่าไวรัส
วิราซี
สิ่งเหล่านี้คือการรวมกันของตัวถูกดำเนินการและตัวดำเนินการที่ถือเป็นภาพรวม
ผลลัพธ์ของการคำนวณไวรัสอาจเป็นที่อยู่ของตำแหน่งหน่วยความจำที่กำหนดหรือค่าคงที่ (สัมบูรณ์)
ผู้ประกอบการประกอบ
ผู้ดำเนินการโอนประเภท;
ผู้ดำเนินการมอบหมายส่วนใหม่
ตัวดำเนินการสำหรับการตั้งชื่อประเภทโครงสร้าง
ผู้ดำเนินการสำหรับการลบที่อยู่คลังสินค้าส่วนและไวรัส
ผู้ดำเนินการ otrimannya usunennya virazu
1 คำสั่งการชุมนุม
คำสั่งแอสเซมเบลอร์ปรากฏ:
1) คำสั่งการแบ่งส่วน
ก่อนหน้านี้ เราได้พูดคุยถึงกฎพื้นฐานทั้งหมดสำหรับการเขียนคำสั่งและตัวถูกดำเนินการในโปรแกรมภาษาแอสเซมบลี
เราสูญเสียพลังงานไปแล้ว วิธีจัดรูปแบบลำดับคำสั่งให้ถูกต้องเพื่อให้นักแปลสามารถประมวลผลคำสั่งเหล่านั้นได้ และไมโครโปรเซสเซอร์สามารถออกได้
เมื่อดูที่สถาปัตยกรรมของไมโครโปรเซสเซอร์ เราพบว่ามีรีจิสเตอร์หกส่วน ซึ่งสามารถเข้าถึงได้พร้อมกัน:
ด้วยส่วนรหัสเดียว
มีหนึ่งส่วนกอง;
ด้วยส่วนข้อมูลเดียว
จากสามกลุ่มข้อมูลเพิ่มเติม
ในทางกายภาพ เซ็กเมนต์คือพื้นที่หน่วยความจำที่ถูกครอบครองโดยคำสั่งและ (หรือ) ข้อมูล ซึ่งที่อยู่จะถูกคำนวณตามค่าในการลงทะเบียนเซ็กเมนต์ที่เกี่ยวข้อง คำอธิบายทางวากยสัมพันธ์ของเซ็กเมนต์ในภาษาแอสเซมบลีพร้อมโครงสร้างแสดงในรูปที่ 13:รูปที่ 13 - คำอธิบายทางวากยสัมพันธ์ของเซ็กเมนต์ในภาษาแอสเซมบลี
สิ่งสำคัญคือต้องทราบว่าความสำคัญด้านการทำงานของเซ็กเมนต์นั้นกว้างกว่าการแบ่งโปรแกรมออกเป็นบล็อกของโค้ด ข้อมูล และสแต็กมาก
การแบ่งส่วนนั้นมากกว่ากลไกด้านข้างบางส่วนที่เกี่ยวข้อง
แนวคิดการเขียนโปรแกรมแบบโมดูลาร์
มันบ่งบอกถึงการรวมกันของการออกแบบโมดูลอ็อบเจ็กต์ที่สร้างโดยคอมไพเลอร์ โดยแยกออกจากโมดูลการเขียนโปรแกรมต่างๆ
ซึ่งจะทำให้คุณสามารถรวมโปรแกรมที่เขียนด้วยภาษาต่างๆ เข้าด้วยกันได้
สำหรับการดำเนินการตามรูปแบบต่างๆ ของการรับรู้แบบรวมดังกล่าว ตัวถูกดำเนินการจะระบุไว้ในคำสั่ง SEGMENT
2) คำสั่งการจัดการรายการ
2 คำสั่งการจัดการรายการอยู่ในกลุ่มต่อไปนี้:
คำสั่งขั้นสูงสำหรับการจัดการรายชื่อ
คำสั่งที่แสดงในรายการไฟล์ที่จะรวมไว้
คำสั่งในการแสดงบล็อกสมัชชาจิต
คำสั่งสำหรับการแสดงคำสั่งแมโคร
คำสั่งสำหรับรายการข้อมูลเกี่ยวกับการถ่ายโอนข้อความ
คำสั่งในการเปลี่ยนรูปแบบรายการ
ระบบคำสั่งโปรเซสเซอร์
ระบบคำสั่งของโปรเซสเซอร์แสดงโดย Mayunku 14
ในโปรเซสเซอร์หลายตัว ฟังก์ชันเหล่านี้ถูกกำหนดโดยคำสั่งเดียวมธ (สำหรับไบต์เปเรซิลัน - MOVB ) เอลซี โดยใช้วิธีการที่แตกต่างกันที่อยู่ตัวถูกดำเนินการ
ในโปรเซสเซอร์อื่นๆ จะใช้คำสั่งมธ ยังมีคำสั่งอีกสองสามคำสั่งก่อนที่จะสามารถกำหนดรายการฟังก์ชันได้นอกจากนี้ก่อนคำสั่งในการส่งข้อมูลจะมีคำสั่งในการแลกเปลี่ยนข้อมูล (ความหมายจะขึ้นอยู่กับคำว่า แลกเปลี่ยน- สามารถแลกเปลี่ยนข้อมูลระหว่างการลงทะเบียนภายในระหว่างสองครึ่งหนึ่งของหนึ่งการลงทะเบียน ( แลกเปลี่ยน
) หรือระหว่างรีจิสเตอร์กับตรงกลางของหน่วยความจำ
2 คำแนะนำทางคณิตศาสตร์
คำแนะนำทางคณิตศาสตร์ถือว่ารหัสตัวถูกดำเนินการเป็นรหัสตัวเลขสองหรือทศนิยมสอง
คำสั่งเหล่านี้สามารถแบ่งออกเป็นห้ากลุ่มหลัก:
คำสั่งสำหรับการดำเนินการด้วยอาการโคม่าคงที่ (การบวก, การลบ, การคูณ, การหาร);
คำสั่งสำหรับการดำเนินการที่มีอาการโคม่าลอยตัว (การบวก, การลบ, การคูณ, การหาร);
คำสั่งทำความสะอาด;
คำสั่งสำหรับการเพิ่มขึ้นและการลดลง
การปรับระดับทีม
3 คำสั่งการทำงานจากหมายเลขคงที่ทำงานจากรหัสในโปรเซสเซอร์และการลงทะเบียนหน่วยความจำเช่นเดียวกับจากรหัสคู่หลัก
6 คำสั่งทำให้เท่ากันมีจุดมุ่งหมายเพื่อทำให้ตัวถูกดำเนินการอินพุตสองตัวเท่ากัน
โดยพื้นฐานแล้ว มันจะคำนวณความแตกต่างระหว่างตัวถูกดำเนินการสองตัวนี้ แต่ไม่ได้สร้างตัวถูกดำเนินการเอาต์พุต แต่จะเปลี่ยนบิตในรีจิสเตอร์ตัวประมวลผลสำหรับผลลัพธ์ของเอาต์พุตนี้แทน การติดตามคำสั่งจะเป็นคำสั่งตามลำดับ (เรียกว่าคำสั่งการเปลี่ยนแปลง) ซึ่งจะวิเคราะห์บิตในรีจิสเตอร์ตัวประมวลผลและบันทึกการดำเนินการตามค่าในโปรเซสเซอร์บางตัว คำสั่ง Lanczyuzhkov จะถูกส่งไปเพื่อจัดลำดับสองลำดับของตัวถูกดำเนินการในหน่วยความจำ
7 คำสั่งเชิงตรรกะ
คำสั่งแบบลอจิคัลจะติดตามตัวถูกดำเนินการของการดำเนินการแบบลอจิคัล (ทีละบิต) ดังนั้นโค้ดของตัวถูกดำเนินการจึงไม่เพียงมองเป็นหนึ่งเดียว แต่ยังเป็นชุดของบิตที่อยู่ติดกัน
ที่นี่มีกลิ่นเหม็นปรากฏขึ้น
คำแนะนำทางคณิตศาสตร์- คำสั่งทางตรรกะเป็นไปตามการดำเนินการพื้นฐานต่อไปนี้:
ตรรกะมากกว่า I ตรรกะมากกว่า ABO เพิ่มหลังจากโมดูล 2 (รวม ABO)
8 คำสั่ง Destroy ช่วยให้คุณสามารถทำลายโค้ดตัวถูกดำเนินการทางด้านขวา (สำหรับหลักที่น้อยกว่า) หรือทางซ้าย (สำหรับหลักที่เก่ากว่า)
ประเภทของค่า (ตรรกะ เลขคณิต หรือวัฏจักร) บ่งชี้ว่าค่าของบิตสูง (หากแยกไปทางขวา) หรือบิตต่ำ (หากแยกทางซ้าย) จะเป็นค่าใหม่ และยังหมายความว่าค่าส่วนเกินของ บิตสูงจะถูกบันทึกไว้ (เมื่อถูกทำลายไปทางซ้าย) หรือค้างคาวหนุ่ม (ด้วยมือขวาหัก)
ความล้มเหลวแบบวนทำให้โค้ดของตัวถูกดำเนินการถูกทำลายตามตัวเลข (หลังลูกศรปีหากมือขวาหัก หรือทำลายกับลูกศรปีหากมือซ้ายหัก)
ด้วยแหวนวงนี้คุณจะเข้าหรือไม่เข้าธงโอนก็ได้
ในแฟล็กการถ่ายโอน (ตามที่ได้รับชัยชนะ) ค่าของบิตสูงเมื่อเคลื่อนที่ไปทางซ้ายแบบวนรอบและค่าของบิตที่อายุน้อยกว่าเมื่อหมุนวนไปทางขวาจะถูกบันทึก
เห็นได้ชัดว่าส่วนสำคัญของสัญลักษณ์จะถูกโอนไปยังตำแหน่งที่อายุน้อยกว่าในกรณีของการทำลายตามวัฏจักรทางด้านซ้าย และตำแหน่งอาวุโสในกรณีของการทำลายตามวัฏจักรทางด้านขวา 9 คำสั่งการเปลี่ยน
คำสั่งการเปลี่ยนใช้ในการจัดระเบียบรอบต่าง ๆ การคลี่คลายการเรียกใช้โปรแกรมย่อย ฯลฯ เพื่อทำลายความคืบหน้าล่าสุดของการทำงานของโปรแกรม
คำสั่งเหล่านี้ถูกเขียนลงในคำสั่ง register ด้วยความหมายใหม่ และทำให้โปรเซสเซอร์ไม่ย้ายไปยังลำดับปัจจุบันของคำสั่ง แต่ไปยังคำสั่งอื่นในหน่วยความจำโปรแกรมคำสั่งการเปลี่ยนแปลงบางคำสั่งจะถูกส่งกลับไป ณ จุดที่ทำให้เกิดการเปลี่ยนแปลง คำสั่งอื่นๆ จะไม่ส่งสัญญาณนี้ เมื่อถ่ายโอนข้อมูลแล้ว พารามิเตอร์ตัวประมวลผลที่แน่นอนจะถูกบันทึกลงในสแต็ก
หากไม่ได้ถ่ายโอนการตั้งค่า พารามิเตอร์ตัวประมวลผลที่แน่นอนจะไม่ถูกบันทึก
การเปลี่ยนแปลงหากไม่เท่ากับศูนย์
การเปลี่ยนแปลงซึ่งหมายถึงการประดิษฐ์ใหม่
การเปลี่ยนแปลงเนื่องจากไม่มีการทดแทน
การเปลี่ยนแปลงซึ่งมากกว่าศูนย์
การเปลี่ยนแปลงซึ่งน้อยกว่าหรือมากกว่าศูนย์
ทันทีที่การเปลี่ยนแปลงทางจิตสิ้นสุดลง การเข้าสู่การลงทะเบียนคำสั่งที่มีความสำคัญใหม่ก็จะดำเนินการ
เนื่องจากการเปลี่ยนแปลงทางจิตไม่สิ้นสุด ตัวประมวลผลคำสั่งจึงเพิ่มขึ้น และตัวประมวลผลจะเลือกและเลือกคำสั่งถัดไปตามลำดับ
โดยเฉพาะอย่างยิ่งสำหรับการตรวจสอบจิตใจของการเปลี่ยนแปลงนั้นมีการติดตั้งทีมปรับสมดุล (BMR) ซึ่งส่งคำสั่งไปยังการเปลี่ยนแปลงทางจิต (หรือส่งไปยังทีมการเปลี่ยนแปลงทางจิตหลายทีม)
มิฉะนั้น สามารถติดตั้งเป็นคำสั่งอื่นได้ เช่น คำสั่งสำหรับการส่งข้อมูล หรือคำสั่งทางคณิตศาสตร์หรือตรรกะ
สิ่งสำคัญคือคำสั่งการเปลี่ยนแปลงจะต้องไม่เปลี่ยนแปลง ซึ่งช่วยให้คุณสามารถใส่คำสั่งการเปลี่ยนแปลงหลายคำสั่งทีละคำสั่งได้
สถานที่พิเศษในคำสั่งสำหรับการเปลี่ยนจากการหมุนถูกยึดโดยคำสั่งเพื่อขัดจังหวะ ไดอะแกรมวากยสัมพันธ์จะช่วยได้,หาแล้วเดินไปตามทางจากทางเข้าโดยใช้แผนภาพ (ซ้าย) ไปยังทางออก (ขวา)คำสั่งเหล่านี้ในตัวถูกดำเนินการอินพุตจะส่งออกจำนวนการวนซ้ำ (ที่อยู่เวกเตอร์) 0 2 สัญลักษณ์แอสเซมเบลอร์ Movi 9 วิสโนวอก: ? , @ , $ , _ , & ภาษาแอสเซมบลีเป็นสัญลักษณ์มากกว่าภาษาเครื่อง , . () < > { } + / * % ! " " ? = # ^ .
ภาษาของแอสเซมเบลอร์นั้นมีเอกลักษณ์เฉพาะสำหรับคอมพิวเตอร์ทุกประเภท
โปรแกรมภาษาแอสเซมบลีคือชุดของบล็อกหน่วยความจำที่เรียกว่าเซกเมนต์หน่วยความจำ
ส่วนของสกินประกอบด้วยภาษาทั้งหมด ส่วนสกินจะใช้รหัสโปรแกรมจำนวนมาก
1 ข้อเสนอภาษาแอสเซมบลีมีสี่ประเภท: คำสั่งและคำแนะนำ คำสั่งแมโคร คำสั่ง และแถวความคิดเห็น
2 อักขระที่ยอมรับได้เมื่อเขียนข้อความโปรแกรมคือตัวอักษรละตินทั้งหมด:
3 - ในกรณีนี้ ตัวอักษรใหญ่และเล็กถือว่าเท่ากัน
4 ตัวเลขเข้า
5 - สัญญาณ