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


        สามารถกระทำได้ 2 ลักษณะ คือ

1. โหลดโดยตรงไปให้รีจิสเตอร์ A

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

        โดย A หมายถึง รีจิสเตอร์ A
            nn หมายถึง ข้อมูลขนาด 16 บิต เช่น 2200H หรือ 2305H

ลักษณะการกระทำ            A ⬅ (nn)

        คำสั่งนี้เป็นการโหลดข้อมูลจากหน่วยความจำในตำแหน่งแอดเดรสที่ระบุ (nn) ไปให้แก่รีจิสเตอร์ A เช่น LD A,(2300H) จะเป็นการโหลดข้อมูลจากหน่วยความจำในตำแหน่ง 2300H ไปให้รีจิสเตอร์ A ถ้าข้อมูลในตำแหน่งดังกล่าวมีค่า 54H รีจิสเตอร์ A ก็จะมีค่า 54H ตามไปด้วย

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

        คำสั่ง LD A,(nn)นี้จะใช้กับรีจิสเตอร์ A ได้เพียงตัวเดียวไม่สามารถใช้กับรีจิสเตอร์ตัวอื่นได้ เช่น ถ้าต้องการนำหน่วยความจำในแอดเดรส 2303H ไปให้รีจิสเตอร์ E จะเขียนคำสั่งเป็น LD E, (2303H) ไม่ได้จะต้องเขียนคำสั่งโหลดข้อมูลมาเก็บไว้ในรีจิสเตอร์ A ก่อนด้วยคำสั่งLD A,(2303H) ต่อจากนั้นทำการโหลดข้อมูลจาก A ไปให้ E ด้วยคำสั่ง LD E,A
        สำหรับการถอดรหัสคำสั่งจะต้องใส่ข้อมูลตัวเลข 8 บิตหลังก่อน 8 บิตหน้า เช่น คำสั่ง LD A,(2200H) เมื่อถอดรหัสคำสั่งจะได้เป็น 3A 00 22 คือขึ้นต้นด้วย 00 แล้วจึงตามด้วย 22

2. โหลดโดยการชี้ตำแหน่งด้วยรีจิสเตอร์คู่ HL

รูปแบบคำสั่ง                LD r,(HL)

        โดย r เป็นรีจิสเตอร์ขนาด 8 บิต ได้แก่ A,B,C,D และ E
            (HL) หมายถึง ตำแหน่งความจำ ณ แอดเดรส ที่มีค่าตรงกับ HL

ลักษณะการกระทำ            r ⬅ (HL)

        เป็นการโหลดข้อมูลจากหน่วยความจำในตำแหน่งแอดเดรสที่มีค่าเท่ากับข้อมูลที่เก็บไว้ในรีจิสเตอร์ HL ไปให้ รีจิสเตอร์ r เช่นถ้า HL = 2303 H แล้วใช้คำสั่ง LD E,(HL) จะเป็นการนำข้อมูลจากหน่วยความจำในตำแหน่ง 2303H ไปให้รีจิสเตอร์ E ฉะนั้นการใช้คำสั่งนี้จึงต้องกำหนดค่าของ HL เสียก่อนเพื่อให้ HL ชี้ไปยังตำแหน่งที่ต้องการ คือ
               LD H,23 H ; กำหนดค่ารีจิสเตอร์ H ให้มีค่า 23 H
               LD L,03 H ; กำหนดค่ารีจิสเตอร์ L ให้มีค่า 03H
               LD E, (HL) ; โหลดข้อมูลจากหน่วยความจำตำแหน่ง 2303H ไปให้รีจิสเตอร์ E โดยการทำงานจะเป็นดังรูป

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

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