thắc mắc viết asm trong keil c

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • thinking
    Thành viên chính thức
    • Mar 2010
    • 91

    #1

    thắc mắc viết asm trong keil c

    Các anh cho em hỏi là không biết sao khi viết asm bằng keil c nếu em chèn cái dòng thư viện include <REGX52.h> vào chuơng trình thì lại không thể dịch được còn nếu bỏ đi thì thông báo dịch được nhưng chạy thử thì lại không thấy đúng
  • quynhnb
    Thành viên tích cực
    • Aug 2009
    • 696

    #2
    Gửi cả chương trình và phần báo lỗi lên xem nào ?
    Nhà phân phối, đại lý bán biến tần,PLC,HMI,AC Servo... Delta

    Mr.Quỳnh 0978706839

    Comment

    • quynhnb
      Thành viên tích cực
      • Aug 2009
      • 696

      #3
      Viết chữ thường đi, thử lại coi.
      Nhà phân phối, đại lý bán biến tần,PLC,HMI,AC Servo... Delta

      Mr.Quỳnh 0978706839

      Comment

      • thinking
        Thành viên chính thức
        • Mar 2010
        • 91

        #4
        ví dụ như bài này ạ,thử viết lại bằng chữ thường nhưng vẫn không được,viết bằng c thì không sao,thử viết bằng asm lại thấy báo lỗi,em mới học nên còn ngu ngơ
        #include <regx52.h>
        org 00h
        ljmp main
        org 40h
        main:
        mov sp,#5Fh
        mov a,11111110b
        main_lop:
        mov P1,a
        lcall Delay1s
        rl a
        sjmp main_lop
        Delay1s:
        mov r1,#10
        lop1:
        mov r2,#100
        lop2:
        mov r3,#100
        lop3:
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        djnz r3, lop3
        djnz r2, lop2
        djnz r1, lop1
        ret
        end

        Comment

        • quynhnb
          Thành viên tích cực
          • Aug 2009
          • 696

          #5
          Có phải báo lỗi này ko ?
          error C129: missing ';' before '00'
          Target not created
          Nhà phân phối, đại lý bán biến tần,PLC,HMI,AC Servo... Delta

          Mr.Quỳnh 0978706839

          Comment

          • thinking
            Thành viên chính thức
            • Mar 2010
            • 91

            #6
            lỗi này anh ạ
            assembling a.asm...
            C:\KEIL\C51\INC\ATMEL\REGX52.H(15): error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL
            C:\KEIL\C51\INC\ATMEL\REGX52.H(16): error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL
            C:\KEIL\C51\INC\ATMEL\REGX52.H(17): error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL
            .......
            1 hàng dài

            Comment

            • quynhnb
              Thành viên tích cực
              • Aug 2009
              • 696

              #7
              Cái của mình nó báo lỗi kiểu khác. Có vẻ như do thư viện phần mềm khác nhau.
              Bạn viết thử một chương trình đơn giản và không có dòng lệnh đó xem.
              Cái này có thể do bạn viết sai phần dưới. Còn thư viện không cần khai báo.
              Mình viết ngôn ngữ C nên không rõ về khai báo asm.
              Last edited by quynhnb; 16-11-2010, 15:39.
              Nhà phân phối, đại lý bán biến tần,PLC,HMI,AC Servo... Delta

              Mr.Quỳnh 0978706839

              Comment

              • thinking
                Thành viên chính thức
                • Mar 2010
                • 91

                #8
                vậy là viết bằng asm không có thư viện sao anh? phần dưới em copy 1 đoạn trong giáo trình ra,không sai,bỏ thư viện đi rồi chuyển sang hex chạy thử thì P1 sáng hết,em không hiểu tại sao nữa

                Comment

                • quynhnb
                  Thành viên tích cực
                  • Aug 2009
                  • 696

                  #9
                  Có lẽ bạn phải tham khảo thêm các cao thủ dùng asm . Mình thấy mọi người khai báo thư viện mỗi người 1 kiểu nhưng cứ copy về máy mình là không biên dịch được. Có vẻ thiếu gì đó.
                  Nhà phân phối, đại lý bán biến tần,PLC,HMI,AC Servo... Delta

                  Mr.Quỳnh 0978706839

                  Comment

                  • trinhtuan89
                    Thành viên chính thức
                    • Mar 2010
                    • 63

                    #10
                    theo minh thi mình viết asm thi cha khai báo gì cả mà vẫn chạy ầm ầm.
                    chuong trình đó bạn nên bỏ khai bao thư viện đi. mình đã bỏ và text thử thấy ok

                    Comment

                    • dientai
                      Thành viên chính thức
                      • Aug 2010
                      • 31

                      #11
                      Nguyên văn bởi quynhnb Xem bài viết
                      Có phải báo lỗi này ko ?
                      error C129: missing ';' before '00'
                      Target not created
                      Mình đang gặp lỗi này,mong bác giúp đỡ

                      Comment

                      • ngo_huy_binh
                        Thành viên mới
                        • Apr 2013
                        • 13

                        #12
                        t cũng đang bị lỗi như thế

                        Comment

                        • dtcn_112
                          Thành viên tích cực
                          • Apr 2012
                          • 267

                          #13
                          mấy cái lỗi đó có thể là do dùng ko đúng thư viện,keil C viết asm ko được tốt lắm
                          thay thử thư viện như regx51.h bằng mod51 ví dụ
                          C viết #include<regx51> khi viết asm thì là $mod51

                          Comment

                          • ngo_huy_binh
                            Thành viên mới
                            • Apr 2013
                            • 13

                            #14
                            thank ban nha!minh tu tim thay loi roi, cung k can $mod51 dâu. ok

                            Comment

                            • vietluan93
                              Thành viên tích cực
                              • Aug 2012
                              • 111

                              #15
                              các bác cho em hỏi khi mình sử dụng ngắt ngoài muốn nó làm việc trong ngắt xong rồi cho nó quay về lại nhãn main nơi bắt đầu đc ạ? VD như chương trình này chẳn hạn..khi xảy ra ngắt nó tắt đèn xong làm sao quay về lại nhãn main đc... các bác giúp cho....
                              den bit p1.1
                              org 00h
                              sjmp main
                              org 013h ;nơi xảy ra ngắt ngoai 1
                              clr den ;tat den
                              reti
                              main:
                              jb p0.0,$
                              jnb p0.0,$
                              mov ie,#10000100b ;cho phép ngắt ngoài 1
                              ......
                              .....chương trình chính

                              end

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...