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

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 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

trong thanh ghi Rd. BLD R16, 4

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

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

Rr giữa 2 thanh ghi Rd và Rr, kết quả đặt lại trong Rd.

file LDI R17, 0xAA; Gỏn 0xAA vào R17

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ị

bị xúa thành 0. Thực chất LSR tương đương với

phộp chia thanh ghi Rd cho 2

trớ, trước khi dịch bit 0 của R1 là 1 nờn 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ị. (adsbygoogle = window.adsbygoogle || []).push({});

without Carry) Rr ghi Rd - Rr, kết quả đặt lại trong Rd. Cờ nhớ C khụng bị tỏc động. file LDI R17, 25 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.

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 83 - 88)