我现在有一个double类型的数据要存在RAM 的一个固定地址里。机器是16位的。
如果是int类型的数据,以下程序可以实现:
void saveas (void)
{
int inttemp;
_asm (存)
{
lea si,inttemp
mov ax, [si]
mov ds:07ff0h, ax
}
_asm (取)
{
lea si,inttemp
mov ax,ds:07ff0h
mov [si],ax;
}
}
如果是double类型,就不行了:
void error_adj(int n)
{
double inttemp=0;
inttemp = 125.1234;
_asm(存)
{
lea si,inttemp
mov ax, [si]
mov ds:07ff0h, ax
inc si
inc si
mov ax, [si]
mov ds:07ff2h,ax
}
}
其中"lea si,inttemp " 编译就出错。
如果是int类型的数据,以下程序可以实现:
void saveas (void)
{
int inttemp;
_asm (存)
{
lea si,inttemp
mov ax, [si]
mov ds:07ff0h, ax
}
_asm (取)
{
lea si,inttemp
mov ax,ds:07ff0h
mov [si],ax;
}
}
如果是double类型,就不行了:
void error_adj(int n)
{
double inttemp=0;
inttemp = 125.1234;
_asm(存)
{
lea si,inttemp
mov ax, [si]
mov ds:07ff0h, ax
inc si
inc si
mov ax, [si]
mov ds:07ff2h,ax
}
}
其中"lea si,inttemp " 编译就出错。