E chi te lo ha detto? E' possibilissimo invece ...Originariamente inviato da Mabi
Cosa intendi con implementare codice assembler ?
Io so che non è possibile includerne in VB.
Ad esempio, partiamo dalla tua moltiplicazione del cui risultato vuoi la parte a 32 bit meno significativa ...
Parlo dell'operazione
&H87654321 * &H12345678
e della parte di risultato che ti interessa : &H70B88D78
Questo il codice che ho scritto per tale operazione
Fammi saperecodice:Private Declare Function CallWindowProc Lib "user32" _ Alias "CallWindowProcA" (ByVal pLShiftCode As Long, _ ByRef p1 As Long, _ ByVal p2 As Long, _ ByVal p3 As Long, _ ByVal p4 As Long) As Long Dim MulCode() As Byte Dim pMul As Long Private Sub Form_Load() ReDim MulCode(0 To 22) MulCode(0) = &H55 ' push ebp MulCode(1) = &H8B ' mov ebp, esp MulCode(2) = &HEC MulCode(3) = &H57 ' push edi MulCode(4) = &H8B ' mov edi, [ebp+8] MulCode(5) = &H7D MulCode(6) = &H08 MulCode(7) = &H8B ' mov ecx, [ebp+12] MulCode(8) = &H4D MulCode(9) = &H0C MulCode(10) = &H8B ' mov eax, [edi] MulCode(11) = &H07 MulCode(12) = &HF7 ' mul ecx MulCode(13) = &HE1 MulCode(14) = &H89 ' mov [edi], eax MulCode(15) = &H07 MulCode(16) = &H5F ' pop edi MulCode(17) = &H8B ' mov esp, ebp MulCode(18) = &HE5 MulCode(19) = &H5D ' pop ebp MulCode(20) = &HC2 ' ret 16 MulCode(21) = &H10 MulCode(22) = &H00 pMul = VarPtr(MulCode(0)) End Sub Private Sub Command1_Click() Dim VA As Long Dim VB As Long VA = &H12345678 ' Primo valore VB = &H87654321 ' Secondo valore CallWindowProc pMul, VA, VB, 0, 0 Print Hex$(VA) ' Risultato in VA End Sub

Rispondi quotando