Tập lệnh asembly, tóm tắt chức năng

47 363 0
Tập lệnh asembly, tóm tắt chức năng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tập lệnh asembly, tóm tắt chức năng

Ng i báo cáo: Tài li u: Ngày: 10/31/2005 BOOK03.02 Trang: oàn Hi p 1/47 BOOK no 03.02 G i n: oàn Hi p, DM , N i dung: TA, MT , www.picvietnam.com T p l nh PIC Midrange MICROSOFT WORD Tóm t t: H ng d n v t p l nh c a dòng PIC Midrange Các quy [nhãn] c c a ngôn ng MPASM L NH tham s 1, tham s M t dòng nh th c g i m t dòng l nh Ch ng trình MPASM c chia làm c t rõ ràng C t th nh t vi t nhãn, c t th hai vi t tên l nh mu n th c hi n mà s trình bày d i kia, c t th tham s th nh t c a l nh, c t th t tham s th hai c a l nh Gi a tham s th nh t tham s th cách m t d u ph y (,) Các c t c cách b ng nh t m t ký t TAB (kho ng tr ng r ng) dài c a kho ng tr ng có th c quy nh cho d nhìn v i ng i l p trình.Gi a c t th c t th t khơng c n có kho ng TAB Nh ng d dàng cho vi c c l i ch ng trình, v n nên dùng kho ng TAB gi a hai c t N u m c nh nh cài t MPLAB, ngh s d ng hình th c nh sau: [nhan] LENH thamso_2 ; thamso_1, :++++++++ :++++++++ :++++++++; ; tab - tab tab - tab tab - tab Chúng ta ph i vi t cho ch ng trình c vi t ph i phân bi t rõ thành t ng c t, v a p m t trình bày, d c l i ch ng trình 1.1 [nhãn] [nhãn] m t chu i ký t ánh d u m t i m ó ch ng trình, thay ph i ghi nh v trí ó b nh , thay v trí ó b ng m t [nhãn] [nhãn] th ng c g i l i b ng l nh GOTO ho c CALL M i câu l nh, có th có ho c khơng có [nhãn] Tuy nhiên, nên vi t cho s [nhãn] nh t tránh s l m l n r i m t l p trình Ng i báo cáo: Ngày: t Tài li u: 10/31/2005 BOOK03.02 Trang: oàn Hi p 2/47 [nhãn] c vi t c t th nh t c a dịng l nh [nhãn] khơng c b t u b ng ký c bi t nh : *,&, kho ng tr ng, s (0,1,2…)… Gi a ký t c a nhãn c ng khơng c có ký t c bi t *,^, kho ng tr ng,… dài c a m t [nhãn] không gi i h n, nhiên, ph i vi t cho [nhãn] n m c t th nh t c a dòng l nh, dài nhãn v a ph i d quan sát, thông tin g i nh thu n ti n l p trình Chúng ta hồn tồn có th ký hi u [nhãn] NHAN_1, NHAN_2… nh ng n i dung thông tin c a nhãn không th hi n công vi c s c th c hi n, nh v y s r t khó nh l p trình, nh t ch ng trình c a b n dài có n hàng ch c hàng tr m nhãn ch ng trình Ví d : nhãn úng nhãn sai HELLO nhãn úng hello nhãn úng good_bye nhãn úng goodbye_1 nhãn úng 2_hello nhãn sai (b t good^bye nhãn sai (có ký t bon jour nhãn sai (có kho ng tr ng nhãn) welcome nhãn sai (b t 1.2 u b ng m t s ) c bi t nhãn) u nhãn b ng ký t tr ng) L NH tham s : L NH tên c a l nh g i nh c li t kê theo b ng ch ABC bên d i L NH c vi t vào c t th hai, m i dòng l nh ph i có tên L NH, n u khơng có s khơng bi t dịng l nh ó làm vi c L NH th hi n cơng vi c ph i làm c a dịng l nh Tùy theo L NH mà có th có tham s tham s 2, ho c ch có tham s 1, ho c khơng có tham s h t Trong m t dòng l nh, ph i vi t tham s c a L NH ó T p l nh c cung c p phía cu i ch l nh ph n gi i b n d th g p làm ơi, th chúng tơi dán lên tr c bàn làm vi c v a c ph tra c u ng Ý nh c a chúng tơi trình bày song song t p i chi u, so sánh, nhiên, t gi y cu n sách không ngh b n photo ho c in thêm m t b ng t p l nh n v a so sánh, l p trình có th d dàng Ng i báo cáo: Ngày: Tài li u: 10/31/2005 BOOK03.02 Trang: oàn Hi p 3/47 Ví d : tham s c a m t L NH L nh có tham s : [nhãn] ADDWF F, [nhãn] BTFSS F, d b L nh có tham s : [nhãn] CLRF F [nhãn] ADDLW k L nh khơng có tham s : [nhãn] NOP [nhãn] RETURN [nhãn] SLEEP 1.3 Quy c kí hi u: W = Working register: ghi W F = File register: ghi F d = destination ( ích): n u d=0, k t qu c t vào W N u d=1, k t qu c t vào F k = Literal value: s bit ho c m t b = bit address : a ch b nh ch ng trình 11 bit a ch c a bit byte ( ghi) ó 1.3.1 Thanh ghi W: Chúng ta th y r ng, b n ch t c a dòng l nh c th c hi n máy tính phép toán c thao tác ghi Do v y, b t k m t câu l nh c ng s th c hi n m t phép tốn ó, k t qu c a phép tốn ó ph i c s d ng cho l nh ti p theo, n u không dịng l nh ó tr nên m t dịng l nh vô ngh a Ngo i tr l nh NOP l nh không th c hi n thao tác t n i m t chu k máy, nh ng có tác d ng cân b ng th i gian th c hi n o n ch ng trình t ng ng Chúng ta s nói v vi c cân b ng th i gian th c hi n ch ng trình b ng l nh NOP ph n v gi i thu t l p trình phía sau V n chúng tơi c p ây, ó vi c tính tốn s c x y nh th bên vi i u n N u b n ng i ã h c l p trình Pascal, C, ho c ngôn ng c p cao khác, b n s th y r ng th c hi n phép toán c ng hai bi n b c, sau ó gán vào bi n a, b n có th làm m t cách tr c ti p nh sau: Ng i báo cáo: Ngày: Tài li u: 10/31/2005 BOOK03.02 Trang: oàn Hi p 4/47 a: = b + c; Tuy nhiên, vi c i v i PIC không th th c hi n c, mà ph i th c hi n theo t ng b c nh sau, chuy n b vào ghi W, sau ó l y W c ng v i c, r i gán l i vào ghi W, sau ó m i chuy n k t qu vào a Công vi c c th c hi n b ng m t chu i l nh sau: CONG MOVF b, W ; W := b ADDWF c, W ; W := W + c MOVWF a ; a := W Nh v y, ây, PIC ch cho phép m t th i i m t ng tác v i ghi (hay m t bi n) N u c n có s t ng tác gi a hai hay nhi u ghi, ph i thông qua ghi W nh m t ghi m Chính v y, c có m t l nh t ng tác v i ghi, d ng nh s có m t l nh t ng ng t ng tác v i ghi W Ví d : t p l nh t ng tác ghi W ADDLW: W = W +k ADDWF: d = W + F ANDLW: W = W and k ANDWF: d = W and F CLRW: xóa ghi W CLRF: xóa ghi F IORLW: W = W or k IORWF: d = W or F MOVLW: W = k MOVF: d = F MOVWF: F = W SUBLW: W = k – W SUBWF: d = F – W XORLW: W = W xor k XORWF: d = W xor F 1.3.2 ích d: Ngồi ra, b n có th th y r ng d ch có th 0, ho c Khi d = 0, có ngh a k t qu l i c l u vào ghi W Nh v y, ghi W v a có th coi m t ghi t m, l i v a có th coi m t ghi ho t ng liên t c trình ch y ch ng trình c a b n B n c ng luôn nh r ng t i m i th i i m th c hi n m t dòng l nh, ch c phép thao tác v i m t ghi nh t, (ho c) ghi W Khơng có m t l nh cho phép t ng tác v i hai ghi khác mà m t hai ghi ó khơng ph i ghi W i u th hai c n ghi nh , ó c có m t l nh t ng tác v i ghi W, s có m t l nh t ng Ng i báo cáo: Tài li u: Ngày: 10/31/2005 BOOK03.02 Trang: oàn Hi p 5/47 ng t ng tác v i ghi (bi n) F i u ng c l i không úng Nh ng n u có m t l nh t ng tác v i ghi F, k t qu u có th c ghi vào ghi W ho c ghi F Hãy ý t i c t bên ph i c a b ng d ( ích) có th ghi W ho c ghi F L u ý: Chúng ta hịan tồn có th thay th d t trình d ch MPASM cho phép ghi nh v y Ví d : hai câu l nh t ng ng ng v i W F d nh Ch ng ng TANG_1 INCF BIEN_1, TANG_1 INCF BIEN_1, F C hai câu l nh u t ng BIEN_1 lên n v c t giá tr t ng lên ó vào l i BIEN_1 N u vi t b ng Pascal, câu l nh s nh sau : BIEN_1 : = BIEN_1 + ; 1.3.3 a ch bit b: i u s quan tâm ây tham s b Tham s b ch xu t hi n l nh t ng tác bit : BCF, BSF, BTFSS, BTFSC Tham s ch có giá tr 0, 1, 2, 3, 4, 5, 6, Ngoài không th mang b t k m t giá tr khác Vì nh v y ? Vì ang làm vi c v i vi i u n PIC bit, có ngh a d li u c tính tốn vi i u n ch có bit c ánh s nh sau : Thanh ghi F : Bit Bit Bit Bit Bit Bit Bit Chính v y, ch s b v trí bit, ch có th mang giá tr t d sau : Ví d : Quan sát ghi [nhãn] BCF c A, n Các b n xem ví t tên A có giá tr 10110110 ; xóa bit c a ghi A Sau th c hi n l nh này, ghi A s có giá tr : 10010110 [nhãn] BSF A, ; b t bit c a ghi A Sau th c hi n l nh này, ghi A s có giá tr : 11010110 Bit Ng i báo cáo: Ngày: Tài li u: 10/31/2005 BOOK03.02 Trang: ồn Hi p 6/47 1.3.4 Chú thích: À, m t i u n a xu t hi n, ó b n th y sau chúng tơi vi t dịng l nh ví d ây, phía bên ph i, chúng tơi ánh d u « ; » vi t m t s ghi cho câu l nh ây m t chu n úng ch không ph i vi t thích cho cu n sách mà vi t thêm vào MPASM c ng nh ngôn ng l p trình khác, cho phép ng i l p trình vi t thích cho m i dịng l nh ho c m t o n dòng l nh sau d ki m tra, s a ch a, ho c giúp cho ng i khác có th c c d dàng h n n i dung vi t T t c thích u ph i n m m t dòng n m sau d u ch m ph y dịng ó N u thích dài h n m t dịng ph i có d u ch m ph y u dịng bên d i Ví d : ; ; Chúng ta th c hi n m t ví d tính tốn ; theo cơng th c a : = b + c ; b ng ngôn ng MPASM ; CONG MOVF b, W ; chuy n giá tr t ghi b vào W ADDWF c, W ; c ng giá tr W c, ghi l i vào W MOVWF a ; ghi giá tr t ng vào a ; t i ph i làm th này? ; t i khơng th làm khác! ; ; K t thúc tính tốn ; T t c thích, ký t b t k ngh a i v i ch ng trình d ch, ch sau d u ch m ph y dịng ó c vi t phía sau d u “;” m t dịng u vơ ng trình d ch s khơng d ch t t c nh ng n m phía V n n y sinh v i vi c vi t thích ó ph i vi t v a có th d dàng ki m tra l i sau này, không vi t nhi u s ph i m t nhi u th i gian vi t thích h n vi t l nh th c thi Ch ng h n ví d v vi c vi t thích nh th a, không c n ph i vi t nhi u nh th Hãy th vi t th sao? CONG MOVF b, W ADDWF c, W MOVWF a ; a := b + c Ng i báo cáo: Ngày: Tài li u: 10/31/2005 BOOK03.02 Trang: oàn Hi p 7/47 Ch n gi n nh v y thôi, b n s m t công vi t thích, s cung c p n i dung cho b n b n c l i ch ng trình Vi t thích theo nh cu n sách T h c Visual C++ 21 ngày c ng m t ngh thu t Vì v y, b n c ng nên t p vi t thích cho hi u qu i v i MPASM Trong trình th c hi n t p, s c g ng truy n cho b n ý t ng vi t thích, chúng tơi mong b n ti p nh n nó, s d ng s có m t h th ng vi t thích, t ó v sau s d c hi u h n Cu i cùng, a m t vài s th ng kê mà có th s giúp ích cho b n d hình dung trình h c t p l nh c a PIC T ng c ng dịng PIC Mid Range có 35 l nh M i l nh th ng chi m chu k máy, tr l nh v i u n tr ch ng trình Có 16 l nh t ng tác byte (bao g m ghi F b t k ghi W), ch có l nh t ng tác bit 15 l nh i u n dài mã l nh chu k máy Nh n th y m t th c t r ng, b n sinh viên m i làm quen v i vi i u n th ng l m l n v hai khái ni m s chu k máy th c hi n l nh dài mã l nh Do ó, ph n này, ch c g ng gi i thích s qua b n có th phân bi t hai v n th t rõ ràng 2.1 Chu k máy Xuyên su t t p tài li u này, ch mu n h ng d n b n m t cách t o dao ng cho PIC b ng th ch anh b i nh ng cách t o dao ng khác u có s n datasheet (ch a vi t xong) 2.2 dài mã l nh dài mã l nh c a dòng PIC midrange 14 bit 13 12 11 10 c ánh s nh sau: Hình 1: Mã l nh c a dịng PIC midrange C ng nh ã nói trên, t p l nh PIC midrange có th c chia thành lo i ch y u, l nh t ng tác byte, l nh t ng tác bit l nh i u n S khác c a l nh gì? Các b n ý r ng, v i l nh t ng tác byte, ln có thơng s F d, ó F a ch ghi, hay nói ng n g n ghi, d bit ch n xem k t qu c Ng i báo cáo: Ngày: Tài li u: 10/31/2005 BOOK03.02 Trang: oàn Hi p 8/47 l u ng c l i vào F hay l u W Trong ó, l nh t ng tác bit c n có bit c a bit m t ghi ó (t n 7, ngh a t 000 n 111) mã hố v trí V i l nh i u n tính tốn, có giá tr bit k (t l nh c bi t CALL GOTO giá tr k 11 bit (t n 2047) n 255), hai Chúng ta s xem xét cách t ch c mã l nh c a dòng PIC midrange 2.2.1 Các l nh t 13 12 11 m c d i ây ng tác byte 10 OPCODE d a ch c a F b nh Hình 2: Mã l nh c a l nh t ng tác byte Các b n ý m t i u r ng, a ch c a m t ghi, ch có bit thôi, n m t bit n bit M i ghi m c dù có bit, nh ng a ch c a ch có bit Ph n OPCODE ây gì? Chính ph n mã hoá c l nh mà vi t nh ADDWF, ANDWF,… Khi vi t nh th này, vi t b ng mã g i nh , ó, vi i u n hi u l nh d i d ng bit Vì v y, ph i c mã hoá vi i u n hi u M t i m l u ý i v i l nh t ng tác byte, ph n mã hố c a dài bit, n m t bit n bit 13 Trong ó, bit12 – bit13 = 00 (nh hình 2.2) K t qu , th y r ng, ph n OPCODE có bit, nh ng hai bit u tiên ã 00, v y, ch cịn l i bit phân bi t l nh v i ch có t i a 16 l nh t ng tác byte 2.2.2 Các l nh t 13 12 11 10 OPCODE ng tác bit b b b Hình 3: Mã l nh c a l nh t a ch c a F b nh ng tác bit T ng t nh trên, bit quy nh a ch c a ghi F l nh t ng tác bit bit, n m t bit n bit Các bit n m t bit n bit dùng quy nh v trí c a bit t n ghi (ngh a t 000 n 111) Ng i báo cáo: Ngày: Tài li u: 10/31/2005 BOOK03.02 Trang: oàn Hi p 9/47 Ph n OPCODE c a l nh t ng tác bit có mã hoá b t u b ng 01 ng v i bit 12 13 Chính v y, ph n l i phân bi t l nh mã hố ch cịn l i bit, nên ch có th mã hố c l nh Do ó, th y r ng ch có l nh t ng tác bit BCF, BSF, BTFSC BTFSS 2.2.3 Các l nh i u n 13 12 11 10 OPCODE k (8 bit) Hình 3: Mã l nh c a l nh i u n Chúng ta th y r ng, mã l nh c a l nh i u n c ng ch có bit, bit cịn l i dành cho ph n giá tr k nh p vào Khác v i l nh t ng tác byte có bit dùng ch m t ghi bit d dùng ch n v trí ích c a phép tính c a ch Hai bit 12 13 c a nhóm l nh c m c nh 11 Ph n OPCODE bit ch l i bit phân bi t l nh nhóm Tuy nhiên, nhóm l nh này, ng i ta không dùng h t 16 l nh mà ch dùng l nh là: ADDLW, ANDLW, IORLW, MOVLW, SUBLW XORLW 2.2.4 L nh GOTO CALL 13 12 11 10 0 CALL k (11 bit) 1 GOTO k(11 bit) Hình 4: Mã l nh c a l nh CALL GOTO Hai l nh hai l nh trí c n nh y t i (k) c bi t, ph n OPCODE ch có bit, cịn l i 11 bit 2.2.5 Các l nh i u n a ch c a v c bi t Các l nh i u n c bi t, l nh không t ng tác v i ghi có b nh d li u, bao g m l nh: CLRWDT, NOP, RETURN, RETFIE, SLEEP a ch Ng i báo cáo: Ngày: Tài li u: 10/31/2005 BOOK03.02 Trang: oàn Hi p 10/47 Các l nh khơng ch a ghi mã l nh, nên ph n 000000 (6 bit t bit 13 n bit u 0) Nh hình sau: 13 12 11 10 0 0 0 Ph n mã hố Hình 5: Mã l nh c a l nh i u n u OPCODE c a s 12 11 10 0 0 0 phân bi t l nh c bi t V y m t i u làm th c m c là, l nh phân bi t MOVWF, l nh MOVWF c ng có ph n OPCODE 00 0000 nh sau: 13 c v i l nh a ch c a F b nh Hình 6: Mã l nh c a l nh MOVWF Các b n l u ý r ng l nh MOVWF ích t i ghi k t qu s F, ó v trí bit d (bit 7) s Trong ó, l nh i u n c bi t, mã l nh c a t i v trí bit s Nh v y, l nh c mã hoá m t cách hoàn toàn Trong ph n ti p theo c a ch ng này, s c p n t ng l nh cách s d ng l nh Tuy nhiên, không nh c l i c th mã l nh c a t ng l nh, b i thi t ngh r ng khơng c n thi t n a m c ích c a chúng tơi vi t cu n sách h ng d n c b n, ch không i sâu vào v n nghiên c u mã code phát tri n sâu v PIC 2.3 S chu k c a m t l nh: (ch a vi t xong) Ng i báo cáo: Ngày: Tài li u: 10/31/2005 [nhãn] MOVF F, BOOK03.02 Trang: oàn Hi p 33/47 d ; N i dung c a ghi W ; c c ng v i s bit k, ; k t qu c c t l i vào W Th c hi n l nh: W = W + k Các bit tr ng thái b nh h k ch có th s có giá tr t ng: C, DC, Z ng ng m t s th p phân t n 255 =? =? Ví d : Ban u: W = 200 C CONG_1 ADDLW K t qu : W DC d’50’ = 250 C =? Z ; W = 200 + 50 = DC = Z = N u bây gi ti p t c th c hi n phép c ng nh sau CONG_2 ADDLW d’20’ K t qu : W C Ghi chú: = 14 ; W = 250 + 20 = DC = Z = Ng i báo cáo: Ngày: Tài li u: 10/31/2005 [nhãn] MOVWF F, BOOK03.02 Trang: oàn Hi p 34/47 d ; N i dung c a ghi W ; c c ng v i s bit k, ; k t qu c c t l i vào W Th c hi n l nh: W = W + k Các bit tr ng thái b nh h k ch có th s có giá tr t ng: C, DC, Z ng ng m t s th p phân t n 255 =? =? Ví d : Ban u: W = 200 C CONG_1 ADDLW K t qu : W DC d’50’ = 250 C =? Z ; W = 200 + 50 = DC = Z = N u bây gi ti p t c th c hi n phép c ng nh sau CONG_2 ADDLW d’20’ K t qu : W C Ghi chú: = 14 ; W = 250 + 20 = DC = Z = Ng i báo cáo: Ngày: Tài li u: 10/31/2005 [nhãn] BOOK03.02 Trang: oàn Hi p 35/47 NOP ; N i dung c a ghi W ; c c ng v i s bit k, ; k t qu c c t l i vào W Th c hi n l nh: W = W + k Các bit tr ng thái b nh h k ch có th s có giá tr t ng: C, DC, Z ng ng m t s th p phân t n 255 =? =? Ví d : Ban u: W = 200 C CONG_1 ADDLW K t qu : W DC d’50’ = 250 C =? Z ; W = 200 + 50 = DC = Z = N u bây gi ti p t c th c hi n phép c ng nh sau CONG_2 ADDLW d’20’ K t qu : W C Ghi chú: = 14 ; W = 250 + 20 = DC = Z = Ng i báo cáo: Ngày: Tài li u: 10/31/2005 [nhãn] BOOK03.02 Trang: oàn Hi p 36/47 RETFIE ; N i dung c a ghi W ; c c ng v i s bit k, ; k t qu c c t l i vào W Th c hi n l nh: W = W + k Các bit tr ng thái b nh h k ch có th s có giá tr t ng: C, DC, Z ng ng m t s th p phân t n 255 =? =? Ví d : Ban u: W = 200 C CONG_1 ADDLW K t qu : W DC d’50’ = 250 C =? Z ; W = 200 + 50 = DC = Z = N u bây gi ti p t c th c hi n phép c ng nh sau CONG_2 ADDLW d’20’ K t qu : W C Ghi chú: = 14 ; W = 250 + 20 = DC = Z = Ng i báo cáo: Ngày: Tài li u: 10/31/2005 [nhãn] RETLW BOOK03.02 Trang: oàn Hi p 37/47 k ; N i dung c a ghi W ; c c ng v i s bit k, ; k t qu c c t l i vào W Th c hi n l nh: W = W + k Các bit tr ng thái b nh h k ch có th s có giá tr t ng: C, DC, Z ng ng m t s th p phân t n 255 =? =? Ví d : Ban u: W = 200 C CONG_1 ADDLW K t qu : W DC d’50’ = 250 C =? Z ; W = 200 + 50 = DC = Z = N u bây gi ti p t c th c hi n phép c ng nh sau CONG_2 ADDLW d’20’ K t qu : W C Ghi chú: = 14 ; W = 250 + 20 = DC = Z = Ng i báo cáo: Ngày: Tài li u: 10/31/2005 [nhãn] BOOK03.02 Trang: oàn Hi p 38/47 RETURN ; N i dung c a ghi W ; c c ng v i s bit k, ; k t qu c c t l i vào W Th c hi n l nh: W = W + k Các bit tr ng thái b nh h k ch có th s có giá tr t ng: C, DC, Z ng ng m t s th p phân t n 255 =? =? Ví d : Ban u: W = 200 C CONG_1 ADDLW K t qu : W DC d’50’ = 250 C =? Z ; W = 200 + 50 = DC = Z = N u bây gi ti p t c th c hi n phép c ng nh sau CONG_2 ADDLW d’20’ K t qu : W C Ghi chú: = 14 ; W = 250 + 20 = DC = Z = Ng i báo cáo: Ngày: Tài li u: 10/31/2005 [nhãn] RLF F, BOOK03.02 Trang: oàn Hi p 39/47 d ; N i dung c a ghi W ; c c ng v i s bit k, ; k t qu c c t l i vào W Th c hi n l nh: W = W + k Các bit tr ng thái b nh h k ch có th s có giá tr t ng: C, DC, Z ng ng m t s th p phân t n 255 =? =? Ví d : Ban u: W = 200 C CONG_1 ADDLW K t qu : W DC d’50’ = 250 C =? Z ; W = 200 + 50 = DC = Z = N u bây gi ti p t c th c hi n phép c ng nh sau CONG_2 ADDLW d’20’ K t qu : W C Ghi chú: = 14 ; W = 250 + 20 = DC = Z = Ng i báo cáo: Ngày: Tài li u: 10/31/2005 [nhãn] RRF F, BOOK03.02 Trang: oàn Hi p 40/47 d ; N i dung c a ghi W ; c c ng v i s bit k, ; k t qu c c t l i vào W Th c hi n l nh: W = W + k Các bit tr ng thái b nh h k ch có th s có giá tr t ng: C, DC, Z ng ng m t s th p phân t n 255 =? =? Ví d : Ban u: W = 200 C CONG_1 ADDLW K t qu : W DC d’50’ = 250 C =? Z ; W = 200 + 50 = DC = Z = N u bây gi ti p t c th c hi n phép c ng nh sau CONG_2 ADDLW d’20’ K t qu : W C Ghi chú: = 14 ; W = 250 + 20 = DC = Z = Ng i báo cáo: Ngày: Tài li u: 10/31/2005 [nhãn] BOOK03.02 Trang: oàn Hi p 41/47 SLEEP ; N i dung c a ghi W ; c c ng v i s bit k, ; k t qu c c t l i vào W Th c hi n l nh: W = W + k Các bit tr ng thái b nh h k ch có th s có giá tr t ng: C, DC, Z ng ng m t s th p phân t n 255 =? =? Ví d : Ban u: W = 200 C CONG_1 ADDLW K t qu : W DC d’50’ = 250 C =? Z ; W = 200 + 50 = DC = Z = N u bây gi ti p t c th c hi n phép c ng nh sau CONG_2 ADDLW d’20’ K t qu : W C Ghi chú: = 14 ; W = 250 + 20 = DC = Z = Ng i báo cáo: Ngày: Tài li u: 10/31/2005 [nhãn] SUBLW BOOK03.02 Trang: oàn Hi p 42/47 k ; N i dung c a ghi W ; c c ng v i s bit k, ; k t qu c c t l i vào W Th c hi n l nh: W = W + k Các bit tr ng thái b nh h k ch có th s có giá tr t ng: C, DC, Z ng ng m t s th p phân t n 255 =? =? Ví d : Ban u: W = 200 C CONG_1 ADDLW K t qu : W DC d’50’ = 250 C =? Z ; W = 200 + 50 = DC = Z = N u bây gi ti p t c th c hi n phép c ng nh sau CONG_2 ADDLW d’20’ K t qu : W C Ghi chú: = 14 ; W = 250 + 20 = DC = Z = Ng i báo cáo: Ngày: Tài li u: 10/31/2005 [nhãn] SUBWF F, BOOK03.02 Trang: oàn Hi p 43/47 d ; N i dung c a ghi W ; c c ng v i s bit k, ; k t qu c c t l i vào W Th c hi n l nh: W = W + k Các bit tr ng thái b nh h k ch có th s có giá tr t ng: C, DC, Z ng ng m t s th p phân t n 255 =? =? Ví d : Ban u: W = 200 C CONG_1 ADDLW K t qu : W DC d’50’ = 250 C =? Z ; W = 200 + 50 = DC = Z = N u bây gi ti p t c th c hi n phép c ng nh sau CONG_2 ADDLW d’20’ K t qu : W C Ghi chú: = 14 ; W = 250 + 20 = DC = Z = Ng i báo cáo: Ngày: Tài li u: 10/31/2005 [nhãn] XORLW BOOK03.02 Trang: oàn Hi p 44/47 k ; N i dung c a ghi W ; c c ng v i s bit k, ; k t qu c c t l i vào W Th c hi n l nh: W = W + k Các bit tr ng thái b nh h k ch có th s có giá tr t ng: C, DC, Z ng ng m t s th p phân t n 255 =? =? Ví d : Ban u: W = 200 C CONG_1 ADDLW K t qu : W DC d’50’ = 250 C =? Z ; W = 200 + 50 = DC = Z = N u bây gi ti p t c th c hi n phép c ng nh sau CONG_2 ADDLW d’20’ K t qu : W C Ghi chú: = 14 ; W = 250 + 20 = DC = Z = Ng i báo cáo: Ngày: Tài li u: 10/31/2005 [nhãn] XORWF F, BOOK03.02 Trang: oàn Hi p 45/47 d ; N i dung c a ghi W ; c c ng v i s bit k, ; k t qu c c t l i vào W Th c hi n l nh: W = W + k Các bit tr ng thái b nh h k ch có th s có giá tr t ng: C, DC, Z ng ng m t s th p phân t n 255 =? =? Ví d : Ban u: W = 200 C CONG_1 ADDLW K t qu : W DC d’50’ = 250 C =? Z ; W = 200 + 50 = DC = Z = N u bây gi ti p t c th c hi n phép c ng nh sau CONG_2 ADDLW d’20’ K t qu : W C Ghi chú: = 14 ; W = 250 + 20 = DC = Z = Ng i báo cáo: Ngày: Tài li u: 10/31/2005 T ng k t ch Qua ch 46/47 ng ng này, b n ã h c c nh ng v n C u trúc c a m t l nh MPASM Quy t c BOOK03.02 Trang: oàn Hi p sau: c vi t nh th cách ghi thích t [nhãn] Các l nh chi ti t c th c a dòng PIC midrange, tham s c a t ng l nh Ki n th c v mã l nh, dài mã l nh, chu k máy… Tóm l i, qua h c này, b n ã có ki n th c l p trình cho m t vi i u n PIC, v i tác v n gi n, có th th c hi n m t s thu t tốn tính tốn v i vi i u n Nh v y, nh ng t p cu i ch ng s giúp b n ôn t p m t cách nhanh chóng nh ng ã h c c M tv n quan tr ng mà b n c n ph i nh , ó vi c vi t ch ng trình cho th t rõ ràng, nhìn d ch u, b i ch ng trình vi t b ng MPASM nh th th ng r t dài, n u khơng b trí h p lý, ch ng trình c a b n s r t khó coi s tr nên r i r m Vi c vi t thích c ng có th làm r i ch ng trình n u thích q nhi u Chính v y, ph n “C u trúc m t ch ng trình MPASM”, chúng tơi s trình bày chi ti t h n v m t chu n ch ng trình mà chúng tơi cho r ng h p lý, ng th i c ng kinh nghi m c a nh ng ng i l p trình lâu n m v i PIC h ng d n Trong ph n này, ch nêu m t s y u t , b n làm nh ng t p c b n, b n làm quen d n d n thói quen s khơng khó kh n cho b n vi t nh ng ch ng trình l n: c t1t ng ng ký t TAB c t2t ng ng ký t TAB c t3t ng ng ký t TAB c t4t ng ng ký t TAB thích c vi t cách c t kho ng n ký t TAB Nhãn, L nh, tham s vi t b ng ch IN HOA Chú thích vi t b ng ch th ng, ti ng Vi t, không d u Ví d : | ký t TAB | TAB | TAB NHAN_1 ADDLW b’10101010’ NHAN_2 ADDWF REG_1, | TAB | TAB | ; chu thich F ; phep cong Ng i báo cáo: Ngày: Tài li u: 10/31/2005 BOOK03.02 Trang: oàn Hi p 47/47 Bài t p 1: phép c ng cho bi n byte Cho bi n A g m A2 A1 byte ghi B B2 B1 g m byte Các b n th c hi n m t o n ch ng trình tính t ng c a A + B l u vào ghi C g m byte , C3 C2 C1 ó A1, A2, B1, B2 byte mang giá tr b tk Bài t p 2: th c hi n vòng l p ki m tra i u ki n l p Th c hi n vịng l p c trình bày b ng ngôn ng Pascal sau b ng ngôn ng MPASM: A: = 0; B: = 0; For I := to 100 Begin A: = A + 1; B: = B + 2; End; Trong ó A, B, I ghi (hay bi n) bit thông th ng Bài t p 3: ki m tra i u ki n, phép tr l nh GOTO Cho A B hai ghi bit b t k Ki m tra i u ki n A > B nh y v NHAN_1, n u A = B nh y v NHAN_2, n u A < B nh y v NHAN_3 If (A>B) then goto NHAN_1 Else If (A=B) then goto NHAN_2 Else goto NHAN_3; Bài t p 4: t ng tác bit d ch bit Cho ghi A có giá tr b t k , ghi B có giá tr ban u b t k B t u o n l nh, cho B = D ch n i dung ghi A sang trái t ng bit m t N u bit b d ch i ghi A t ng ghi B lên m t n v N u bit b d ch i tr ghi B i m t n v Th c hi n vi c cho h t bit c a ghi A Th c hi n ti p vi c b t t t bit c a ghi B N u s bit mang giá tr c a ghi A nhi u h n s bit mang giá tr bit c a ghi B s mang giá tr 0, ng c l i Dùng bit u tiên c a ghi B (bit – bit – bit – bit 0) th hi n hi u s gi a s bit mang giá tr s bit mang giá tr ghi A ... t c th c a dòng PIC midrange, tham s c a t ng l nh Ki n th c v mã l nh, dài mã l nh, chu k máy… Tóm l i, qua h c này, b n ã có ki n th c l p trình cho m t vi i u n PIC, v i tác v n gi n, có th

Ngày đăng: 28/03/2014, 00:04

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan