#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h>
#define VGA256 0x13
#define TEXT_MODE          0x03
void Set_Video_Mode_Asm(int mode){

_asm mov ah,0
    _asm mov al,mode
_asm int 10H
_asm ret}
int main(){
    Set_Video_Mode_Asm(VGA256);
Set_Video_Mode_Asm(TEXT_MODE);
return 0;
}结果出错:operand size conflict
应该怎么修改?另外vc中没有graphics.h那么怎么在命令行程序中绘图呢?

解决方案 »

  1.   

    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>
    #define VGA256 0x13
    #define TEXT_MODE 0x03
    void Set_Video_Mode_Asm(int mode){_asm mov ah,0
    _asm mov al,byte ptr mode //这样
    _asm int 10H
    _asm ret}
    int main(){
    Set_Video_Mode_Asm(VGA256);
    Set_Video_Mode_Asm(TEXT_MODE);
    return 0;
    }
    这个程序在执行会出错,Turbo C下的程序吧如果用VC使用Win32/MFC编程
      

  2.   

    嘿,上面差不多.不过那个RET不应该有
      

  3.   

    改后是可以编译通过了,不过像楼上说的会出错呀,用turbo C显示不能使用行内汇编,应该怎么弄?如果改称vc下可用的又怎么办呢?谢谢啦1!
      

  4.   

    VC下可用的是这样写吧
    _asm
    {
     mov ah,0
     mov al,byte ptr mode 
     int 10H
     ret   
    }