تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] سورس كود برنامج disassembly
#1
Photo 
تم التطبيق على pic16f84a لان معالجها ضعيف جدا و اوامر الاسمبلي الخاصة به محدودة جدا 

كل ما عليك عمله هو مشروع vb.net واضف Module1 + Module2
نضع الادوات التالية كما في الصورة
[صورة مرفقة: e60QLR]

في Form1  نكتب
PHP كود :
Imports System.IO
Public Class Form1
    Dim x 
As String ""
 
   Private Sub Button2_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button2.Click
        OpenFileDialog1
.Filter "hex (*.hex)|*.hex"
 
       OpenFileDialog1.FilterIndex 1
        OpenFileDialog1
.ShowDialog()
 
       TextBox1.Text OpenFileDialog1.FileName
        Dim objStreamReader 
As StreamReader
        Dim strLine 
As String
        objStreamReader 
= New StreamReader(TextBox1.Text)
 
       While (Not objStreamReader.EndOfStream)
 
           strLine objStreamReader.ReadLine
            If Not Mid
(strLine11) = ";" Then x strLine vbLf
            Application
.DoEvents()
 
       End While
 
       objStreamReader.Close()
 
       x Replace(xvbLf"")
 
       RichTextBox1.Text x
    End Sub
    Private Sub Button1_Click
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Dim Hx 
As String ""
 
       Dim s As String ""
 
       Dim rr() As String Split(x":")
 
       For j 1 To UBound(rr) - 2
            For i 
9 To rr(j).Length 4 Step 4
                Hx 
OpCode(Mid(rr(j), 22) & Mid(rr(j), i2))
 
               s Hx vbLf
            Next
            x 
vbLf
        Next
        RichTextBox1
.Text s
    End Sub
End 
Class 
في Module1 نكتب
PHP كود :
Module Module1
    Function OpCode
(ByVal s As String) As String
        Dim Ts 
As Double "&hF000" And "&h" s
        Dim t 
As String ""
 
       If Ts "&h0000" Then t z00(s)
 
       If Ts "&h1000" Then t z01(s)
 
       If Ts "&h2000" Then t z10(s)
 
       If Ts "&h3000" Then t z11(s)
 
       Return t
    End 
Function
 
   Function z00(ByVal s As String) As String
        Dim t 
As String ""
 
       Dim v As Long "&h" And "&hFF00"
 
       If "&h" <= "&h00FF" Then t z0000(s)
 
       If v "&h0700" Then t ADDWF(s)
 
       If v "&h0500" Then t ANDWF(s)
 
       If v "&h0100" Then t CLRWF(s)
 
       If v "&h0900" Then t COMF(s)
 
       If v "&h0300" Then t DECF(s)
 
       If v "&h0B00" Then t DECFSZ(s)
 
       If v "&h0A00" Then t INCF(s)
 
       If v "&h0F00" Then t INCFSZ(s)
 
       If v "&h0400" Then t IORWF(s)
 
       If v "&h0800" Then t MOVF(s)
 
       If v "&h0D00" Then t RLF(s)
 
       If v "&h0C00" Then t RRF(s)
 
       If v "&h0200" Then t SUBWF(s)
 
       If v "&h0E00" Then t SWAPF(s)
 
       If v "&h0600" Then t XORWF(s)
 
       Return t
    End 
Function
 
   Function z0000(ByVal s As String) As String
        Dim t 
As String ""
 
       Dim fAs Integer
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       If d 1 Then
            t 
"MOVWF " f
        Else
            t 
