กลุ่มคำสั่งการกระโดด
คำจำกัดความของตัวแปร
Rd คือ รีจีสเตอร์ R0 - R31
Rr คือ รีจีสเตอร์ R0 - R31
K คือ ค่าคงที่ขนาด 8 บิท
X คือ รีจีสเตอร์ X
Y คือ รีจีสเตอร์ Y
q คือ ค่าระยะห่าง มีค่า 0 - 63
Z คือ รีจีสเตอร์ Z
k คือ ตำแหน่งหน่วยความจำใน SRAM
k คือ ตำแหน่งในหน่วยความจำ 0 - 65565
P คือ รีจีสเตอร์ Input / Output
RJMP k
คำสั่งกระโดดแบบ Relative
k คือ ตำแหน่งหน่วยความจำใน SRAM
IJMP k
คำสั่งกระโดดไปยังตำแหน่งหนาวยความจำที่ถูกชี้โดยรีจีสเตอร์ Z
k คือ ตำแหน่งหน่วยความจำใน SRAM
RCALL k
คำสั่งกระโดดไปยังโปรแกรมย่อย ที่ k
k คือ ตำแหน่งหน่วยความจำใน SRAM
ICALL
คำสั่งกระโดดไปทำงานโปรแกรมย่อยที่ชี้ตำแหน่งโดยรีจีสเตอร์ Z
RET
คำสั่งกลับจากโปรแกรมย่อย
RETI
คำสั่งกลับจากโปรแกรมบริการอินเตอร์รัพท์
CPSE Rd,Rr
คำสั่งเปรียบเทียบข้อมูลในรีจีสเตอร์ Rd กับข้อมูลในรีจีสเตอร์ Rr โดยถ้าข้อมูลในรีจีสเตอร์ทั้ง 2 มีค่าเท่ากัน CPU ข้ามการทำคำสั่ง
ถัดไป 1 คำสั่ง
Rd คือ รีจีสเตอร์ R0 - R31
Rr คือ รีจีสเตอร์ R0 - R31
CP Rd,Rr
คำสั่งเปรียบเทียบข้อมูลในรีจีสเตอร์ Rd และข้อมูลในรีจีสเตอร์ Rr โดยจะมีผลต่อ Flag Z,N,V,C,H
Rd คือ รีจีสเตอร์ R0 - R31
Rr คือ รีจีสเตอร์ R0 - R31
Z,N,V,C,H คือ รีจีสเตอร์ Z,N,V,C,H
CPC Rd,Rr
คำสั่งเปรียบเทียบข้อมูลในรีจีสเตอร์ Rd กับข้อมูลในรีจีสเตอร์ Rr และ Carry Flag โดยมีการกระทำ Rd - Rr - C ซึ่งทำให้มี
ผลกับ Flag Z,N,V,C,H
Rd คือ รีจีสเตอร์ R0 - R31
Rr คือ รีจีสเตอร์ R0 - R31
Z,N,V,C,H คือ รีจีสเตอร์ Z,N,V,C,H
CPI Rd,K
คำสั่งเปรียบเทียบข้อมูลในรีจีสเตอร์ Rd กับค่าคงที่ โดย CPU จะกระทำ Rd - k ซึ่งมีผลต่อ Flag Z,N,V,C,H
Rd คือ รีจีสเตอร์ R0 - R31
k คือ ตำแหน่งหน่วยความจำใน SRAM
SBRC Rr,b
เมื่อ CPU ทำคำสั่ง SBRC จะทำให้ CPU ข้ามการทำคำสั่งถัดไป 1 คำสั่ง ถ้าบิทที่ b ในรีจีสเตอร์ Rr มีค่าเป็น 0
Rr คือ รีจีสเตอร์ R0 - R31
b คือ จำนวน bit
SBRS Rr,b
เมื่อ CPU ทำคำสั่ง SBRS จะทำให้ CPU ข้ามการทำคำสั่งถัดไป 1 คำสั่ง ถ้าบิทที่ b ในรีจีสเตอร์ Rr ถูก SET
Rr คือ รีจีสเตอร์ R0 - R31
b คือ จำนวน bit
SBIC P,b
เมื่อ CPU ทำคำสั่ง SBIC จะทำให้ CPU ข้ามการทำคำสั่งถัดไป 1 คำสั่ง ถ้าบิทที่ b ในรีจีสเตอร์ I/O ที่ P เคลียร์
P คือ รีจีสเตอร์ Input/output
b คือ จำนวน bit
SBIS P,b
เมื่อ CPU ทำคำสั่ง SBIS จะทำให้ CPU ข้ามการทำคำสั่งถัดไป 1 คำสั่ง ถ้าบิทที่ b ในรีจีสเตอร์ I/O ที่ P ถูก SET
P คือ รีจีสเตอร์ Input/output
b คือ จำนวน bit
BRBS s,k
เป็นคำสั่งกระโดดข้ามไปทำคำสั่งในตำแหน่งที่ PC ชี้ ถ้า Flag Status ในรีจีสเตอร์ SREG ถูก SET {(SREG(s)) = 1 }
โดยค่าใน PC = PC + k + 1
BRBC s,k
เป็นคำสั่งกระโดดข้ามไปทำคำสั่งในตำแหน่งที่ PC ชี้ ถ้า Flag Status ในรีจีสเตอร์ SREG ถูก เคลียร์ {(SREG(s)) = 0 }
โดยค่าใน PC = PC + k + 1
BRBQ k
เป็นคำสั่งกระโดดข้ามไปทำคำสั่งในตำแหน่งที่ PC ชี้ ถ้า Zero flag เซ็ต (Z = 1) โดยค่าใน PC = PC + k + 1
BRNE k
เป็นคำสั่งกระโดดข้ามไปทำคำสั่งในตำแหน่งที่ PC ชี้ ถ้า Zero flag เซ็ต (Z = 1) โดยค่าใน PC = PC + k + 1
BRCS k
เป็นคำสั่งกระโดดข้ามไปทำคำสั่งในตำแหน่งที่ PC ชี้ ถ้า Zero flag เซ็ต (Z = 1) โดยค่าใน PC = PC + k + 1
BRCC k
เป็นคำสั่งกระโดดข้ามไปทำคำสั่งในตำแหน่งที่ PC ชี้ ถ้า Zero flag เซ็ต (Z = 1) โดยค่าใน PC = PC + k + 1
BRLO k
เป็นคำสั่งกระโดดข้ามไปทำคำสั่งในตำแหน่งที่ PC ชี้ ถ้า Zero flag เซ็ต (Z = 1) โดยค่าใน PC = PC + k + 1
BRMI k
เป็นคำสั่งกระโดดข้ามไปทำคำสั่งในตำแหน่งที่ PC ชี้ ถ้า Zero flag เซ็ต (Z = 1) โดยค่าใน PC = PC + k + 1
BRPL k
เป็นคำสั่งกระโดดข้ามไปทำคำสั่งในตำแหน่งที่ PC ชี้ ถ้า Zero flag เซ็ต (Z = 1) โดยค่าใน PC = PC + k + 1
BRGE k
เป็นคำสั่งกระโดดข้ามไปทำคำสั่งในตำแหน่งที่ PC ชี้ ถ้า Zero flag เซ็ต (Z = 1) โดยค่าใน PC = PC + k + 1
BRLT k
เป็นคำสั่งกระโดดข้ามไปทำคำสั่งในตำแหน่งที่ PC ชี้ ถ้า Zero flag เซ็ต (Z = 1) โดยค่าใน PC = PC + k + 1
BRSH k
เป็นคำสั่งกระโดดไปยังหน่วยความจำตำแหน่ง PC = PC + k + 1
BRSC k
เป็นคำสั่งกระโดดไปยังหน่วยความจำตำแหน่ง PC = PC + k + 1 ถ้า Half Carry Flag Set
BRTS k
เป็นคำสั่งกระโดดไปยังหน่วยความจำตำแหน่ง PC = PC + k + 1 ถ้า T Flag Set
BRTC k
เป็นคำสั่งกระโดดไปยังหน่วยความจำตำแหน่ง PC = PC + k + 1 ถ้า T Flag Clear
BRVS k
เป็นคำสั่งกระโดดไปยังหน่วยความจำตำแหน่ง PC = PC + k + 1 ถ้า Overflow Flag Set
BRVC k
เป็นคำสั่งกระโดดไปยังหน่วยความจำตำแหน่ง PC = PC + k + 1 ถ้า Overflow Flag Clear
BRIE k
เป็นคำสั่งกระโดดไปยังหน่วยความจำตำแหน่ง PC = PC + k + 1 ถ้า Interrupt Enable บิท(I = 1)
BRID k
เป็นคำสั่งกระโดดไปยังหน่วยความจำตำแหน่ง PC = PC + k + 1 ถ้า Interrupt Disable บิท(I = 0)