Avatar billede danielhep Nybegynder
22. marts 2004 - 13:05 Der er 5 kommentarer og
1 løsning

Generere interupt i VC++

hej

Jeg har et lille problem.  Jeg har fået ASM til at virke i VC++, men hvordan udføre man et intrupt ?
Har prøvet lidt af hvert, læst på microsoft.com, google, pscode.
Jeg ved at i Borland Builder hedder det vidst nok geninterupt(); eller noget lig.

Denne kode skal udføres, men har brug for et interupt.
Hvis der siddet et klogt hovede som kan gøre det samme job uden interupt 21, så rapporter endelig. :)

mov ah,02
lea dx,txt
int 21h

Mvh

Daniel
Avatar billede soreno Praktikant
22. marts 2004 - 16:15 #1
Brug printf / cout  ?

http://www.ctyme.com/intr/rb-2554.htm


Hvis du skal lege med 16 bit kode kan det anbefales at anskaffe en DOS compiler, som f.eks. Turbo c
http://community.borland.com/article/0,1410,20841,00.html


Jeg tror ikke Windows NT og nyere tillader at du kalder interrupts direkte i 32 bits programmer (med mindre det er en driver og lign.).
Avatar billede danielhep Nybegynder
23. marts 2004 - 12:06 #2
Hvad mener du ?

mov ah,02
lea dx,txt

Lad os nu sige at jeg har ovenstående kode, og godt vil udskrive txt til skærmen. Hvad gør jeg så, hvis det skal gøres med assembler i VC++ 6.0 ?
Avatar billede soreno Praktikant
26. marts 2004 - 12:08 #3
Må jeg anbefale at hente masm:
http://www.movsd.com/masm.htm

Og læse:
c:\masm32\help\Asmintro.hlp

Det giver lidt overblik.
Avatar billede soreno Praktikant
28. marts 2004 - 12:35 #4
Eksempel på brug af printf i assembler (masm32):

.586
.MODEL FLAT, STDCALL

include    \masm32\include\msvcrt.inc
includelib  \masm32\lib\msvcrt.lib

.DATA
    txt db "Hello World",13,10

.CODE
start:
    PUSH OFFSET FLAT:txt
    CALL printf
    MOV ESP, 4  ;fjern pointer til txt fra stack
    MOV EAX, 0  ;retur værdi til operativ system
    RET

END start

Assemble med:
c:\masm32\bin\ml /c /coff main.asm
c:\masm32\bin\link /subsystem:console main.obj

Msvcrt filerne findes her:
http://uemake.szm.com/menu/links/compilers.htm

Direkte link:
http://uemake.szm.com/freeware/msvcrt.zip


Masm32 findes her:
http://www.masm32.com/masmdl.htm
Avatar billede danielhep Nybegynder
06. april 2004 - 10:34 #5
Kan jeg få et svar fra jer ??
Avatar billede soreno Praktikant
06. april 2004 - 16:25 #6
Godt nok er jeg ikke flertal, men mon ikke det er mig du mener ?
:-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester