别人提供给我用VC写的读取IC卡读卡器的DLL(有原代码),其中有几段汇编程序,在WIN2000下调试到该汇编代码时报地址错,可在WIN98下没错!我对汇编一无所知,这几段代码具体什么功能我也不知道,特将该代码贴出以求救!如有必要我可贴出整个DLL的原代码(有点长)!void _outp(int output,unsigned char al_data)
{
__asm
{
push dx;
push ax;
mov dx,word ptr output;
mov al,byte ptr al_data;
out dx,al;
pop ax;
pop dx;
}
return;
}unsigned char _inp(int input)
{
unsigned char inp;
__asm
{
push dx;
push ax;
mov dx,word ptr input;
in al,dx;
mov byte ptr inp,al
pop ax;
pop dx;
}
return inp;
}int _read_port(void)
{
int port_r;
__asm
{
push es;
push ax;
mov ax,40h;
mov es,ax;
mov ax,es:word ptr [0ah];
cmp ax,0;
jne end_asm;
mov ax,es:word ptr [08h];
end_asm:
mov word ptr port_r,ax;
pop ax;
pop es;
}
return port_r;
}
{
__asm
{
push dx;
push ax;
mov dx,word ptr output;
mov al,byte ptr al_data;
out dx,al;
pop ax;
pop dx;
}
return;
}unsigned char _inp(int input)
{
unsigned char inp;
__asm
{
push dx;
push ax;
mov dx,word ptr input;
in al,dx;
mov byte ptr inp,al
pop ax;
pop dx;
}
return inp;
}int _read_port(void)
{
int port_r;
__asm
{
push es;
push ax;
mov ax,40h;
mov es,ax;
mov ax,es:word ptr [0ah];
cmp ax,0;
jne end_asm;
mov ax,es:word ptr [08h];
end_asm:
mov word ptr port_r,ax;
pop ax;
pop es;
}
return port_r;
}
好像是VC写的,我对VC不熟!