Tên lệnh Cú pháp Chức năng Phạm vi Ví dụ
LDI(LoaD Immediate)
LDI Rd, K Load hằng số K vào thanh ghi Rd
Từ R16 đến R31 LDI R16, 99
Thanh ghi R16 mang giá trị 99
MOV (MOVE) MOV Rd,
Rr
Copy giá trị trong thanh ghi Rr vào thanh ghi Rd
Tất cả thanh ghi file
MOV R15, R16 kết quả là R15 có cùng giá trị với R16 (R15=R16=99) CLR (CLEAR
Register)
CLR Rd Rd=0x00 Tất cả thanh ghi
file
CLR R16 kết quả là R16 = 0x00 SER (SET Register) SER Rd Rd=0xFF Từ R16 đến R31 SER R16 kết quả là R16 = 0xFF CBR (CLEAR Bit in
Register)
CBR Rd, K
Nếu Bit nào trong K là 1 thì Bit tương ứng trong Rd sẽ bị xóa
Từ R16 đến R31 CBR R16, 0xF0 kết quả là 4 bit cao nhất của R16 bị xóa vì K=11110000 (B)
SBR (SET Bit in Register)
SBR Rd, K nếu Bit nào trong K là 1 thì Bit tương ứng trong Rd sẽ được set lên 1
Từ R16 đến R31 SBR R16, 0xF0 kết quả là 4 bit cao nhất của R16 được set lên 1 vì K=11110000 (B)
BLD (Bit LoaD from T Flag)
BLD Rd, b Load giá trị trong cờ T của thanh ghi SREG vào bit thứ b
Tất cả thanh ghi file
SET ; set bit T lên 1
TIEU LUAN MOI download : skknchat@gmail.com
Kết quả là bit thứ 4 của thanh ghi R16 được set lên 1 vì giá trị của bit T là 1 BST (Bit Storage
from T Flag)
BST Rd, b Copy bit thứ b trong thanh ghi Rd vào trong cờ T của thanh ghi SREG
Tất cả thanh ghi file
BST R16, 4 kết quả là cờ T chứa giá trị của bit 4 của thanh ghi R16 CPI (COMPARE
with Immediate)
CPI Rd, K so sánh thanh ghi Rd với hằng số K, lệnh này làm thay đổi nhiều bit trong
thanh ghi SREG trong đó sự thay đổi của cờ Zero là quan trọng nhất, nếu Rd = K cờ Z=1, ngược lại Z=0, sử dụng đặc điểm thay đổi của cờ Z kết hợp với lệnh BRNE hoặc BREQ chúng ta có thể tạo thành một lệnh rẽ nhánh.
Từ R16 đến R31 LDI R16, 10 CPI R16, 10
Kết quả là cờ Z được set thành 1 vì lúc này R16 =10.
ANDI (AND with Immediate)
ANDI Rd, K
Thực hiện phép Logic AND giữa thanh ghi Rd với hằng số K và kết quả đặt trong Rd
Từ R16 đến R31 ANDI R17, 0x00 kết quả là R17 có 0x00
AND (Logical AND) AND Rd, Thực hiện phép Logic AND Tất cả thanh ghi LDI R1, 0xFF ; Gán 0xFF vào R1
TIEU LUAN MOI download : skknchat@gmail.com
quả đặt lại trong Rd.
AND R1, R17 Kết quả là R1=0xAA ORI (Logical OR
with Immediate)
ORI Rd, K Thực hiện phép Logic OR giữa thanh ghi Rd với hằng số K và kết quả đặt trong Rd.
Từ R16 đến R31 ORI R17, 0xFF kết quả là R17 = 0xFF OR (Logical OR) OR Rd, Rr Thực hiện phép Logic OR
giữa 2 thanh ghi Rd và Rr, kết quả đặt lại trong Rd.
Tất cả thanh ghi file
LDI R1, 0xFF ;(11111111) LDI R17, 0xAA; (10101010) AND R1, R17
Kết quả là R1=0xFF LSL(Logical Shift
Left)
LSL Rd Dịch tất thanh ghi Rd sang trái 1 vị trí, Bit 7 (bit cao nhất) của Rd sẽ được chứa trong cờ nhớ C, bit 0 của Rd bị xóa thành 0. Thực chất LSL tương đương với phép nhân thanh ghi Rd với 2
Tất cả thanh ghi file
LDI R1, 0B11000011;
Kết quả là R1=10000110 và cờ C =1 vì thanh ghi R1 đã được dịch sang trái 1 vị trí, trước khi dịch bit 7 của R1 là 1 nên sau khi dịch bit này được chứa trong C, cho nên C=1.
LSR(Logical Shift Right)
LSR Rd Dịch tất thanh ghi Rd sang phải 1 vị trí, Bit 0 (bit thấp nhất) của Rd sẽ được chứa trong cờ nhớ C, bit 7 của Rd
Tất cả thanh ghi file
LDI R1, 0B11000110;
Kết quả là R1=01100001 và cờ C =1 vì thanh ghi R1 đã được dịch sang phải 1 vị
TIEU LUAN MOI download : skknchat@gmail.com
LSR tương đương với phép chia thanh ghi Rd cho 2
sau khi dịch bit này được chứa trong C,
cho nên C=1.
ADD(ADD without Carry)
ADD Rd, Rr
Thực hiện phép cộng 2 thanh ghi Rd và Rr , kết quả đặt trong Rd. Cờ nhớ C không bị tác động.
Tất cả thanh ghi file
LDI R16, 30 LDI R17, 25 ADD R16, R17 Kết quả là R16=52.
ADC(ADD with Carry)
ADC Rd, Rr
Thực hiện phép cộng 2 thanh ghi Rd và Rr , kết quả đặt lại trong Rd. Cờ nhớ C =1 nếu kết quả vượt quá 252.
Tất cả thanh ghi file
LDI R16, 255 LDI R17, 1 ADC R16, R17
Kết quả là R16=0 và cờ C=1vì kết quả phép cộng là 256=100000000.
INC (INCrement) INC Rd Tăng thanh ghi Rd 1 đơn vị và kết quả đặt trong Rd.
Lệnh này thường sử dụng cho các ứng dụng lặp, kết hợp với BREQ hay BRNE có thể tạo thành 1 vòng lặp FOR.
Tất cả thanh ghi file
INC R17 kết quả là R17 được tăng thêm 1 đơn vị.
SUB(SUBtract SUB Rd, Thực hiện phép trừ 2 thanh Tất cả thanh ghi LDI R16, 30
TIEU LUAN MOI download : skknchat@gmail.com
trong Rd. Cờ nhớ C không bị
tác động. SUB R16, R17
Kết quả là R16=2.
SUBI(SUBtract Immediate)
SUBI Rd, K
Thực hiện phép trừ thanh ghi Rd với hằng số K, kết quả đặt lại trong Rd
Từ R16 đến R31 LDI R16, 30 SUBI R16, 20 Kết quả là R16=10.
DEC (DECrement) DEC Rd Giảm thanh ghi Rd 1 đơn vị và kết quả đặt lại trong Rd.
Tất cả thanh ghi file
DEC R17 kết quả là R17 được giảm đi 1 đơn vị.
MUL (MULtiply unsigned)
MUL Rd, Rr
Thực hiện phép nhân không dấu 2 thanh ghi 8 bit Rd, Rr, kết quả là 1 số 16 bit đặt trong 2 thanh ghi R1:R0. Khi Rd và Rr là các thanh ghi R1 và R0 thì kết quả sau khi tính được sẽ được ghi đè lên
Tất cả thanh ghi file
LDI R16, 30 LDI R17, 25 MUL R16, R17
Kết quả là R1=0x2, R0=0xEE, vì 30x25=750=0x02EE.
TIEU LUAN MOI download : skknchat@gmail.com