คำสั่งในการโหลดข้อมูลจากรีจิสเตอร์คู่หนึ่งไปยังรีจิสเตอร์อีกคู่หนึ่ง



        จะไม่มีคำสั่งในลักษณะ LD dd,ss แต่จะใช้คำสั่ง PUSH และ POP แทนโดยคำสั่ง PUSH ss จะเป็นการนำข้อมูลจากรีจิสเตอร์คู่ ss ไปเก็บไว้ในสแตก (Stack) และคำสั่ง POP dd จะเป็นการนำข้อมูลจากสแตกมาเก็บไว้ในรีจิสเตอร์คู่ dd

รูปแบบคำสั่ง          PUSE ss
                     POP dd

        โดย ss และ dd คือรีจิสเตอร์คู่ ได้แก่ AF,BC,DE,HL,IX และ IY

       ลักษณะการทำงาน
               คำสั่ง PUSH ss จะเป็นการนำข้อมูลจากรีจิสเตอร์คู่ ss ไปเก็บไว้ในสแตก
               คำสั่ง POP dd จะเป็นการนำข้อมูลจากสแตกมาเก็บไว้ในรีจิสเตอร์คู่ dd

รูปแสดงการทำงานของคำสั่งโหลดแบบใช้ดัชนี

        จากรูปเมื่อใช้คำสั่ง PUSH BC จะเป็นการนำข้อมูลในรีจิสเตอร์คู่ BC ในที่นี้คือ 1234H ไปเก็บไว้ในสแตก ต่อจากนั้น เมื่อใช้คำสั่ง PUSH DE จะเป็นการนำข้อมูลในรีจิสเตอร์คู่ DE ในที่นี้คือค่า 5678H ไปเก็บไว้ในสแตก โดยซ้อนต่อจากข้อมูลเดิม เหมือนการวางจานใบใหม่ซ้อนใบเก่า ต่อจากนั้น เมื่อใช้คำสั่ง POP HL จะเป็นการดึงข้อมูลบนสุดของสแตก ในที่นี้คือค่า 5678H ไปให้แก่รีจิสตอร์คู่ HL โดย H จะได้ข้อมูลเท่ากับ 56H และ L จะได้ข้อมูลเป็น 78H โดยข้อมูล 5678H ที่ดึงขึ้นมาก็จะหายไปจากสแตก เหมือนเฉพาะข้อมูล 1234H ซึ่งยังไม่ถูกดึง
        ตัวอย่าง ต้องการโหลดข้อมูลจาก BC ไปให้แก่ DE
ในกรณีโหมด 16 บิต จะใช้คำสั่ง
               PUSE BC
               POP DE
สำหรับกรณีใช้คำสั่งโหมด 8 บิต จะใช้คำสั่ง
               LD D,B
               LD E,C
        คือจะโหมดข้อมูลจาก B ให้ D และจาก E ให้ C แต่ในกรณีต้องการโหลดข้อมูลในลักษณะสลับกัน คือ จาก B ให้ E และจากCไปให้ D คือรีจิสเตอร์คู่ตัวหน้าไปให้กับตัวหลังจะกระทำโดยใช้คำสั่งโหลด 16 บิต ไม่ได้ต้องใช้คำสั่งโหลด 8 บิตแทน เพราะในคำสั่งโหลด 16 บิตนั้น ข้อมูลในรีจิสเตอร์คู่ตัวหน้าจะถูกโหลดให้แก่รีจิสเตอร์ปลายทางตัวหน้าและข้อมูลในรีจิสเตอร์คู่ตัวหลังจะถูกโหลดให้แก่รีจิสเตอร์ปลายทางตัวหลังเท่านั้นจะสลับกันไม่ได้