คำสั่ง ADC
โดย S หมายถึง r,n (HL),(IX + d) หรือ (IY + d)
เราจะใช้คำสั่ง ADC A,S ในการบวกแบบหลายหลักโดยจะใช้ในการบวกของหลักที่ต่อจากการบวกในหลักแรกเพราะจะต้องนำตัวทดที่เกิดจากบวกมารวมด้วย
ตัวอย่างการใช้งาน
จงเขียนโปรแกรมบวกเลขโดยให้ BC = ตัวตั้ง HL = ตัวบวก และ DE = ผลลัพธ์
LD A,C ; นำข้อมูลตัวตั้งหลักหน่วยมาไว้ในรีจิสเตอร์ A
ADD A,L ; ทำการบวกข้อมูลในหลักแรกแบบไม่คิดตัวทด
LD E,A ; นำผลลัพธ์ในรีจิสเตอร์ A มาเก็บไว้ในรีจิสเตอร์ E
LD A,B ; นำข้อมูลตัวตั้งหลักต่อไปมาไว้ในรีจิสเตอร์ A
ADC A,H ; ทำการบวกข้อมูลตัวตั้งกับตัวบวกและตัวทดจากหลักก่อน
LD D,A ; นำผลลัพธ์ในรีจิสเตอร์ A มาเก็บไว้ในรีจิสเตอร์ D
พิจารณาการเก็บข้อมูลจะเห็นว่าขั้นตอนการบวกจะเริ่มจากบวกหลักแรกก่อน โดยนำข้อมูลในรีจิสเตอร์ C มาเก็บไว้ในรีจิสเตอร์ A ด้วยคำสั่ง LD A,C จากนั้นจึงนำมาบวกกับข้อมูลในรีจิสเตอร์ D ด้วยคำสั่ง ADD A,D จากนั้นจะนำผลลัพธ์ซึ่งอยู่ในรีจิสเตอร์ A ไปเก็บไว้ในรีจิสเตอร์ E ด้วยคำสั่ง LD E,A โดยการบวกนี้หากมีตัวทดเกิดขึ้นตัวทดจะถูกเก็บในแฟลก Cy ซึ่งเป็นบิทหนึ่งในรีจิสเตอร์ F สำหรับการบวกหลักถัดไป จะนำข้อมูลในรีจิสเตอร์ B มาเก็บใน A ก่อนด้วยคำสั่ง LD A,B ต่อจากนั้นจึงนำไปบวกกับข้อมูลในรีจิสเตอร์ H และข้อมูลใน Cy โดยใช้คำสั่ง ADC A,H แล้วจึงเก็บผลลัพธ์ไว้ในรีจิสเตอร์ D โดยใช้คำสั่ง LDD , A โดยการบวกนี้ ถ้ามีตัวทดเกิดขึ้นอีกก็จะนำไปเก็บใน Cy แทนตัวทดครั้งก่อน