Thông tin tài liệu:
Số học Logic Trao đổi dữ liệu Luận lý Rẽ nhánh chương trình Các lệnh số học Các lệnh số học thường sử dụng 4 mode định vị. Lệnh AĐ A có thể được viết bằng nhiều cách khác nhau: AĐA, 7FH (Định vị trực tiếp) AĐA, @R0 (---------gián tiếp) AĐA, R7 (---------thanh ghi) AĐA, #35H (--------- tức thời) Tất cả các lệnh số học thi hành trong một chu kỳ máy, ngoại trừ lệnh INC DPTR (2 chu kỳ máy), MUL AB và DIV AB (4 chu kỳ máy). 8051 cung cấp cách định vị rất mạnh cho vùng...
Nội dung trích xuất từ tài liệu:
Ứng dụng KIT 8051 dùng để chuyển đổi A/D-D/A, chương 10Chương 10: PHAÂN LOAÏI LEÄNH Caùc leänh 8051 ñöôïc chia thaønh 5 nhoùm nhö sau: Soá hoïc Logic Trao ñoåi döõ lieäu Luaän lyù Reõ nhaùnh chöông trìnhCaùc leänh soá hoïc Caùc leänh soá hoïc thöôøng söû duïng 4 mode ñònh vò. LeänhADD A coù theå ñöôïc vieát baèng nhieàu caùch khaùc nhau: ADDA, 7FH (Ñònh vò tröïc tieáp) ADDA, @R0 (---------giaùn tieáp) ADDA, R7 (---------thanh ghi) ADDA, #35H (--------- töùc thôøi) Taát caû caùc leänh soá hoïc thi haønh trong moät chu kyø maùy,ngoaïi tröø leänh INC DPTR (2 chu kyø maùy), MUL AB vaø DIVAB (4 chu kyø maùy). 8051 cung caáp caùch ñònh vò raát maïnh cho vuøng RAM noäicuûa noù. Baát kyø byte nhôù naøo cuõng ñeàu coù teå taêng, giaûm baèngñònh vò tröïc tieáp maø khoâng caàn thoâng qua thanh ghi tích luyõ. Leänh INC coù theå thao taùc treân con troû döõ lieäu (16 bit).Nhöng leänh DEC khoâng ñöôïc ñònh nghóa treân con troû. Do ñoù ñeåthöïc hieän ñöôïc ñieàu naøy ta coù caùc leänh sau: DEC DPL ; giaûm byte thaáp DPTR MOV R7, DPL ; chuyeån vaøo DPL CJNE R7, #0FFH, SKIP ; neáu vöôït quaù FF DEC DPH ; giaûm luoân byte caoSKIP : (tieáp tuïc) Caùc leânh MUL AB vaø DIV AB chæ thao taùc treân caùc thanhghi A vaø B.Leänh Logic : Caùc leänh logic bieåu dieãn caùc toaùn töû luaän lyù nhö AND, OR,EA-OR vaø NOT … Caùc leänh naøy treân töøng bit cuûa byte döõ lieäu.Ví duï thanh ghi ACC chöùa soá 10101101B thì leänh: ANL A, #10110010BChöùa keát quaû 10100000 vaøo thanh ghi ACC. Caùc mode ñònh vòtrong leänh logic cuõng gioáng nhö trong leänh soá hoïc. Taát caû caùcleänh logic duøng ñeán thanh ghi ACC nhö moät toaùn haïng ñeàu laønhöõng leänh moät chu kyø. Caùc leänh khaùc ñeàu chieám 2 chu kyø maùy. Leänh logic coù theå thao taùc tröïc tieáp baát cöù byte naøo trongvuøng nhôù noäi. Leänh XRL , #data ñaûo nhanh vaø deãdaøng caùc bit cuûa port. XRL P1, #0FFH; Leänh naøy moâ taû hoaït ñoäng read-modify-write. 8 bit cuûaport 1 ñöôïc ñoïc, sau ñoù moãi bit cuûa XOR vôùi bit töông öùng trongbyte döõ lieäu töùc thôøi ñeàu laø 1, XOR seõ ñaûo moãi bit ñöôïc ñoïc. Keátquaû ñöôïc vieát trôû laïi port 1.Caùc leänh chuyeån dòch döõ lieäu:RAM noäi Caùc leänh chuyeån dòch döõ lieäu trong vuøng RAM noäi chæchieám 1 hoaëc 2 chu kyø maùy. Leänh coù daïng: MOV , Moät neùt ñaëc tröng cuûa hoï MSC-51 laø stack naèm trong vuøngRAM noäi vaø lôùn daàn leân phía teân cuûa boä nhôù. Leänh PUSH tröôùctieân taêng con troû stack, sau ñoù môùi sao cheùp byte vaøo stack.PUSH vaø POP chæ duøng ñònh vò tröïc tieáp. Theá nhöng baûn thaânstack laïi duøng ñònh vò tröïc tieáp thoâng qua con troû stack (SP). 8031/8051 khoâng duøng 128 byte cao trong vuøng nhôù noäilaøm stack. Neáu SP vöôït quaù 127 bytes ñöôïc push bò maát vaø byteñöôïc pop khoâng xaùc ñònh. Leänh dòch chuyeån döõ lieäu 16-bit (MOV duøng ñeå khôûi ñoängcon troû döõ lieäu. Leänh XCV A, Chuyeån ñoåi döõ lieäu giöõa A vaø byte ñöôïc ñònh vò.Leänh XCHD A, @R1chuyeån ñoåi 4 bit thaáp cuûa thanh ghi ACC vôùi byte ñöôïc R1 chæñeán.RAM ngoaøi Dòch chuyeån döõ lieäu giöõa boä nhôù trong vaø ngoaøi söû duïngmode ñònh vò giaùn tieáp. Ñòa chæ giaùn tieáp coù theå laø moät byte hay2 byte (DPTR). Caùc leänh dòch chuyeån döõ lieäu thao taùc treân boänhôù ngoaøi ñeàu chieám hai chu kyø maùy vaø duøng thanh ghi tích luyõlaøm toaùn haïng nguoàn hoaëc ñích.Look-Up Tables Hai leänh ñöôïc cho saün ñeå ñoïc moät baûng döõ lieäu trong boänhôù chöông trình. Khi truy xuaát ñeán vuøng nhôù chöông trình thìnoäi dung cuûa baûng chæ ñöôïc ñoïc maø khoâng ñöôïc ghi. Töø gôïi nhôùMOVC töùc laø “move constant”. MOVC duøng thanh ghi ñeámchöông trình cuõng nhö con troû döõ lieäu kaøm thanh ghi neàn vaøthanh ghi tích luyõ laøm offset. MOVC A,@A+DPTR ;Coù theå ñoïc ñöôïc moät soá trong baûng 256 phaàn töû vaøo thanh ghitích luyõ. Trong ñoù thanh ghi tích luyõ chæ ñeán moät vò trí trong coøncon troû DPTR chæ ñeán vò trí ñaàu baûng. MOVC A,@A+PC; Cuõng töông töï nhö treân, chæ khaùc laø thanh ghi PC ñöôïcduøng laøm thanh ghi neàn vaø baûng ñöôïc truy xuaát thoâng quachöông trình con. Tröôùc tieân chæ soá yeâu caàu ñöôïc naïp cho thanhghi tích luyõ sau ñoù chöông trình con ñöôïc goïi. Vieäc khôûi ñoäng vaøgoïi cuï theå nhö sau: MOV A,ENTRY_NUMBER CALL LOOK_UP . . .LOOK_UP : INC A MOVC A, @A+PC RetTAB: DB data, data, data … Baûng ñöôïc ñaët ngay sau leänh RET cuûa chöông trình con.Leänh INC ca ...