Det er meget simpelt: musekaldet er interrupt 33h ikke 21H som 33 decimalt svarer til.
I ASM er alle angivne "tal" automatisk hexadecimal, men i C er de decimale. Du får derfor kald interrupt 33 = 21h og den duer ikke. hvis du retter 33 til 0x33 i alle 'int' ASm instructioner ovenfor, så funker det. (Du behøver i øvrigt ikke at push & poppe ax - det gør C automatisk lige før ASM{ og efter den sidste "tuborg" klamme der hører til den. (Prøv at køre TurboDebugger på det dannede program via tools menuen - så kan du se det.)
Jeg er stadig ikke med ?!? Hvad er det du prøver på ? Hvordan kompilerer du programmet ? Umiddelbart synes jeg det ligner at din syntaks til opstart af selve kompileren er gal. Jeg har kompileret mit eksempel med Borland C++ 5.02 uden problemer.
Prøv at gen-installere din Borland C++ 5 - jeg havde en underlig intern fejl omkring link i min 5.02 den første gang jeg installerede. Undlad at rette alt for meget på de biblioteksnavne, som installationsprogrammet foreslår - min erfaring er at nogle programmer (BC5.02 deriblandt) "kløjs" i det, hvis man ændrer dem.
mcergud >> selv tak for hjælpen. Du har stadig ikke fortalt hvad du har fundet ud af.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.