Cỏc lệnh truy cập bộ nhớ

Một phần của tài liệu Xây dựng hệ thời gian thực và ứng dụng cho bài toán quản lý nhà hàng dịch vụ (Trang 89)

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. (adsbygoogle = window.adsbygoogle || []).push({});

SUBI R16, 4; trừ R16 đi 4 đơn vị

BRSH RENHANH ; nhảy đến RENHANH nếu R16 ≥ 4 ….

RENHANH: NOP

Một phần của tài liệu Xây dựng hệ thời gian thực và ứng dụng cho bài toán quản lý nhà hàng dịch vụ (Trang 89)