如何使用Int 65H输出字符串?

时间:2015-05-23 16:17:49

标签: c++ c systems-programming

我需要使用中断Int 65输出一些字符串但它给我的错误我正在使用 Turbo C ++ 4.0 Windows 7 Windows 8 64位版本

#include<stdio.h>
#include<fcntl.h>
#include<io.h>
#include<BIOS.H>
#include<DOS.h>

void interrupt (*oldint65)( );
char st[80] = {"Hello World$"};
void interrupt newint65(void);

void main()
{
  oldint65 = getvect(0x65);
  setvect(0x65, newint65);
  geninterrupt (0x65);
  geninterrupt (0x65);
  geninterrupt (0x65);
  setvect(0x65, oldint65);
}

void interrupt newint65( )
{
  _AH = 0x09;
  _DX=(unsigned int)st;
  geninterrupt (0x21);
}

我附有错误图片,请帮助我,我做错了

Error image

2 个答案:

答案 0 :(得分:2)

函数定义与声明不匹配/冲突。 检查:

  • void interrupt (*oldint65)();
  • void interrupt *newint65(void);

单个名称中断不能有2个声明..

程序变更应如下:

声明:

void interrupt(*newint65)(void);

定义:

void interrupt(*newint65)( ) 
{ 
  _AH = 0x09; 
  _DX=(unsigned int)st; 
  geninterrupt (0x21); 
}

答案 1 :(得分:2)

尝试: 声明:

void interrupt_newint65(void);

定义:

 void interrupt_newint65( ) 
 { 
 _AH = 0x09; 
 _DX=(unsigned int)st; 
 geninterrupt (0x21); 
 }