10
Trang 1 cuûa 10 TAÄP LEÄNH 89C51 Daïng leänh Moâ taû Ví duï LEÄNH LUAÄN LYÙ TAÙC ÑOÄNG TREÂN BIT CLR C Gaùn côø C=0 CLR C CLR BIT Gaùn BIT =0 CLR P1.0 SETB C Gaùn côø C=1 SETB C SETB BIT Gaùn BIT =1 SETB P1.0 CPL C Ñaûo giaù trò côø C. Neáu C=1 thì sau leänh naøy C=0 vaø ngöôïc laïi. CPL C CPL BIT Ñaûo giaù trò BIT. Neáu BIT=1 thì sau leänh naøy BIT=0 vaø ngöôïc laïi. CPL P1.0 ANL C, BIT Pheùp AND giöõa côø C vaø BIT. Keát quaû caát vaøo C. ANL C,P1.0 ANL C, BIT Pheùp AND giöõa côø C vaø buø cuûa BIT. Keát quaû caát vaøo C. ANL C, /P1.0 ORL C, BIT Pheùp OR giöõa côø C vaø BIT. Keát quaû caát vaøo C. ORL C,P1.7 ORL C,/BIT Pheùp OR giöõa côø C vaø buø cuûa BIT. Keát quaû caát vaøo C. ORL C,/P1.7 MOV C,BIT Gaùn côø C=BIT MOV C,ACC.7 MOV BIT,C Gaùn BIT baèng giaù trò côø C MOV ACC.7,C JC nhaõn Nhaûy ñeán nhaõn neáu côø C =1 JC nhohon JNC nhaõn Nhaûy ñeán nhaõn neáu côø C=0 JNC nhohon JB BIT, nhaõn Nhaûy ñeán nhaõn neáu BIT = 1 JB P1.0,start JNB BIT, nhaõn Nhaûy ñeán nhaõn neáu BIT = 0 JNB P1.0,start JBC BIT, nhaõn Nhaûy ñeán nhaõn neáu BIT = 1 vaø sau ñoù gaùn BIT = 0 JBC P1.0,main LEÄNH REÕ NHAÙNH CHÖÔNG TRÌNH ACALL nhaõn ACALL DELAY LCALL nhaõn LCALL DELAY CALL nhaõn CALL DELAY Ghi chuù : leänh naøo khoâng coù trong baûng naøy nghóa laø chöông trình dòch khoâng hieåu. Caùc caâu leänh maø ñieàu kieän cuûa caâu sai thì VXL seõ thöïc hieän caâu leänh tieáp theo ngay phía sau caâu leänh ñoù. Goïi thöïc thi chöông trình con coù teân “nhaõn”. Sau khi thöïc thi chöông trình con, VXL seõ thöïc hieän caâu leänh ngay phía sau caâu leänh goïi naøy. Caàn caát caùc giaù trò thanh ghi ñöôïc söû duïng trong chöông trình con baèng caùc leänh PUSH/POP

taplenh8051

Embed Size (px)

DESCRIPTION

tập lệnh của 8051

Citation preview

Page 1: taplenh8051

Trang 1 cuûa 10

TAÄP LEÄNH 89C51

Daïng leänh Moâ taû Ví duï

LEÄNH LUAÄN LYÙ TAÙC ÑOÄNG TREÂN BIT

CLR C Gaùn côø C=0 CLRCLR BIT Gaùn BIT =0 CLRSETB C Gaùn côø C=1 SETB SETB BIT Gaùn BIT =1 SETBCPL C Ñaûo giaù trò côø C. Neáu C=1 thì sau leänh naøy C=0 vaø ngöôïc laïi. CPL CPL BIT Ñaûo giaù trò BIT. Neáu BIT=1 thì sau leänh naøy BIT=0 vaø ngöôïc laïi. CPL ANL C, BIT Pheùp AND giöõa côø C vaø BIT. Keát quaû caát vaøo C. ANL ANL C, BIT Pheùp AND giöõa côø C vaø buø cuûa BIT. Keát quaû caát vaøo C. ANL ORL C, BIT Pheùp OR giöõa côø C vaø BIT. Keát quaû caát vaøo C. ORL ORL C,/BIT Pheùp OR giöõa côø C vaø buø cuûa BIT. Keát quaû caát vaøo C. ORL MOV C,BIT Gaùn côø C=BIT MOV MOV BIT,C Gaùn BIT baèng giaù trò côø C MOV JC nhaõn Nhaûy ñeán nhaõn neáu côø C =1 JC JNC nhaõn Nhaûy ñeán nhaõn neáu côø C=0 JNC JB BIT, nhaõn Nhaûy ñeán nhaõn neáu BIT = 1 JB JNB BIT, nhaõn Nhaûy ñeán nhaõn neáu BIT = 0 JNB JBC BIT, nhaõn Nhaûy ñeán nhaõn neáu BIT = 1 vaø sau ñoù gaùn BIT = 0 JBC LEÄNH REÕ NHAÙNH CHÖÔNG TRÌNH

