// struct REGPACK reg;
reg.r_ax=0x1130;
reg.r_bx=reg_bx;
intr(0x10,®);
return MK_FP(reg.r_es,reg.r_bp);
上面的一段代码是获取16X8字符集的首地址,使用intr
我现在不想用intr这个函数,而想换成int86函数,不知道该怎么写啊?
BP寄存器不用intr还能怎么访问啊?或者有别的计算地址的方法?
//获取8X8字符集的首地址
unsigned char* GetCharacterPoint()
{
unsigned short wSeg = 0;
unsigned short wOff = 0;
asm push es
asm push bp
asm mov ax, 1130H
asm mov bh, 03H //获问8*8字库首地址
asm int 10h
asm mov ax, bp
asm pop bp //非常重要,否则程序会崩溃
asm mov wOff, ax
asm mov ax, es
asm mov wSeg, ax
asm pop es
return ((unsigned char *)(unsigned long)MK_FP(wSeg, wOff));
}
[ Last edited by firstsail on 2010-11-8 at 10:02 ]