Would anyone be able to understand why I get the following error message when I run this prgram.
UNIT1 caused a general protection fault
in module KRNL386.EXE at 0001:00008617.
Registers:
EAX=00003601 CS=0147 EIP=00008617 EFLGS=00010206
EBX=0055010c SS=016f ESP=0065fde4 EBP=0065fde8
ECX=006821c8 DS=015f ESI=0041c148 FS=657f
EDX=00682303 ES=016f EDI=00000000 GS=0000
Bytes at CS:EIP:
8e 5e fe 50 9c 58 f6 c4 02 58 75 01 fb c3 1f e8
Stack dump:
016f0000 115dfe05 02030167 00550000 00423818 00000001 00000100 00000001 0065fe30 0041952e 00000001 006821c8 0068238c 00000000 817b69c8 00550000
It happens at the int 21h statement. The program just calls a basic sub function.
Code:
#include <iostream.h>
#include <stdio.h>
int main(void)
{
unsigned a, b, c, d;
asm
{
mov ah, 36h
mov dl, 3
int 21h
mov a, eax
mov b, ebx
mov c, ecx
mov d, edx
}
cout << a << "\n" << b << "\n" << c << "\n" << d;
cin.get();
return 0;
}