93 lines
1.2 KiB
C++
93 lines
1.2 KiB
C++
|
|
// Assemble.TestCode.cpp : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨Ӧ<CCA8>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ㡣
|
|||
|
|
//
|
|||
|
|
|
|||
|
|
#include "stdafx.h"
|
|||
|
|
#include <stdlib.h>
|
|||
|
|
#include <stdio.h>
|
|||
|
|
#include <windows.h>
|
|||
|
|
|
|||
|
|
void AsmFunc(int* pAddr);
|
|||
|
|
|
|||
|
|
void DoHist(int* pHist, short* pData, int nDataLen)
|
|||
|
|
{
|
|||
|
|
memset(pHist, 0, sizeof(int)*65536);
|
|||
|
|
|
|||
|
|
for(int i = 0; i < nDataLen; i++)
|
|||
|
|
{
|
|||
|
|
pHist[pData[i]+32768]++;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
int _tmain(int argc, _TCHAR* argv[])
|
|||
|
|
{
|
|||
|
|
DWORD nData = 20, nData1 = 1;
|
|||
|
|
|
|||
|
|
int pHist[65536] = {0};
|
|||
|
|
short* pshData = new short[1280*1024 + 4096];
|
|||
|
|
|
|||
|
|
for(int i = 0; i < 1280*1024; i++)
|
|||
|
|
{
|
|||
|
|
pshData[i] = i+1 % 32768;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//DoHist(pHist, pshData, 1280*1024);
|
|||
|
|
|
|||
|
|
//delete [] pshData;
|
|||
|
|
//pshData = NULL;
|
|||
|
|
|
|||
|
|
char cData = 1;
|
|||
|
|
|
|||
|
|
_asm
|
|||
|
|
{
|
|||
|
|
inc nData1
|
|||
|
|
;nData1
|
|||
|
|
mov esi, pshData
|
|||
|
|
movzx eax, DWORD PTR [esi]
|
|||
|
|
add esi,2
|
|||
|
|
movzx eax, DWORD PTR [esi]
|
|||
|
|
mov eax, type nData1
|
|||
|
|
mov eax, type nData1
|
|||
|
|
movzx eax,DWORD PTR [nData1]
|
|||
|
|
;xchg eax, ebx ;[nData1]
|
|||
|
|
mov eax,10Q
|
|||
|
|
add eax,10H
|
|||
|
|
//mov nData, eax
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//AsmFunc(&nData);
|
|||
|
|
|
|||
|
|
delete [] pshData;
|
|||
|
|
pshData = NULL;
|
|||
|
|
|
|||
|
|
|
|||
|
|
int jj = 0;
|
|||
|
|
|
|||
|
|
getchar();
|
|||
|
|
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void AsmFunc(int* pAddr)
|
|||
|
|
{
|
|||
|
|
_asm
|
|||
|
|
{
|
|||
|
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
; <EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>
|
|||
|
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>
|
|||
|
|
|
|||
|
|
//push eax
|
|||
|
|
//push ebx
|
|||
|
|
//push ecx
|
|||
|
|
tag1:
|
|||
|
|
mov eax,0x0F
|
|||
|
|
mov ebx,0x10
|
|||
|
|
add eax,ebx
|
|||
|
|
mov ecx,pAddr
|
|||
|
|
mov [ecx],eax
|
|||
|
|
//pop ecx
|
|||
|
|
//pop ebx
|
|||
|
|
//pop eax
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|