ACALL nhaõn ACALL

LCALL nhaõn LCALL

CALL nhaõn CALL

Ghi chuù: leänh naøo khoâng coù trong baûng naøy nghóa laø chöông trình dòch khoâng hieåu. Caùc caâu leänh maø ñieàu kieän cuûa caâu sai thì VXL seõ thöïc hieän caâu leänh tieáp theo ngay phía sau caâu leänh ñoù.

Goïi thöïc thi chöông trình con coù teân “nhaõn”. Sau khi thöïc thi chöông trình con, VXL seõ thöïc hieän caâu leänh ngay phía sau caâu leänh goïi naøy. Caàn caát caùc giaù trò thanh ghi ñöôïc söû duïng trong chöông trình con baèng caùc leänh PUSH/POP

Page 2: taplenh8051

Trang 2 cuûa 10

RET Thoaùt khoûi chöông trình con. RETRETI Thoaùt khoûi chöông trình phuïc vuï ngaét RETI

AJMP nhaõn AJMP

LJMP nhaõn LJMP

SJMP nhaõn SJMP

JMP nhaõn JMP

JMP @A+DPTR Nhaûy ñeán vò trí caùch vò trí ñöôïc troû bôûi DPTR moät khoaûng laø A. JMPJZ nhaõn Nhaûy ñeán nhaõn neáu thanh ghi A=0 JZJNZ nhaõn Nhaûy ñeán nhaõn neáu thanh ghi A khaùc 0 JNZCJNE A,direct,nhaõn So saùnh vaø nhaûy ñeán nhaõn neáu giaù trò thanh ghi A khoâng baèng giaù trò oâ nhôù direct CJNECJNE A,#data,nhaõn So saùnh vaø nhaûy ñeán nhaõn neáu giaù trò thanh ghi A khoâng baèng giaù trò data CJNE

CJNE Rn,#data,nhaõn CJNE

CJNE @Ri,#data,nhaõn CJNE

DJNZ Rn,nhaõn giaûm giaù trò thanh ghi Rn (R0 -> R7) ñi moät ñôn vò, sau ñoù nhaûy ñeán nhaõn neáu Rn khaùc 0. DJNZ

DJNZ direct, nhaõn DJNZ

NOP taïm döøng VXL trong 1 chu kyø maùy NOPCAÂU LEÄNH CHUYEÅN DÖÕ LIEÄU

MOV A, Rn cheùp döõ lieäu töø thanh ghi Rn vaøo thanh ghi A MOV MOV A, direct cheùp döõ lieäu töø oâ nhô vaøo thanh ghi A MOV MOV A, @Ri cheùp döõ lieäu töø oâ nhôù ñöôïc troû bôûi thanh ghi Ri vaøo thanh ghi A MOV MOV A, #data gaùn A baèng con soá data MOV MOV Rn, A cheùp döõ lieäu töø thanh ghi A vaøo thanh ghi Rn MOV MOV Rn, direct cheùp döõ lieäu töø oâ nhôù vaøo thanh ghi Rn MOV MOV Rn, #data gaùn Rn baèng con soá data MOV MOV direct, A cheùp döõ lieäu cuûa A vaøo oâ nhôù MOV

Nhaûy ñeán nhaõn. Soá chu kyø maùy cuûa leänh JMP ñöôïc quyeát ñònh taïi thôøi ñieåm dòch phuï thuoäc vaøo khoaûng caùch töø ñieåm goïi ñeán nhaõn. Leänh nhaûy naøy khoâng caàn ñieàu kieän.

So saùnh vaø nhaûy ñeán nhaõn neáu giaù trò thanh ghi Rn khoâng baèng giaù trò data. Trong ñoù, Rn laø moät trong caùc thanh ghi R0, R1, R2, …, R7

So saùnh vaø nhaûy ñeán nhaõn neáu giaù trò oâ nhôù ñöôïc troû bôûi Ri (R0 hay R1) khoâng baèng giaù trò data.vd: R0=40h, so saùnh giaù trò oâ nhôù 40h vôùi 20 ta duøng caâu leänh beân

