Как распечатать вывод из int86

#c #assembly #x86-16

#c #собрание #x86-16

Вопрос:

Я пытаюсь понять концепцию функции int86. Я хочу распечатать строки, которые он прочитал из файла на консоли, и отобразить сообщение об ошибке печати (если таковое имеется) при открытии или перемещении указателя файла (после проверки переменной ФЛАГА, определенной в объединении ПРАВИЛ).

 #includelt;STDIO.Hgt; #includelt;FCNTL.Hgt; #includelt;IO.Hgt; #includelt;BIOS.Hgt; #includelt;DOS.Hgt; unsigned int handle; void main() {  union REGS regs;  unsigned long int size;  handle = open("C:filed", O_RDONLY);  regs.x.bx = handle;  regs.h.ah = 0x42;  regs.h.al = 0x02;   regs.x.cx = 0;  regs.x.dx = 0;   int86(0x21, amp;regs, amp;regs);  printf (regs);  getch(); }  

Комментарии:

1. Вы можете отправить ( $ -завершенную) строку STDOUT с 0x21 функцией прерывания 0x09 (если у вас есть MS-DOS). Но если вы пишете на C и для выполнения этих задач существуют функции библиотеки C, используйте их. Если есть задания, которые библиотека не охватывает, используйте системные вызовы. Но если вы практикуетесь в ассемблере, используйте ассемблер, а не C.

2. Обратите внимание, что printf (regs); это вообще не сработает.

3. @WeatherVane: Без сомнения, но он понятия не имеет, как это сделать. Если бы я на самом деле кодировал в сборке, я бы смог это сделать, но, похоже, я не могу вспомнить, как с этим справиться в такой структуре правил.

4. @Joshua это Борланд Турбо С ?

5. @WeatherVane: Я верю, что это так.