国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

VB中運用匯編一例

VB中運用匯編一例

更新時間:2021-09-25 文章作者:未知 信息來源:網絡 閱讀次數:

下面的例子完全用VB進行ASM編程的示例,本例獲得CPU ID.


工程文件分為一個form1.frm 和一個模塊module1.bas

----------------------form1.frm的源文件---------------------

VERSION 5.00
Begin VB.Form Form1
   Caption         =   "Form1"
   ClientHeight    =   1965
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   3105
   LinkTopic       =   "Form1"
   ScaleHeight     =   1965
   ScaleWidth      =   3105
   StartUpPosition =   2  'Bildschirmmitte
   Begin VB.CommandButton Command1
      Caption         =   "Get CPU Name"
      Height          =   495
      Left            =   840
      TabIndex        =   0
      Top             =   315
      Width           =   1425
   End
   Begin VB.Label Label2
      Alignment       =   2  'Zentriert
      AutoSize        =   -1  'True
      BeginProperty Font
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   240
      Left            =   1515
      TabIndex        =   2
      Top             =   1065
      Width           =   60
   End
   Begin VB.Label Label1
      Alignment       =   2  'Zentriert
      AutoSize        =   -1  'True
      BeginProperty Font
         Name            =   "Arial"
         Size            =   12
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   285
      Left            =   1515
      TabIndex        =   1
      Top             =   1350
      Width           =   75
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)

    Label1 = ""
    Label2 = ""

End Sub

Private Sub Command1_Click()
    
    Label1 = GetCpuName() & " CPU"
    Label2 = "You have a" & IIf(InStr("AEIOU", Left$(Label1, 1)), "n", "")

End Sub
------------------------------end---------------------------------





下面是modu1e.bas的源代碼