giaûm giaù trò cuûa oâ nhôù direct ñi 1 roåi nhaûy ñeán nhaõn neáu giaù trò oâ nhôù direct khaùc 0. neáu giaù trò oâ nhôù direct baèng 0 thì thöïc hieän caâu leänh ngay sau caâu leänh naøy.

Page 3: taplenh8051

Trang 3 cuûa 10

MOV direct, Rn cheùp döõ lieäu cuûa Rn vaøo oâ nhôù MOV MOV direct1, direct2 cheùp döõ lieäu töø oâ nhôù direct2 vaøo oâ nhôù direct1 MOV MOV direct, @Ri cheùp döõ lieäu töø oâ nhôù ñöôïc trôû bôûi Ri vaøo oâ nhôù direct MOV MOV direct, #data gaùn noäi dung oâ nhôù direct baèng giaù trò data MOV MOV @Ri, A cheùp döõ lieäu trong thanh ghi A vaøo oâ nhôù ñöôïc troû bôûi Ri MOV MOV @Ri, direct cheùp döõ lieäu töø oâ nhôù tröïc tieáp vaøo oâ nhôù ñöôïc troû bôûi Ri MOV MOV @Ri, #data gaùn noäi dung oâ nhôù ñöôïc troû bôûi Ri baèng giaù trò data MOVMOV DPTR, #data gaùn giaù trò thanh ghi DPTR baèng data MOV

MOVC A,@A+DPTR MOVC

MOVC A, @A+PC MOVC

MOVX A, @Ri cheùp vaøo A moät byte töø oâ nhôù ngoaøi coù ñòa chæ ñöôïc troû bôûi Ri MOVXMOVX A, @DPTR cheùp vaøo A moät byte töø oâ nhôù ngoaøi coù ñòa chæ ñöôïc troû bôûi DPTR MOVXMOVX @Ri, A cheùp noäi dung thanh ghi A vaøo oâ nhôù ngoaøi ñöôïc troû bôûi Ri MOVXMOVX @DPTR, A cheùp noäi dung thanh ghi A vaøo oâ nhôù ngoaøi ñöôïc troû bôûi DPTR MOVXPUSH direct caát giaù trò oâ nhôù direct vaøo vuøng nhôù stack PUSHPOP direct laáy laïi giaù trò ñaõ caát ôû vuøng stack vaøo oâ nhôù direct POPXCH A, Rn hoaùn ñoåi noäi dung hai thanh ghi A vaø Rn XCHXCH A, direct hoaùn ñoåi noäi dung thanh ghi A vaø noäi dung oâ nhôù direct XCH XCH A, @Ri hoaùn ñoåi noäi dung thanh ghi A vaø noäi dung oâ nhôù ñöôïc troû bôûi Ri XCHXCHD A, @Ri hoaùn ñoåi nibble thaáp thanh ghi A vaø nibble thaáp cuûa noäi dung oâ nhôù ñöôïc troû bôûi Ri XCHDLEÄNH SOÁ HOÏC

ADD A, Rn coäng noäi dung thanh ghi A vaø Rn, keát quaû caát vaøo A ADDADD A, direct coäng noäi dung thanh ghi A vôùi oâ nhôù direct, keát quaû caát vaøo A ADDADD A, @Ri coäng noäi dung thanh ghi A vôùi oâ nhôù ñöôïc troû bôûi Ri, keát quaû caát vaøo A ADDADD A, #data coäng noäi dung thanh ghi A vaø con soá data, keát quaû caát vaøo A ADDADDC A, Rn coäng noäi dung thanh ghi A vaø Rn vaø coäng theâm côø nhôù C, keát quaû caát vaøo A ADDC

cheùp vaøo A moät byte töø boä nhôù chöông trình taïi vò trí caùch con troû goác DPTR moät khoaûng laø A

cheùp vaøo A moät byte töø boä nhôù chöông trình taïi vò trí caùch vò trí leänh hieän haønh moät khoaûng laø A

Page 4: taplenh8051

Trang 4 cuûa 10

ADDC A, direct coäng noäi dung thanh ghi A vôùi oâ nhôù direct vaø coäng theâm côø nhôù C, keát quaû caát vaøo A ADDC

ADDC A, @Ri ADDC

ADDC A, #data coäng noäi dung thanh ghi A vaø con soá data vaø coäng theâm côø nhôù C, keát quaû caát vaøo A ADDCSUBB A, Rn tröø noäi dung thanh ghi A vaø Rn vaø tröø theâm côø nhôù C, keát quaû caát vaøo A SUBBSUBB A, direct tröø noäi dung thanh ghi A vôùi oâ nhôù direct vaø tröø theâm côø nhôù C, keát quaû caát vaøo A SUBB

