PLI Tớnh năng của vi điều khiển ATmega8 và ATmega48
3. Cỏc lệnh truy cập bộ nhớ
Tờn lệnh Cỳ phỏp Chức năng Phạm vi Vớ dụ
LDS(Load direct from data Space)
LDS Rd, k Nạp giỏ trị 1 byte từ thanh ghi cú địa chỉ k trong SRAM vào thanh ghi Rd, k là dạng địa chỉ tuyệt đối cú giới hạn từ 0 đến 65535
Rd là thanh ghi bất kỳ trong thanh ghi file, giỏ trị lớn nhất của k là 65535, vỡ thế với lệnh này khụngthể truy cập vượt quỏ khoảng khụng gian 64KB. AVR chưa cú bộ nhớ nào vượt qua 64KB
LDS R2, 0x0060
Kết quả là thanh ghi R2 chứa giỏ trị của thanh ghi cú địa chỉ 0x0060, đõy là thanh ghi đầu tiờn trong khoảng
SRAM (sau thanh ghi file và vựng I/O)
STS(STorage direc to data Space)
STS k, Rr Lệnh này hoàn toàn giống LDS nhưng dựng để xuất dữ liệu từ thanh ghi Rr ra RAM 4. Cỏc lệnh rẽ nhỏnh và vũng lặp Tờn lệnh Cỳ phỏp Chức năng Vớ dụ BRNE (BRanch if Not EQual ) BRNE LABEL
Nhảy đến nhón LABEL nếu cờ Z =0. Cờ Z chịu tỏc động của rất nhiều lệnh như CP, CPI, SUB, SUBI…vỡ thế BRNE thường được sử dụng sau cỏc lệnh này.
DELAY0:
LDI R20, 0xFF
DELAY0:
DELAY1: DEC R21 BRNE DELAY1 DEC R20 BRNE DELAY0 RET BREQ(BRanch if EQual ) BREQ LABEL
Trỏi ngược với lệnh BRNE, lệnh BREQ kiểm tra cờ Z=1?
LDI R16, 0xFF LDI R17, 0xFF
CP R16, R17 ; so sanh 2 thanh ghi R16, R17 BREQ RENHANH
…..
RENHANH:
Kết quả là việc rẽ nhỏnh xảy ra vỡ khi so sỏnh bằng CP,
R17=R16 nờn cờ Z tự động được set bằng 1, lệnh BREQ được thực thi và nhảy đến nhón RENHANH. Vớ dụ này tương đương cấu trỳc if (R16=R17) {thực hiện những việc khi rẽ nhỏnh} BRLO(BRanch
if LOwer
BRLO LABEL
Bản chất của cõu lệnh là nhảy đến nhón LABEL nếu cờ C =1. Thụng thường lệnh này sử dụng theo sau cỏc lệnh như CP, CPI,
XOR R16, R16 ; R16 =0 VONG LAP:
SUB, SUBI…khi đú việc rẽ nhỏnh sẽ xảy ra nếu thanh ghi Rd <Rr.
CPI R16, $10 ; So sỏnh R16 với số hexa $10 BRLO VONGLAP; nhảy về VONGLAP nếu R16 <$10 NOP ;cõu lệnh này sẽ được thực thi nếu điều kiện rẽ nhỏnh ở trờn khụng thỏa,
Kết quả là phần lệnh bờn trong VONGLAP sẽ được thưc hiện khoảng 16 lần ($10=16) trước khi thực hiện lệnh NOP. BRSH(BRanch
if Same or Higher )
BRSH LABEL
Bản chất của cõu lệnh là nhảy đến nhón LABEL nếu cờ C =0. Thụng thường lệnh này sử dụng theo sau cỏc lệnh như CP, CPI, SUB, SUBI…khi đú việc rẽ nhỏnh sẽ xảy ra nếu thanh ghi Rd ≥Rr.
SUBI R16, 4; trừ R16 đi 4 đơn vị
BRSH RENHANH ; nhảy đến RENHANH nếu R16 ≥ 4 ….
RENHANH: NOP