Thông báo

Collapse
No announcement yet.

help tập lệnh asm

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • help tập lệnh asm

    em phải dùng lệnh asm gì để so sánh số A với số B nếu như số B lớn hơn hoặc bằng số A thì nhảy sang nhãn khác hay A nhỏ hơn B thì nhảy sang thực thi ở nhãn khác. Mong các bác chỉ bảo giùm em chỉ biết có ngôn ngữ asm thôi ( vì em đang học nó )
    |

  • #2
    mình cũng mới học vdk nhưng cũng góp ý bạn coi thử nha sai thì bỏ qua cho:
    việc so sánh như theo yêu cầu của bạn thì mình dùng lệnh CJNE
    Last edited by toanddt; 06-07-2012, 20:09.

    Comment


    • #3
      có lệnh "CJNE <dest-byte>,<src-byte>,rel" đó bạn ( Compare and Jump if Not Equal). Lệnh này có ảnh hưởng tới cờ nhớ C.
      lệnh này có thể dùng:
      - so sánh thanh ghi Acc với 1 ô nhớ trong RAM (CJNE A,direct,rel).
      - so sánh thanh ghi ACC với một giá trị trực tiếp (CJNE A,#data,rel).
      - so sánh thanh ghi Rn với một giá trị trực tiếp (CJNE Rn,#data,rel).
      - so sánh giá trị trong ô nhớ được trỏ tới bởi thanh ghi Rn với một giá trị trực tiếp (CJNE @Rn,#data,rel).

      Comment


      • #4
        Nguyên văn bởi ozonedark2 Xem bài viết
        em phải dùng lệnh asm gì để so sánh số A với số B nếu như số B lớn hơn hoặc bằng số A thì nhảy sang nhãn khác hay A nhỏ hơn B thì nhảy sang thực thi ở nhãn khác. Mong các bác chỉ bảo giùm em chỉ biết có ngôn ngữ asm thôi ( vì em đang học nó )
        Dùng đoạn lệnh sau :
        ...
        mov a, #soA
        mov b, #soB
        cjne a, b, k_bang
        ...
        ...
        k_bang: jc b_hon_a
        a_hon_b:
        ...
        b_hon_a: ...
        ....
        Trong đoạn lệnh trên soA; soB là 2 số cần so sánh; A < B thì nhảy đến nhãn b_hon_a; ngược lại thì thực hiện nhãn a_hon_b !

        Comment


        • #5
          Nguyên văn bởi Ck33spkt Xem bài viết
          Dùng đoạn lệnh sau :
          ...
          mov a, #soA
          mov b, #soB
          cjne a, b, k_bang
          ...
          ...
          k_bang: jc b_hon_a
          a_hon_b:
          ...
          b_hon_a: ...
          ....
          Trong đoạn lệnh trên soA; soB là 2 số cần so sánh; A < B thì nhảy đến nhãn b_hon_a; ngược lại thì thực hiện nhãn a_hon_b !
          để em thử xem. thank anh !
          |

          Comment


          • #6
            DQ BIT P3.0
            mode bit p2.0
            up bit p2.1
            down bit p2.2
            DEM EQU R2
            T_LSB EQU 30H ;byte nhiet do thap doc tu SCRATCHPAD
            T_MSB EQU 20H ;byte nhiet do cao doc tu SCRATCHPAD
            TEMP EQU 32H ;nhiet do sau khi hieu chinh
            DIGIT EQU 31H ;phan thap phan
            T_DIGIT EQU 33H
            T_LED EQU 34H
            ORG 0000H
            JMP CHUONG_TRINH_CHINH
            WRITE_TIME_SLOT: ;viet 1 bit
            CLR DQ
            NOP
            NOP
            MOV DQ,C
            MOV R5,#15
            LCALL DELAY
            SETB DQ
            NOP
            RET
            READ_TIME_SLOT: ;doc 1 bit
            CLR DQ
            NOP
            NOP
            SETB DQ
            MOV R5,#4
            CALL DELAY
            MOV C, DQ
            MOV R5,#25
            LCALL DELAY
            RET
            RESET_DS1820:
            CLR DQ
            MOV R5,#244
            LCALL DELAY
            SETB DQ
            MOV R5,#36
            LCALL DELAY
            JB DQ,RESET_DS1820
            MOV R5,#212
            CALL DELAY
            RET
            WRITE_BYTE:
            MOV DEM,#8
            WRITE_LAI:
            RRC A
            LCALL WRITE_TIME_SLOT
            DJNZ DEM, WRITE_LAI
            SETB DQ
            MOV R5,#50
            LCALL DELAY
            RET
            READ_BYTE:
            MOV DEM,#8
            READ_LAI:
            LCALL READ_TIME_SLOT
            RRC A
            DJNZ DEM, READ_LAI
            MOV R5,#50
            LCALL DELAY
            RET
            DELAY:
            DJNZ R5,$
            RET
            DELAY_LONG:
            MOV R6,#0FFH
            DELAY_LAI:
            LCALL DELAY
            DJNZ R6,DELAY_LAI
            RET
            BCD:
            MOV B,#10
            DIV AB
            MOV T_LED,A
            RET
            HIEU_CHINH: ;hieu chinh 0.1 va nhiet do (+)
            MOV TEMP,#0
            MOV DIGIT,#0
            ANL A,#0FH ;BO BYTE CAO
            MOV TEMP,A
            MOV A,T_LSB
            ANL A,#0F0H ;BO BYTE THAP
            ORL TEMP,A
            MOV A,TEMP
            SWAP A
            MOV TEMP,A
            ;-------------------------------------------------------------------------------------
            MOV A,T_LSB
            ANL A,#0FH ;BO BYTE CAO
            MOV DPTR,#TABLE1
            MOVC A,@A+DPTR
            MOV DIGIT,A
            RET
            KIEMTRA: ;hieu chinh gia tri cua nhiet do (-)
            JNB 6,OUT_KT
            MOV A,#0FFH
            CLR C
            SUBB A,TEMP
            MOV TEMP,A
            MOV A,#0FH
            ANL A,T_LSB
            CJNE A,#0,OUT_KT1
            INC TEMP
            JMP OUT_KT
            OUT_KT1:
            MOV DPTR,#TABLE2
            MOVC A,@A+DPTR
            MOV DIGIT,A
            OUT_KT:
            RET
            OUTLED:
            MOV DPTR,#TABLE0
            MOV A,TEMP
            CALL BCD
            MOV A,B
            MOVC A,@A+DPTR
            ANL A,#01111111B
            MOV P1,A
            CLR P3.4
            CALL DELAYLED
            SETB P3.4
            MOV A,T_LED
            CALL BCD
            JNB 6,NEXT1 ;dau (-)
            MOV A,#10
            NEXT1: MOVC A,@A+DPTR
            MOV P1,A
            CLR P3.2
            CALL DELAYLED
            SETB P3.2
            MOV A,B
            MOVC A,@A+DPTR
            MOV P1,A
            CLR P3.3
            CALL DELAYLED
            SETB P3.3
            MOV A,DIGIT
            MOVC A,@A+DPTR
            MOV P1,A
            CLR P3.5
            CALL DELAYLED
            SETB P3.5
            RET
            DELAYLED:
            MOV R7,#5
            LOOPD: MOV R6,#255
            DJNZ R6,$
            DJNZ R7,LOOPD
            RET
            CHUONG_TRINH_CHINH:
            SETB DQ
            AGAIN:
            LCALL RESET_DS1820
            MOV A,#0CCH ; SKIP ROM (CCH) NH?P TH?NG D?N CáC L?NH B? NH? C?A DS1820
            LCALL WRITE_BYTE
            MOV A,#44H ; CONVERT T KH?I D?NG M?T QUá TRìNH DO Và CHUY?N D?I GIá TR? NHI?T D?
            LCALL WRITE_BYTE
            LCALL RESET_DS1820
            MOV A,#0CCH ; SKIP ROM (CCH) NH?P TH?NG D?N CáC L?NH B? NH? C?A DS1820
            LCALL WRITE_BYTE
            MOV A,#0BEH ; READ SCRATCHPAD CHO PHéP THI?T B? CH? D?C N?I DUNG B? NH? NHáP
            LCALL WRITE_BYTE
            LCALL READ_BYTE
            MOV T_LSB,A ;THAP
            LCALL READ_BYTE
            MOV T_MSB,A ;CAO
            LCALL RESET_DS1820
            LCALL HIENTHI
            mov r5,#250
            call delay
            jnb mode,nhietdo_dat1
            clr c
            mov a,50h
            cjne a,#temp,nhay1

            clr c
            mov a,51h
            cjne a,#temp,nhay2

            JMP AGAIN
            HIENTHI:
            CALL HIEU_CHINH
            CALL KIEMTRA
            CALL OUTLED
            RET
            nhay1:jc relay
            clr p2.3
            ret
            relay:
            setb p2.3
            ret
            nhay2:jnc alarm
            clr p2.4
            ret
            alarm:
            setb p2.4
            ret
            hienthi1:
            mov dptr,#table0
            mov a,r5
            mov b,#100
            div ab
            movc a,@a+dptr
            mov p1,a
            clr p3.3
            call delayled
            setb p3.3
            mov a,b
            mov b,#10
            div ab
            movc a,@a+dptr
            mov p1,a
            clr p3.4
            call delayled
            setb p3.4
            mov a,b
            movc a,@a+dptr
            mov p1,a
            clr p3.5
            call delayled
            setb p3.5
            ret
            nhietdo_dat1:
            jb up,nut_down
            jnb up,$
            inc 50h
            mov a,50h
            cjne a,#125,nut_down
            mov 50h,#0
            nut_down:
            jb down,hienthi2
            jnb down,$
            dec 50h
            mov a,50h
            cjne a,#0,hienthi2
            mov 50h,#125
            hienthi2:
            mov p1,#0c7h
            clr p3.2
            call delayled
            setb p3.2
            mov r4,50h
            acall hienthi1
            jb mode,nhietdo_dat1
            call delayled
            jnb mode,$
            nhietdo_dat2:
            nut_up1:
            jb up,nut_down1
            jnb up,$
            inc 51h
            mov a,51h
            cjne a,#125,nut_down1
            mov 51h,#0
            nut_down1:
            jb down,hienthi3
            jnb down,$
            dec 51h
            mov a,51h
            cjne a,#0,hienthi3
            mov 51h,#125
            hienthi3:
            mov p1,#89h
            clr p3.2
            call delayled
            setb p3.2
            mov r4,51h
            acall hienthi1
            jb mode,nhietdo_dat2
            call delayled
            jnb mode,$
            ret

            TABLE0:
            DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH, 0FFH
            TABLE1:
            DB 0,0,1,0,2,3,0,4,5,0,6,0,7,8,0,9
            TABLE2:
            DB 0,0,9,8,0,7,0,6,5,0,4,3,0,2,0,1
            END
            mấy anh giúp em với sao em nhấn mode mà nó hok nhảy
            |

            Comment


            • #7
              Nguyên văn bởi ozonedark2 Xem bài viết
              mấy anh giúp em với sao em nhấn mode mà nó hok nhảy
              Cho luôn cái sơ đồ phần cứng và mạch mô phỏng lên đi bạn ơi. Nhìn cái đống code này nản lắm !

              Comment


              • #8
                vì em hok tải file.rar lên được nên mấy bác xem tạm cái này nha
                Attached Files
                |

                Comment


                • #9
                  chương trình mô phỏng hok chạy các bác ơi
                  |

                  Comment

                  Về tác giả

                  Collapse

                  ozonedark2 Tìm hiểu thêm về ozonedark2

                  Bài viết mới nhất

                  Collapse

                  • tuyennhan
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi tuyennhan
                    Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
                    Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
                    Hôm qua, 07:44
                  • vi van pham
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi vi van pham
                    Cám ơn những lời chúc tốt đẹp của em.

                    Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

                    Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
                    Hôm qua, 02:00
                  • nhathung1101
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi nhathung1101
                    Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

                    Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

                    Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
                    22-02-2025, 22:18
                  • dinhthuong80
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi dinhthuong80
                    Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

                    Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
                    22-02-2025, 14:51
                  • dinhthuong80
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi dinhthuong80
                    Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

                    Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
                    22-02-2025, 14:39
                  • dinhthuong80
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi dinhthuong80
                    Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

                    Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
                    22-02-2025, 14:28
                  • bqviet
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi bqviet
                    Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
                    21-02-2025, 20:26
                  • mèomướp
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi mèomướp
                    Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
                    21-02-2025, 12:32
                  • vi van pham
                    Trả lời cho Tiếng Anh cho người Việt
                    bởi vi van pham
                    Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

                    Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
                    20-02-2025, 21:31
                  • bqviet
                    Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                    bởi bqviet
                    Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
                    20-02-2025, 17:22
                  Đang tải...
                  X