SUBB A, @Ri SUBB

SUBB A, #data tröø noäi dung thanh ghi A vaø con soá data vaø tröø theâm côø nhôù C, keát quaû caát vaøo A SUBBINC A taêng noäi dung thanh ghi A leân 1 ñôn vò INCINC Rn taêng noäi dung thanh ghi Rn leân 1 ñôn vò INCINC direct taêng noäi dung oâ nhôù direct leân 1 ñôn vò INCINC @Ri taêng noäi dung oâ nhôù ñöôïc troû bôûi Ri leân 1 ñôn vò INCDEC A giaûm noäi dung thanh ghi A leân 1 ñôn vò DECDEC Rn giaûm noäi dung thanh ghi Rn leân 1 ñôn vò DECDEC direct giaûm noäi dung oâ nhôù direct leân 1 ñôn vò DECDEC @Ri giaûm noäi dung oâ nhôù ñöôïc troû bôûi Ri leân 1 ñôn vò DECINC DPTR taêng giaù trò thanh ghi DPTR leân 1 ñôn vò INC

MUL AB nhaân noäi dung thanh ghi A vaø thanh ghi B, keát quaû: A chöùa byte thaáp, B chöùa byte cao MUL

DIV AB chia A cho B, keát quaû: A chöùa thöông soá, B chöùa soá dö DIV

DA A DA

LEÄNH LUAÄN LYÙ TAÙC ÑOÄNG TREÂN BYTE

ANL A, Rn thuïc hieän AND noäi dung thanh ghi A vôùi Rn, keát quaû caát vaøo A ANLANL A, direct thuïc hieän AND noäi dung thanh ghi A vôùi oâ nhôù direct, keát quaû caát vaøo A ANLANL A, @Ri thuïc hieän AND noäi dung thanh ghi A vôùi oâ nhôù coù ñòa chæ troû bôûi Ri, keát quaû caát vaøo A ANL

coäng noäi dung thanh ghi A vôùi oâ nhôù ñöôïc troû bôûi Ri vaø coäng theâm côø nhôù C , keát quaû caát vaøo A

tröø noäi dung thanh ghi A vôùi oâ nhôù ñöôïc troû bôûi Ri vaø tröø theâm côø nhôù C , keát quaû caát vaøo A

hieäu chænh BCD cho noäi dung thanh ghi A. Neáu digit naøo cuûa A (daïng HEX) lôùn hôn 9 seõ ñöôïc coäng theâm 6 vaøo digit ñoù, ngöôïc laïi thì coäng 0. leänh naøy chæ hoaït ñoäng ñuùng cho pheùp coäng.

Page 5: taplenh8051

Trang 5 cuûa 10

ANL A, #data thuïc hieän AND noäi dung thanh ghi A vôùi con soá data, keát quaû caát vaøo A ANLANL direct, A thuïc hieän AND noäi dung oâ nhôù direct vôùi thanh ghi A , keát quaû caát vaøo oâ nhôù direct ANLANL direct, #data thuïc hieän AND noäi dung oâ nhôù direct vôùi con soá data , keát quaû caát vaøo oâ nhôù direct ANLORL A, Rn thuïc hieän OR noäi dung thanh ghi A vôùi Rn, keát quaû caát vaøo A ORLORL A, direct thuïc hieän OR noäi dung thanh ghi A vôùi oâ nhôù direct, keát quaû caát vaøo A ORLORL A, @Ri thuïc hieän OR noäi dung thanh ghi A vôùi oâ nhôù coù ñòa chæ troû bôûi Ri, keát quaû caát vaøo A ORLORL A, #data thuïc hieän OR noäi dung thanh ghi A vôùi con soá data, keát quaû caát vaøo A ORLORL direct, A thuïc hieän OR noäi dung oâ nhôù direct vôùi thanh ghi A , keát quaû caát vaøo oâ nhôù direct ORLORL direct, #data thuïc hieän OR noäi dung oâ nhôù direct vôùi con soá data , keát quaû caát vaøo oâ nhôù direct ORLXRL A, Rn thuïc hieän XOR noäi dung thanh ghi A vôùi Rn, keát quaû caát vaøo A XRLXRL A, direct thuïc hieän XOR noäi dung thanh ghi A vôùi oâ nhôù direct, keát quaû caát vaøo A XRLXRL A, @Ri thuïc hieän XOR noäi dung thanh ghi A vôùi oâ nhôù coù ñòa chæ troû bôûi Ri, keát quaû caát vaøo A XRLXRL A, #data thuïc hieän XOR noäi dung thanh ghi A vôùi con soá data, keát quaû caát vaøo A XRLXRL direct, A thuïc hieän XOR noäi dung oâ nhôù direct vôùi thanh ghi A , keát quaû caát vaøo oâ nhôù direct XRLXRL direct, #data thuïc hieän XOR noäi dung oâ nhôù direct vôùi con soá data , keát quaû caát vaøo oâ nhôù direct XRLCLR A gaùn A=0 CLRCPL A laáy buø 1 giaù trò cuûa A. thöïc söï laø gaùn A= 255 - A CPL RL A quay traùi caùc bit trong thanh ghi A RLRLC A quay traùi caùc bit trong thanh ghi A coù duøng theâm côø nhôù C RLCRR A quay phaûi caùc bit trong thanh ghi A. RRRLC A quay phaûi caùc bit trong thanh ghi A coù duøng theâm côø nhôù C. RLCSWAP A hoaùn ñoåi nibble cao vaø nibble thaáp cuûa thanh ghi A. SWAP

