คำสั่งสำหรับหุ่นยนต์และแอสเซมเบลอร์ภาษา sklom

สำหรับผู้ลงโฆษณา

ติดต่อ โกลอฟนาหุ่นยนต์ รายการภาษาที่ใช้เขียนโปรแกรมเอาท์พุตเรียกว่า เข้าภาษาของฉัน และภาษาที่โปรเซสเซอร์ถ่ายโอนสำหรับการประมวลผลวิดีโอ - สุดสัปดาห์ของฉัน. กระบวนการแปลงภาษาอินพุตเป็นภาษาเอาต์พุตเรียกว่า

ออกอากาศ. เนื่องจากโปรเซสเซอร์เหล่านี้ผลิตโปรแกรมในภาษาเครื่องที่มีรหัสคู่ซึ่งไม่ได้ตั้งโปรแกรมไว้สำหรับการเขียนโปรแกรม จึงจำเป็นต้องแปลโปรแกรมเอาท์พุตทั้งหมดวิโดมิ สองวิธีการออกอากาศ: การรวบรวมและการตีความ ที่การรวบรวม โปรแกรมเอาท์พุตจะถูกถ่ายโอนไปยังโปรแกรมเอาท์พุตที่เทียบเท่ากันทันทีที่เรียกว่าวัตถุประสงค์ โปรแกรมแล้วก็เสร็จสิ้น

ออกอากาศ. กระบวนการนี้ดำเนินการโดยใช้ความช่วยเหลือพิเศษโปรแกรม เรียกว่าคอมไพเลอร์ คอมไพเลอร์ซึ่งภาษาอินพุตแสดงในรูปแบบสัญลักษณ์โดยภาษาเครื่อง (เอาต์พุต) ของรหัสคู่เรียกว่าผู้ประกอบ

การตีความ

ข้อความแต่ละแถวในโปรแกรมเอาต์พุตจะถูกวิเคราะห์ (ตีความ) และระบุคำสั่งให้สิ้นสุดทันที

การดำเนินการตามวิธีนี้ขึ้นอยู่กับ

โปรแกรมล่าม

การตีความใช้เวลานานมาก เพื่อเพิ่มประสิทธิภาพในการเปลี่ยนการประมวลผลของแถวสกิน ล่ามจะต้องทำงานใหม่ทั้งหมดก่อนทีม

แถวที่สัญลักษณ์ (

- ลำดับของสัญลักษณ์ถูกสร้างขึ้นและใช้เพื่อกำหนดตำแหน่งให้กับโปรแกรมเอาท์พุตของฟังก์ชัน

ภาษาแอสเซมเบลอร์ที่แสดงด้านล่างนี้ถูกนำมาใช้พร้อมกับการคอมไพล์เพิ่มเติม

คุณสมบัติของภาษา

คุณสมบัติหลักของแอสเซมเบลอร์:

● การแทนที่รหัสคู่ในภาษาด้วยชื่อสัญลักษณ์ - มนีโม-นิกา.ตัวอย่างเช่น สำหรับคำสั่งเพิ่มเติม (

) ช่วยในการจำ 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 - สัญญาณ