Как я могу вывести строку, используя Int 65H?

Мне нужно вывести некоторую строку, используя прерывание 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);
}

я приложил изображение ошибки, пожалуйста, помогите мне, где я делаю неправильно

Ошибка изображения

0

Решение

Определение функции не совпадает / Столкновение с объявлением.
Проверьте:

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

Одно прерывание имени Не может иметь 2 объявлений ..

Изменение в программе должно быть следующим:

Декларация:

void interrupt(*newint65)(void);

Определение:

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

Другие решения

Пытаться:
Декларация:

void interrupt_newint65(void);

Определение:

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

По вопросам рекламы [email protected]