Page 6: taplenh8051

Trang 6 cuûa 10

TAÄP LEÄNH 89C51

Ví duï

LEÄNH LUAÄN LYÙ TAÙC ÑOÄNG TREÂN BIT

C 1 1P1.0 1 2C 1 1P1.0 1 2C 1 1P1.0 1 2C,P1.0 2 2C, /P1.0 2 2C,P1.7 2 2C,/P1.7 2 2C,ACC.7 1 2ACC.7,C 2 2nhohon 2 2nhohon 2 2P1.0,start 2 3P1.0,start 2 3P1.0,main 2 3

LEÄNH REÕ NHAÙNH CHÖÔNG TRÌNH

DELAY 2 2

DELAY 2 3

DELAY X X

: leänh naøo khoâng coù trong baûng naøy nghóa laø chöông trình dòch khoâng hieåu. Caùc caâu leänh maø ñieàu kieän cuûa caâu sai thì VXL seõ thöïc hieän caâu leänh tieáp theo ngay phía sau caâu leänh ñoù.

Soá MC

Ñoä daøi

Page 7: taplenh8051

Trang 7 cuûa 10

2 12 1

Main 2 2

Main 2 3

Main 2 2

Main X X

@A+DPTR 2 1Abang0 2 2Akhac0 2 2A,B,AkhacB 2 3A,#20,Akhac20 2 3

R5,#20,R5khac20 2 3

@R0,#20,memkhac20 2 3

R7,khackhong 2 2

40h,khackhong 2 3

1 1CAÂU LEÄNH CHUYEÅN DÖÕ LIEÄU

A, R7 1 1A, 40h 1 2A, @R0 1 1A, #10 1 2R1, A 1 1R2, 40h 2 2R2,#10 1 240h, A 1 2

Page 8: taplenh8051

Trang 8 cuûa 10

50h, R7 2 240h, 50h 2 340h, @R0 2 250h, #10 2 3@R0, A 1 1@R1, 40h 2 2@R0, #10 1 2DPTR, #2000h 2 3

A, @A+DPTR 2 1

A, @A+PC 2 1

A, @R0 2 1A, @DPTR 2 1@Ri, A 2 1@DPTR, A 2 1ACC 2 2ACC 2 2A, R7 1 1A, 60h 1 2A, @R0 1 1A, @R1 1 1

LEÄNH SOÁ HOÏC

A, R5 1 1A, 70h 1 2A, @R0 1 1A, #10 1 2A, R7 1 1

Page 9: taplenh8051

Trang 9 cuûa 10

A, 41h 1 2

A, @R0 1 1

A, #10 1 2A, R7 1 1A, 41h 1 2

A, @R0 1 1

A, #10 1 2A 1 1R6 1 142h 1 2@R0 1 1A 1 1R6 1 143h 1 2@R0 1 1DPTR 2 1

AB 4 1

AB 4 1

A 1 1

LEÄNH LUAÄN LYÙ TAÙC ÑOÄNG TREÂN BYTE

A, R7 1 1A, 45h 1 2A, @R0 1 1

Page 10: taplenh8051

Trang 10 cuûa 10

A, #45h 1 245h, A 1 245h, #45h 2 3A, R7 1 1A, 45h 1 2A, @R0 1 1A, #45h 1 245h, A 1 245h, #45h 2 3A, R7 1 1A, 45h 1 2A, @R0 1 1A, #45h 1 245h, A 1 245h, #45h 2 3A 1 1A 1 1A 1 1A 1 1A 1 1A 1 1A 1 1