⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmdisplay.frm

📁 用VB编的51单片机反汇编程序
💻 FRM
字号:
VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
Begin VB.Form FrmDisplay 
   Caption         =   "反编译图表"
   ClientHeight    =   7575
   ClientLeft      =   60
   ClientTop       =   450
   ClientWidth     =   11070
   LinkTopic       =   "Form1"
   ScaleHeight     =   7575
   ScaleWidth      =   11070
   StartUpPosition =   2  'CenterScreen
   Begin VB.CommandButton BtnAddPro 
      Caption         =   "Add"
      BeginProperty Font 
         Name            =   "隶书"
         Size            =   14.25
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   450
      Left            =   6240
      TabIndex        =   12
      Top             =   6480
      Width           =   825
   End
   Begin VB.CommandButton BtnDelPro 
      Caption         =   "Del"
      BeginProperty Font 
         Name            =   "隶书"
         Size            =   14.25
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   450
      Left            =   6240
      TabIndex        =   11
      Top             =   6960
      Width           =   825
   End
   Begin VB.CommandButton BtnAddDB 
      Caption         =   "AddDB"
      BeginProperty Font 
         Name            =   "隶书"
         Size            =   14.25
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   450
      Left            =   7170
      TabIndex        =   10
      Top             =   6480
      Width           =   1560
   End
   Begin VB.CommandButton BtnAddDW 
      Caption         =   "AddDW"
      BeginProperty Font 
         Name            =   "隶书"
         Size            =   14.25
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   450
      Left            =   8835
      TabIndex        =   9
      Top             =   6480
      Width           =   1140
   End
   Begin VB.CommandButton BtnDelD 
      Caption         =   "DelData"
      BeginProperty Font 
         Name            =   "隶书"
         Size            =   14.25
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   450
      Left            =   7170
      TabIndex        =   8
      Top             =   6960
      Width           =   1560
   End
   Begin VB.CommandButton BtnSave 
      Caption         =   "保存"
      BeginProperty Font 
         Name            =   "隶书"
         Size            =   21.75
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   945
      Left            =   10080
      TabIndex        =   7
      Top             =   6480
      Width           =   780
   End
   Begin VB.Frame FraSet 
      Height          =   6225
      Left            =   6240
      TabIndex        =   2
      Top             =   120
      Width           =   4650
      Begin VB.ListBox LPro 
         BeginProperty Font 
            Name            =   "MS Sans Serif"
            Size            =   9.75
            Charset         =   0
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   5580
         ItemData        =   "FrmDisplay.frx":0000
         Left            =   120
         List            =   "FrmDisplay.frx":0002
         TabIndex        =   4
         Top             =   480
         Width           =   1995
      End
      Begin VB.ListBox LData 
         BeginProperty Font 
            Name            =   "MS Sans Serif"
            Size            =   9.75
            Charset         =   0
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   5580
         Left            =   2115
         TabIndex        =   3
         Top             =   480
         Width           =   2445
      End
      Begin VB.Label Label1 
         Caption         =   "程序入口列表"
         BeginProperty Font 
            Name            =   "隶书"
            Size            =   14.25
            Charset         =   134
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   285
         Left            =   135
         TabIndex        =   6
         Top             =   180
         Width           =   1995
      End
      Begin VB.Label Label2 
         Caption         =   "数据入口列表"
         BeginProperty Font 
            Name            =   "隶书"
            Size            =   14.25
            Charset         =   134
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   285
         Left            =   2250
         TabIndex        =   5
         Top             =   180
         Width           =   1995
      End
   End
   Begin VB.CommandButton BtnClose 
      Caption         =   "关闭"
      BeginProperty Font 
         Name            =   "隶书"
         Size            =   21.75
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   450
      Left            =   8835
      TabIndex        =   1
      Top             =   6960
      Width           =   1140
   End
   Begin MSFlexGridLib.MSFlexGrid MSFG 
      Height          =   7335
      Left            =   120
      TabIndex        =   0
      Top             =   120
      Width           =   5655
      _ExtentX        =   9975
      _ExtentY        =   12938
      _Version        =   393216
   End
   Begin MSComDlg.CommonDialog CD 
      Left            =   0
      Top             =   0
      _ExtentX        =   847
      _ExtentY        =   847
      _Version        =   393216
   End
End
Attribute VB_Name = "FrmDisplay"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Public mL As Long
Dim Fso As New FileSystemObject
Dim hFile As TextStream

Private Sub BtnAddDB_Click()
Dim X, Y As Long
Dim Addr As Long
Dim tl As String
X = MSFG.Row - 1
Y = MSFG.Col - 1
Addr = X * 16 + Y
tl = Hex(Addr)
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
With FrmAdd
    .Show
    .DType = 1
    .TNAddr.Text = tl
    .BtnOK.Visible = False
    .BtnYes.Visible = True
End With
End Sub

Private Sub BtnAddDW_Click()
Dim X, Y As Long
Dim Addr As Long
Dim tl As String
X = MSFG.Row - 1
Y = MSFG.Col - 1
Addr = X * 16 + Y
tl = Hex(Addr)
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
With FrmAdd
    .Show
    .DType = 2
    .TNAddr = tl
    .BtnOK.Visible = False
    .BtnYes.Visible = True
End With
End Sub

