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


รูปแบบคำสั่ง       LD dd,(nn)

          dd หมายถึง รีจิสเตอร์คู่ ได้แก่ BC,DE,HL,SP,IX,IY
          nn คือ ข้อมูลขนาด 16 บิต เช่น 2200H หรือ 2305H
          (nn) หมายถึง ข้อมูลในหน่วยความจำในแอดเดรสที่ระบุ

      ลักษณะการทำงาน เป็นการนำข้อมูลในหน่วยความจำในแอดเดรสที่ระบุด้วยค่า nn ไปให้กับรีจิสเตอร์คู่ dd ที่ระบุโดยรีจิสเตอร์ตัวหลังจะได้ข้อมูลในหน่วยความจำแอดเดรส nn และรีจิสเตอร์ตัวหน้าจะได้ข้อมูลหน่วยความจำในแอดเดรสถัดไป

ตัวอย่าง       คำสั่ง LD DE,(2302H)

      จะเป็นคำสั่งโหลดข้อมูลจากหน่วยความในแอดเดรส 2302H ไปเก็บไว้ในรีจิสเตอร์ E และ นำข้อมูลในแอดเดรสถัดไปคือแอดเดรส 2303H ไปเก็บไว้ในรีจิสเตอร์ D ดังรูป

รูปแสดงการทำงานของคำสั่ง LD DE,(2302H)

      ผลของคำสั่งนี้จะแตกต่างจากคำสั่ง LD DE,2302H ซึ่งหมายถึงให้รีจิสเตอร์ D มีค่า 23H และรีจิสเตอร์ E มีค่าเป็น 02H ซึ่งมีการทำงานดังรูป

รูปแสดงการทำงานของคำสั่ง LD DE,2302H

      การใช้คำสั่งโหลด 16 บิตโหลดข้อมูลจากหน่วยความจำไปให้รีจิสเตอร์นั้นจะมีประสิทธิภาพสูงกว่าการใช้คำสั่งโหลดแบบ 8 บิต เช่น ถ้าต้องการโหลดข้อมูลจากหน่วยความจำไปให้รีจิสเตอร์ในลักษณะให้ D<---(2201H) และ E<--- (2200H)ถ้าใช้คำสั่งโหลด 8 บิต จะต้องเขียนเป็น


      แต่ถ้าใช้คำสั่งโหลด 16 บิต จะใช้เพียงคำสั่งเดียว คือ LD DE,(2200H)ก็จะได้ตามจุดประสงค์ดังกล่าว แต่อย่างไรก็ตามคำสั่งโหมด 16บิต ยังขาดความยืดหยุ่นบางประการคือ
           - หน่วยความจำที่จะโหลดต้องมีแอดเดรสติดกัน
           - ลักษณะการโหลดเป็นการโหลดให้ข้อมูลแอดเดรสที่ระบุไปยังรีจิสเตอร์ตัวหลังและข้อมูลในแอดเดรสถัดไปให้แก่รีจิสเตอร์ตัวหน้าเท่านั้นไม่สามารถสลับกันได้
           - แอดเดรสอยู่ห่างกัน เช่นต้องการโหลด D < - - (2202H) และ E<- - (2200H)
           - หรือต้องการโหลดสลับแอดเดรสกัน เช่น D<- -(2200H) และ E< - -(2201H)
           - หรือโหลดในตำแหน่งแอดเดรสเดียวกัน เช่น D< - - (2200H) และ E<- - (2200H)จะใช้คำสั่งโหลด 16 บิต LD dd,(nn) ไม่ได้ต้องใช้กลุ่มคำสั่งโหลล 8 บิตจัดการแทน