"NOP"
 
       End If
 
       If Val("&h" s) = Val("&h64"Then t "CLRWDT"
 
       If Val("&h" s) = Val("&h09"Then t "RETFIE"
 
       If Val("&h" s) = Val("&h08"Then t "RETURN"
 
       If Val("&h" s) = Val("&h63"Then t "SLEEP"
 
       Return t
    End 
Function
 
   Function z01(ByVal s As String) As String
        Dim t 
As String ""
 
       Dim v As Long "&h" And "&hFC00"
 
       If v "&h1000" Then t BCF(s)
 
       If v "&h1400" Then t BSF(s)
 
       If v "&h1800" Then t BTFSC(s)
 
       If v "&h1C00" Then t BTFSS(s)
 
       Return t
    End 
Function
 
   Function z10(ByVal s As String) As String
        Dim t 
As String ""
 
       If ("&h" And "&hF800") = "&h2000" Then t CALLx(s)
 
       If ("&h" And "&hF800") = "&h2800" Then t GOTOx(s)
 
       Return t
    End 
Function
 
   Function z11(ByVal s As String) As String
        Dim t 
As String ""
 
       Dim v As Long "&h" And "&h3F00"
 
       If v "&h3F00" Then t ADDLW(s)
 
       If v "&h3E00" Then t ADDLW(s)
 
       If v "&h3900" Then t ANDLW(s)
 
       If v "&h3800" Then t IORLW(s)
 
       If v "&h3000" Then t MOVLW(s)
 
       If v "&h3100" Then t MOVLW(s)
 
       If v "&h3200" Then t MOVLW(s)
 
       If v "&h3300" Then t MOVLW(s)
 
       If v "&h3400" Then t RETLW(s)
 
       If v "&h3500" Then t RETLW(s)
 
       If v "&h3600" Then t RETLW(s)
 
       If v "&h3700" Then t RETLW(s)
 
       If v "&h3C00" Then t SUBLW(s)
 
       If v "&h3D00" Then t SUBLW(s)
 
       If v "&h3A00" Then t XORLW(s)
 
       Return t
    End 
Function
End Module 
في Module2 نكتب
PHP كود :
Module Module2
    Function ADDWF
(ByVal s As String) As String
        Dim f
As String
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       ADDWF "ADDWF " "," d
    End 
Function
 
   Function ANDWF(ByVal s As String) As String
        Dim f
As String
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       ANDWF "ANDWF " "," d
    End 
Function
 
   Function CLRWF(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       If d 1 Then
            Return 
"CLRF " f
        Else
            Return 
"CLRW " f
        End 
If
 
   End Function
 
   Function COMF(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "COMF " "," d
    End 
Function
 
   Function DECF(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "DECF " "," d
    End 
Function
 
   Function DECFSZ(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "DECFSZ " "," d
    End 
Function
 
   Function INCF(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "INCF " "," d
    End 
Function
 
   Function INCFSZ(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "INCFSZ " "," d
    End 
Function
 
   Function IORWF(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "IORWF " "," d
    End 
Function
 
   Function MOVF(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "MOVF " "," d
    End 
Function
 
   Function RLF(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "RLF " "," d
    End 
Function
 
   Function RRF(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "RRF " "," d
    End 
Function
 
   Function SUBWF(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "SUBWF " "," d
    End 
Function
 
   Function SWAPF(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "SWAPF " "," d
    End 
Function
 
   Function XORWF(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h80"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "XORWF " "," d
    End 
Function
 
   Function BCF(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h380"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "BCF " "," d
    End 
Function
 
   Function BSF(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h380"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "BSF " "," d
    End 
Function
 
   Function BTFSC(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h380"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "BTFSC " "," d
    End 
Function
 
   Function BTFSS(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h380"
 
       d >> 7
        f 
"&h" And "&h7F"
 
       Return "BTFSS " "," d
    End 
Function
 
   Function CALLx(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h380"
 
       d >> 7
        f 
"&h" And "&h7FF"
 
       Return "CALL " f
    End 
Function
 
   Function GOTOx(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h380"
 
       d >> 7
        f 
"&h" And "&h7FF"
 
       Return "GOTO " f
    End 
Function

 
   Function ADDLW(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h380"
 
       d >> 7
        f 
"&h" And "&hFF"
 
       Return "ADDLW " f
    End 
Function
 
   Function ANDLW(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h380"
 
       d >> 7
        f 
"&h" And "&hFF"
 
       Return "ANDLW " f
    End 
Function
 
   Function IORLW(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h380"
 
       d >> 7
        f 
"&h" And "&hFF"
 
       Return "IORLW " f
    End 
Function
 
   Function MOVLW(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h380"
 
       d >> 7
        f 
"&h" And "&hFF"
 
       Return "MOVLW " f
    End 
Function
 
   Function RETLW(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h380"
 
       d >> 7
        f 
"&h" And "&hFF"
 
       Return "RETLW " f
    End 
Function
 
   Function SUBLW(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h380"
 
       d >> 7
        f 
"&h" And "&hFF"
 
       Return "SUBLW " f
    End 
Function
 
   Function XORLW(ByVal s As String) As String
        Dim f
As Integer
        d 
"&h" And "&h380"
 
       d >> 7
        f 
"&h" And "&hFF"
 
       Return "XORLW " f
    End 
Function
End Module 

رابط الصورة
https://ibb.co/e60QLR
الرد
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم