ในชุดคำสั่งบางชุดมีคำแนะนำที่แตกต่างกันในการโหลดรีจิสเตอร์จากหน่วยความจำเก็บรีจิสเตอร์ลงในหน่วยความจำหรือถ่ายโอนสิ่งต่าง ๆ ระหว่างรีจิสเตอร์ ในขณะที่บางรูปแบบภาษาประกอบใช้คำกริยา "ภาระ" สำหรับทุกอย่าง (เช่น Zilog ของจำ Z80 ใช้ld a,(1234h)
, ld (1234h),a
และld a,b
) และบางส่วนใช้ "T" ransfer (เช่น 6502 กับ TXA สำหรับ "การถ่ายโอน X เพื่อ A") บางใช้ "ย้าย" สำหรับการดำเนินการ regster-to-register เพื่อแยกความแตกต่างจากโหลดและร้านค้า หากมีรูปแบบคำสั่งเช่น 68000 ซึ่งใช้แบบฟอร์มคำสั่งทั่วไปแบบเดียวกันสำหรับการลงทะเบียนเพื่อลงทะเบียน, การลงทะเบียนสู่หน่วยความจำ, หน่วยความจำต่อการลงทะเบียนและแม้กระทั่งการดำเนินการหน่วยความจำต่อหน่วยความจำคำกริยา "ย้าย" คือ อาจเป็นคำกริยาที่มีวัตถุประสงค์ทั่วไปที่ดีกว่าทางเลือกใด ๆ
ฉันไม่มีความคิดเกี่ยวกับมินิคอมพิวเตอร์หรือชุดคำสั่งเมนเฟรมก่อน 8080 แต่ 8080 ใช้ "load" และ "store" สำหรับคำแนะนำการเข้าถึงหน่วยความจำส่วนใหญ่และ "mov" สำหรับคำแนะนำการลงทะเบียนเพื่อลงทะเบียน แต่คำแนะนำส่วนใหญ่ที่สามารถใช้งานได้ ในการลงทะเบียน 8 บิตโดยพลการยังสามารถทำงานกับ "M" ซึ่งเป็นตำแหน่งหน่วยความจำที่ระบุโดย HL ดังนั้น "MOV" ไปยังหรือจาก "M" จะทำงานเป็นโหลดหรือเก็บ
สำหรับความแตกต่างระหว่าง "คัดลอก" และ "ย้าย" ฉันสงสัยว่ามีส่วนเกี่ยวข้องกับความจริงที่ว่ารหัสไม่สามารถสร้างหรือทำลายทะเบียนได้ พวกมันมีอยู่จริง ในการอธิบายพฤติกรรมของลำดับของรหัสmov bx,ax / mov ax,1234
มันทำให้รู้สึกมากกว่าที่จะพูดว่าคำสั่งแรกคัดลอก bx ไปยังขวานและคำสั่งที่สองทำลายค่าในax
และแทนที่ด้วยค่า 1234 หรือทำให้รู้สึกดูเป็นครั้งแรก คำสั่งที่มีการย้ายค่าจาก bx ไปยังขวาน (ทำให้ค่าในขวานเป็น "ไม่สนใจ") และคำสั่งที่สองโหลดขวาน (ซึ่งไม่ได้สนใจ) กับ 1234? บางครั้งผู้ลงทะเบียนแหล่งข้อมูลยังคงมีความหมายหลังจากคำสั่งลงทะเบียนถ่ายโอน แต่เนื่องจากไม่มีอะไรในชุดคำสั่งที่ระบุว่าจะเป็นเช่นนั้นหรือไม่