----------------------module1.bas的源文件--------------------------
Option Explicit
'
'This shows how to incorporate machine code into VB
'''''''''''''''''''''''''''''''''''''''''''''''''''
'The example fills the array with a few machine instructions and then copies
'them to a procedure address. The modified procedure is then called thru
'CallWindowProc. The result of this specific machine code is your CPU Vendor Name.
'
'##########################################################################
'Apparently it gets a Stack Pointer Error, but I don't know why; if anybody
'can fix that please let me know...                          UMGEDV@AOL.COM
'The Error is not present in the native compiled version; so I think it got
'something to do with the P-Code Calling Convention (strange though)...
'##########################################################################
'
'Sub Dummy serves to reserve some space to copy the machine instructions into.
'
'
'Tested on Intel and AMD CPU's (uncompiled and compiled)
'
'
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)
Private x As Long

Public Function GetCpuName() As String
  
  Dim MachineCode(0 To 35)  As Byte
  Dim VarAddr               As Long
  Dim FunctAddr             As Long
  Dim EAX                   As Long
  Dim CPUName(1 To 12)      As Byte
  
  'set up machine code
    
    MachineCode(0) = &H55    'push ebp
    
    MachineCode(1) = &H8B    'move ebp,esp
    MachineCode(2) = &HEC
    
    MachineCode(3) = &H57    'push edi
    
    MachineCode(4) = &H52    'push edx
    
    MachineCode(5) = &H51    'push ecx
    
    MachineCode(6) = &H53    'push ebx
    
    MachineCode(7) = &H8B    'move eax,dword ptr [ebp+8]
    MachineCode(8) = &H45
    MachineCode(9) = &H8
    
    MachineCode(10) = &HF    'cpuid
    MachineCode(11) = &HA2
    
    MachineCode(12) = &H8B   'mov edi,dword ptr [ebp+12]
    MachineCode(13) = &H7D
    MachineCode(14) = &HC
    
    MachineCode(15) = &H89   'move dword ptr [edi],ebx
    MachineCode(16) = &H1F
    
    MachineCode(17) = &H8B   'mov edi,dword ptr [ebp+16]
    MachineCode(18) = &H7D
    MachineCode(19) = &H10
    
    MachineCode(20) = &H89   'move dword ptr [edi],ecx
    MachineCode(21) = &HF
    
    MachineCode(22) = &H8B   'mov edi,dword ptr [ebp+20]
    MachineCode(23) = &H7D
    MachineCode(24) = &H14
    
    MachineCode(25) = &H89   'move dword ptr [edi],edx
    MachineCode(26) = &H17
    
    MachineCode(27) = &H58   'pop ebx

    MachineCode(28) = &H59   'pop ecx

    MachineCode(29) = &H5A   'pop edx

    MachineCode(30) = &H55   'pop edi
    
    MachineCode(31) = &HC9   'leave

    MachineCode(32) = &HC2   'ret 16     I tried everything from 0 to 24
    MachineCode(33) = &H10   '           but all produce the stack error
    MachineCode(34) = &H0
    
    'tell cpuid what we want
    EAX = 0
    
    'get address of Machine Code
    VarAddr = VarPtr(MachineCode(0))
    
    'get address of Sub Dummy
    FunctAddr = GetAddress(AddressOf Dummy)
    
    'copy the Machine Code to where it can be called
    CopyMemory ByVal FunctAddr, ByVal VarAddr, 35 '35 bytes machine code
    
    'call it
    On Error Resume Next 'apparently it gets a stack pointer error when in P-Code but i dont know why
      CallWindowProc FunctAddr, EAX, VarPtr(CPUName(1)), VarPtr(CPUName(9)), VarPtr(CPUName(5))
      'Debug.Print Err; Err.Description
      'MsgBox Err & Err.Description
    On Error GoTo 0
    
    GetCpuName = StrConv(CPUName(), vbUnicode) 'UnicodeName
    
End Function

Private Function GetAddress(Address As Long) As Long

    GetAddress = Address

End Function

Private Sub Dummy()

  'the code below just reserves some space to copy the machine code into
  'it is never executed

    x = 0
    x = 1
    x = 2
    x = 3
    x = 4
    x = 5
    x = 6
    x = 7
    x = 8
    x = 9
    x = 10
    x = 0
    x = 1
    x = 2
    x = 3
    x = 4
    x = 5
    x = 6
    x = 7
    x = 8
    x = 9
    x = 10
   
End Sub

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        一片黄亚洲嫩模| 国产精品色哟哟网站| 欧美成人乱码一区二区三区| 五月天丁香久久| 在线播放一区二区三区| 激情欧美一区二区| 久久久久亚洲蜜桃| 91色婷婷久久久久合中文| 亚洲日本成人在线观看| 欧美性大战久久久久久久| 日本一区中文字幕| 欧美国产日本视频| 日本精品一级二级| 免费观看成人鲁鲁鲁鲁鲁视频| 精品人伦一区二区色婷婷| 国产激情一区二区三区| 亚洲一区二区三区小说| 精品日韩99亚洲| 91视频免费播放| 日av在线不卡| 亚洲同性同志一二三专区| 欧美理论电影在线| 国产91综合网| 天天综合色天天| 亚洲欧美另类综合偷拍| 久久久无码精品亚洲日韩按摩| 91理论电影在线观看| 美女网站色91| 亚洲午夜精品在线| 国产精品视频免费看| 日韩一区二区三区观看| 欧美亚洲愉拍一区二区| 成人激情av网| 国产精品538一区二区在线| 日韩在线a电影| 亚洲无线码一区二区三区| 国产精品毛片久久久久久久| 久久综合视频网| 日韩一级高清毛片| 欧美乱熟臀69xxxxxx| 欧美在线免费播放| 色悠久久久久综合欧美99| 高清国产午夜精品久久久久久| 日本成人在线视频网站| 午夜电影一区二区| 一区二区三区精品| 亚洲国产毛片aaaaa无费看| 亚洲精品免费电影| 一卡二卡欧美日韩| 亚洲摸摸操操av| 樱桃国产成人精品视频| 中文字幕欧美国产| 国产精品福利一区| 国产日韩欧美麻豆| 久久久久一区二区三区四区| 欧美一区国产二区| 欧美电影在线免费观看| 欧美日韩免费一区二区三区| 日本精品一区二区三区高清| 丁香激情综合国产| 成人av资源下载| 97精品久久久午夜一区二区三区 | 久久久午夜电影| 欧美另类高清zo欧美| 色成人在线视频| 欧美精品v国产精品v日韩精品| 欧美日韩亚洲国产综合| 欧美中文字幕久久| 欧美理论在线播放| 日韩视频一区在线观看| 日韩欧美国产电影| 欧美一级夜夜爽| 久久久久久久一区| 中文久久乱码一区二区| 国产精品家庭影院| 成人欧美一区二区三区黑人麻豆| 一区二区三区四区精品在线视频| 99精品一区二区三区| 中文字幕的久久| 自拍偷拍亚洲欧美日韩| 日韩一二在线观看| 综合色天天鬼久久鬼色| 亚洲乱码国产乱码精品精98午夜| 亚洲欧美综合另类在线卡通| 亚洲免费观看高清完整版在线观看熊 | 国产精品18久久久久久久网站| 国产乱码精品一区二区三| 国产999精品久久| 色综合视频一区二区三区高清| 欧美性受极品xxxx喷水| 日韩限制级电影在线观看| 国产精品色眯眯| 午夜激情久久久| 国产丶欧美丶日本不卡视频| 日韩免费一区二区| 自拍偷拍欧美精品| 蜜桃视频在线观看一区| 国产91在线看| 欧美久久久一区| 国产日韩欧美综合在线| 亚洲午夜羞羞片| 粉嫩aⅴ一区二区三区四区五区| 欧美亚洲综合另类| 亚洲精品一区二区三区蜜桃下载| 亚洲电影激情视频网站| 国产成人精品免费| 欧美精品乱人伦久久久久久| 欧美激情在线一区二区三区| 日韩av二区在线播放| 99久免费精品视频在线观看| 欧美一级理论片| 一区二区三区四区在线| 国产福利91精品一区二区三区| 日韩欧美中文字幕精品| 亚洲精品视频在线观看免费| 国产高清在线观看免费不卡| 欧美女孩性生活视频| 中文字幕一区二区视频| 久久99精品视频| 欧美日韩精品二区第二页| 中文一区在线播放| 久久电影网电视剧免费观看| 欧美电影一区二区| 亚洲国产精品久久久久婷婷884| 不卡欧美aaaaa| 日本一区二区免费在线 | 国产精一品亚洲二区在线视频| 在线观看不卡一区| 国产精品久久久久aaaa樱花 | 依依成人精品视频| 成人黄色在线网站| 国产午夜精品久久| 国产一区在线不卡| 国产婷婷色一区二区三区四区| 免费精品视频在线| 欧美va亚洲va在线观看蝴蝶网| 日韩精品视频网站| 欧美一区二区三区成人| 视频精品一区二区| 欧美一区二区三区性视频| 视频一区二区三区中文字幕| 欧美日韩一级视频| 亚洲午夜电影网| 欧美性猛片xxxx免费看久爱| 一区二区三区蜜桃网| 欧美午夜在线一二页| 五月婷婷另类国产| 欧美一区二区三区不卡| 国产精品亚洲一区二区三区妖精| 久久久久久日产精品| 奇米精品一区二区三区在线观看一 | 亚洲欧美一区二区久久| 91色在线porny| 一区二区三区美女视频| 99精品国产热久久91蜜凸| 亚洲大片精品永久免费| 欧美视频在线一区二区三区 | 中文字幕高清不卡| 91免费视频大全| 天天色 色综合| 精品国产乱码久久久久久老虎| 国产美女av一区二区三区| 国产欧美一区二区在线| 一区二区三区成人| 日韩一区二区中文字幕| 亚洲成人av一区| 久久午夜免费电影| 99久久国产综合精品色伊| 婷婷综合久久一区二区三区| 精品久久久久久久人人人人传媒| 成年人网站91| 日韩精品一级中文字幕精品视频免费观看 | 狠狠色丁香久久婷婷综合丁香| 欧美高清在线一区二区| 欧美日韩美女一区二区| 国产毛片精品视频| 一区二区三区色| 欧美精品一区二区蜜臀亚洲| 色综合天天综合网天天看片| 青青青伊人色综合久久| 亚洲欧洲色图综合| 久久久国产精品午夜一区ai换脸| 色综合久久66| 国产不卡在线播放| 日韩成人精品在线观看| 国产精品久久久久久久久晋中 | 久久精品国产99国产精品| 国产精品入口麻豆原神| 91精品国产高清一区二区三区| 国产成人综合网| 日本不卡视频在线| 亚洲综合视频在线观看| 国产午夜精品久久久久久久| 欧美电影影音先锋| 91亚洲精品久久久蜜桃网站| 九一九一国产精品| 视频一区二区欧美| 亚洲精品高清视频在线观看| www欧美成人18+| 666欧美在线视频|