Private Sub BtnAddPro_Click()
Dim X, Y As Long
Dim Addr As Long
Dim tl As String
X = MSFG.Row - 1
Y = MSFG.Col - 1
Addr = X * 16 + Y
tl = Hex(Addr)
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
ProIn(IP).Label = "L" + tl + ":"
ProIn(IP).Addr = Addr
IP = IP + 1
StartNASM
MSFGDisplay
LProDisplay
End Sub

Private Sub BtnClose_Click()
Unload Me
End Sub

Private Sub BtnDelD_Click()
Dim i As Long
'Dim TCP As MyPort
If LData.ListIndex <= 0 Or SP < 1 Then Exit Sub
For i = LData.ListIndex To SP
    DataIn(i - 1) = DataIn(i)
Next i
DP = DP - 1
StartNASM
MSFGDisplay
LProDisplay
End Sub

Private Sub BtnDelPro_Click()
Dim i As Long
If LPro.ListIndex <= 0 Or IP < 1 Then Exit Sub
For i = LPro.ListIndex To IP
    ProIn(i - 1) = ProIn(i)
Next i
IP = IP - 1
StartNASM
MSFGDisplay
LProDisplay
End Sub

Private Sub BtnTrans_Click()

End Sub

Private Sub BtnSave_Click()
Dim TS As String
Dim Num, i As Long
Dim Addr As Long
'Td.Text = "打开的十六进制文件内容为:"
CD.Filter = "*.Txt(十六进制文件)|*.TXT|*.ASM|*.ASM|*.A51|*.A51|*.*(所有文件)|*.*"
CD.ShowSave
SaveFilePathName = CD.FileName
If Left(Right(SaveFilePathName, 4), 1) = "." Then
    TS = SaveFilePathName
    SaveFilePathName = Left(SaveFilePathName, Len(SaveFilePathName) - 4)
    Select Case CD.FilterIndex
    Case 1:
        SaveFilePathName = SaveFilePathName + ".TXT"
    Case 2:
        SaveFilePathName = SaveFilePathName + ".ASM"
    Case 3:
        SaveFilePathName = SaveFilePathName + ".A51"
    Case Else
        SaveFilePathName = TS
    End Select
End If
'LStatus.Caption = "打开的文件:" + OpenFilePathName + "   保存的文件:" + SaveFilePathName
On Error GoTo EBtnLoad
Set hFile = Fso.OpenTextFile(SaveFilePathName, ForWriting, True)
For i = 0 To 65535
    If Len(ASM(i)) > 0 Then hFile.WriteLine ASM(i)
Next i
hFile.WriteLine ""
hFile.WriteLine "      END"
hFile.Close
Exit Sub
EBtnLoad:
MsgBox "打开文件失败!"
End Sub

Private Sub Form_Load()
Dim i As Long
'Dim mL As Long
Dim R As Long
Dim ttl As String
Dim X, Y As Long
LProDisplay
MSFG.Cols = 17
MSFG.ColWidth(0) = 500
MSFG.Row = 0
For i = 1 To 16
    MSFG.Col = i
    MSFG.ColWidth(i) = 300
    ttl = Hex(i - 1)
    If Len(ttl) < 2 Then ttl = "0" + ttl
    MSFG.Text = ttl
Next i
For i = 65535 To 0 Step -1
    If BD(i).D <> &HFF Then GoTo EndFor
Next i
EndFor:
mL = i
R = i \ 16 + 1
If R < 32 Then R = 32
MSFG.Rows = R + 1
MSFG.Col = 0
For i = 1 To R
    MSFG.Row = i
    ttl = Hex(16 * (i - 1))
    If Len(ttl) < 4 Then ttl = "0" + ttl
    If Len(ttl) < 4 Then ttl = "0" + ttl
    If Len(ttl) < 4 Then ttl = "0" + ttl
    If Len(ttl) < 4 Then ttl = "0" + ttl
    MSFG.Text = ttl
Next i

If Not StartNASM Then
    MsgBox "未打开文件或打开文件失败!" + L + L + "请打开十六进制文件后再试试!"
    Exit Sub
End If
MSFGDisplay
End Sub

Public Sub LProDisplay()
Dim i As Long
Dim tl As String
FraSet.Visible = True
Me.Width = FraSet.Left + FraSet.Width + 200
LPro.Clear
LData.Clear
LPro.AddItem "行标号,入口地址", 0
For i = 1 To IP
    LPro.AddItem ProIn(i - 1).Label + "  " + MyHex(ProIn(i - 1).Addr), i
Next i
LData.AddItem "行标号 入口地址 类型 长度", 0
For i = 1 To DP
    If DataIn(i - 1).DType Then
        tl = "DB"
    Else
        tl = "DW"
    End If
    LData.AddItem DataIn(i - 1).Label + "  " + MyHex(DataIn(i - 1).Addr) + "  " + tl + "  " + MyHex(DataIn(i - 1).Length), i
Next i
End Sub

Public Sub MSFGDisplay()
Dim i, X, Y As Long
Dim ttl As String
MSFG.Visible = False

For i = 0 To mL
    X = i \ 16 + 1
    Y = (i Mod 16) + 1
    MSFG.Row = X
    MSFG.Col = Y
    ttl = Hex(BD(i).D)
    If Len(ttl) < 2 Then ttl = "0" + ttl
    MSFG.Text = ttl
    If BD(i).F Then
        MSFG.CellForeColor = RGB(255, 0, 0)
    Else
        MSFG.CellForeColor = RGB(0, 0, 0)
    End If
Next i

MSFG.Visible = True
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -