Un- asembler cho vi xử lý

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • hophuoc2
    Thành viên mới
    • Sep 2005
    • 12

    #1

    Un- asembler cho vi xử lý

    Em có điều này nhờ các anh chị chỉ giúp

    bình thường là khi lập trình cho vi xử lý là:
    -viết chương trình ( viết bằng asembler, C , C++...)-> tạo ra file asm, Cpp,..
    -sau đó compiler-> tạo ra file obj,...
    -dịch ra file hex( hoặc bin) nạp vào vi xử lý

    bây giờ nếu có yêu cầu là làm ngược lại : có file hex và tìm ngược lại file asm?
    theo các anh/ chị điều này có thể được không? nếu có thì cho em xin chương trình này, hoặc cho em 1 vài lời gợi ý.
    cám ơn
  • blackmoon
    Thành viên tích cực
    • Jul 2005
    • 363

    #2
    Hi hophuoc2,

    Phần mềm cho phép chuyển đổi từ mã máy (hex, bin) thành mã lệnh hợp ngữ (assembly) người ta gọi là disassembler (không phải là un-asembler như bạn nghĩ). Cũng như trình hợp ngữ (assembler), disassembler là riêng rẽ cho các loại vi xử lý, vi điều khiển bởi một thực tế là các loại vi xử lý, vi điều khiển có tập lệnh hợp ngữ hoàn toàn khác nhau.

    Bạn có thể tìm kiếm các disassembler cho các họ vi xử lý, vi điều khiển trên internet, theo tôi biết thì người ta có free cho các phần mềm này. Bạn hãy thử với Google.

    Tôi không rõ mục đích bạn muốn sử dụng disassembler, nhưng bạn nên lưu ý thế này: Khi bạn có file mã máy (*.hex hay *.bin), bạn có thể dùng disassembler để có được file mã nguồn hợp ngữ *.asm tương ứng, tuy nhiên việc đọc hiểu và nhất là phát triển tiếp chương trình mã nguồn này là rất khó khăn, trong một số trường hợp là không thể. Lý do chủ yếu là vì khi bạn có được file mã nguồn từ disassembler, bạn sẽ có một chương trình chỉ toàn các mã lệnh và các con số, không có bất kỳ nhãn hay tên biến, tên chương trình con nào. Nói đơn giản như thế này cho bạn hiểu: tôi viết một chương trình hợp ngữ cho vi điều khiển 8051, trong đó có viết một lệnh thế này...
    mov P0,led
    với led là một biến ở địa chỉ 0x30.
    Vì một lý do nào đó, bạn có được file *.hex của file mã nguồn trên, bạn dùng disassembler của 8051 và dịch ngược ra thì sẽ được file mã nguồn tương ứng nhưng lệnh tôi viết ở trên sẽ được thay bằng:
    mov 0x80,0x30
    Bạn có thể tra ra 0x80 là địa chỉ của cổng P0, nhưng với 0x30 thì bạn chỉ biết đó là một ô nhớ trong RAM onchip, bạn không thể biết tên tôi đặt cho nó là led, do đó cũng rất khó, nếu không muốn nói là không thể, đoán ra tôi dùng nó làm gì. Tương tự với tất cả các câu lệnh trong chương trình. Hy vọng là bạn hiểu rằng bạn gặp khó khăn thế nào khi đọc một chương trình không hề có bất kỳ một tên biến, tên chương trình con nào, tất cả chỉ là con số và con số...

    Việc tiếp thu và phát triển một chương trình hợp ngữ đã khó, sẽ còn khó hơn rất nhiều lần nếu chương trình đó bạn có được từ disassembler.

    Thân mến,
    blackmoon.

    Comment

    • hophuoc2
      Thành viên mới
      • Sep 2005
      • 12

      #3
      Anh nói hoàn toàn đúng, em hoàn toàn đồng ý. Dù sao đi nửa nếu anh có chương trình thì cho em xin để tiện tham khảo.
      em sử dụng vi xử lý 89C52.
      Cám ơn Anh nhiều

      Comment

      • anhtuan133
        Thành viên tích cực
        • Jul 2005
        • 140

        #4
        Chú kiếm con Idag mà dùng. Hàng chuyên nghiệp đấy. Có con dbg51_19 dùng cũng tạm được. Bộ idag4.9 là hàng mới nhất. Vì là cr..k soft nên tôi kô gửi lên đây.
        ! ! you can win if you want ! !

        Comment

        • natra2k2
          Thành viên tích cực
          • Oct 2005
          • 481

          #5
          Chương trình dịch ngược đây!
          Attached Files

          Comment

          • tintintin
            Thành viên chính thức
            • Aug 2006
            • 74

            #6
            To anhtuan133: Bộ idag4.9 có phải là IdaPro không vậy?

            Comment

            • hophuoc2
              Thành viên mới
              • Sep 2005
              • 12

              #7
              cám ơn Anh Natra2k2 nhiều

              Comment

              • phanbobo
                Thành viên tích cực
                • Aug 2005
                • 435

                #8
                Dịch ngược có trường hợp không đúng! Kể cả bạn dịch ngược rồi sau đó dịch xuôi lại thì vẫn không chạy(dù không sửa gì!).Nên tốt hơn hết là bạn chỉ nên dịch ngược khi mã của nó là mã của mình mà thôi(chỉ để debug chương trình)
                Cũ người mới ta!

                Comment

                • patrickndk
                  Thành viên mới
                  • Sep 2006
                  • 11

                  #9
                  phan mem diasemble ,ban co the dung TS-EMulators

                  Comment

                  • thaiytq2010
                    Thành viên mới
                    • Mar 2008
                    • 9

                    #10
                    E đang làm bài tập lớn "vẽ mô phỏng chuyển động của chiếc xe đạp" = ngôn ngữ Asembler. có Anh nào biết chỉ giúp cho E với?thanks

                    Comment

                    • vantan
                      Thành viên mới
                      • Mar 2008
                      • 1

                      #11
                      có ai sử dụng protues ,xin giúp đỡ với.Mình đang học vi điều khiển.
                      Cám ơn nhiều!
                      Trong mỗi chúng ta đều có một thiên tài đang ngủ, chỉ có điều càng ngày anh ta ngủ càng say.

                      Comment

                      • nghaiha
                        Thành viên tích cực
                        • Jul 2006
                        • 744

                        #12
                        Nguyên văn bởi vantan Xem bài viết
                        có ai sử dụng protues ,xin giúp đỡ với.Mình đang học vi điều khiển.
                        Cám ơn nhiều!
                        Bạn post bài cho đúng luồng để mọi người biết mà giúp đỡ chớ.

                        Tham khảo link này:
                        Các khái niệm cơ sở, các mạch nạp, các trình dịch trình mô phỏng, tài liệu hướng dẫn...Mod: VNarmy
                        Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
                        Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.

                        Comment

                        Về tác giả

                        Collapse

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

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

                        Collapse

                        Đang tải...