Tập lệnh dùng cho thanh ghi file

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) 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 83 - 88)

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

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) 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 83 - 88)

Tải bản đầy đủ (PDF)

(91 trang)