VC++中怎样加入汇编代码?
VC++中怎样加入汇编代码?
如:我要用70H,71H读写CMOS数据
问题点数:50、回复次数:5Top
1 楼chiesaitaly(莫名)回复于 2000-12-14 08:55:00 得分 30
随便举个例子:
BOOL GetDiffFrame(BYTE *pView, int vsx, int vsy, BYTE *pFull, int fx, int fy, int fsx, int fsy, BYTE *pDiff)
{
BYTE *pFullFrame;
int nPitchAdd;
pFullFrame=pFull+fsx*fy+fx;
nPitchAdd=fsx-vsx;
DWORD total=0;
_asm {
mov esi,dword ptr [pFullFrame]
mov ebx,dword ptr [pView]
mov edi,dword ptr [pDiff]
mov ecx,dword ptr [vsy]
shl ecx,16
}
dfyloop: _asm {
mov cx,word ptr [vsx]
}
dfxloop: _asm {
mov eax,dword ptr [esi]
mov edx,dword ptr [ebx]
xor eax,edx
mov dword ptr [edi],eax
mov dword ptr [esi],edx
add dword ptr [total],eax
add ebx,4
add edi,4
add esi,4
sub cx,4
jnz dfxloop
add esi,dword ptr [nPitchAdd]
sub ecx,65536
jnz dfyloop
}
if(total>0) return TRUE;
return FALSE;
}
Top
2 楼sxbyl(sxbyl)回复于 2000-12-14 08:56:00 得分 20
_asm
{
.
.
}Top
3 楼happylaodu(青菜豆腐)回复于 2000-12-15 01:08:00 得分 0
关注。Top
4 楼jiaojie(jiaojie)回复于 2000-12-15 09:14:00 得分 0
NT下所有的I/O特权级都是0,98下70H,71H的I/O特权级也是0。应用程序特权级为3,对特权级是0的I/O操作都被系统截获。而没有真的送到I/O口。Top
5 楼sxbyl(sxbyl)回复于 2000-12-15 11:37:00 得分 0
在98下对70H,71H进行操作应该是可以的。因为在我印象中好像9x是不分特权级的,都是0级。不只是不是我搞错了Top




