Avatar billede delphidaner Nybegynder
09. august 2000 - 08:14 Der er 1 kommentar og
1 løsning

COM-filer med Turbo Assembly

Jeg sidder og eksperimenterer lidt med Assembler i DOS, og jeg har fået brug for at lave en COM-fil, i stedet for en almindelig DOS EXE-fil.

MEN: Når jeg prøver at linke OBJ-filen, så kommer følgende fejlmeddelelse:
\"Invalid initial entry point address\"

Jeg kan ikke finde ud af hvad jeg har gjort galt.

Jeg har lavet en Hello World! eksempel, så I (forhåbentlig) kan vise mig, hvad jeg skal gøre:

.MODEL TINY
.CODE

  MOV DX, @CODE
  MOV DS, DX
  MOV DX, OFFSET Msg
  MOV AH, 9h
  INT 21h

  MOV AH, 4Ch
  INT 21h

  Msg  DB      \'Hello world!\', 13, 10, \'$\'

END
Avatar billede delphidaner Nybegynder
10. august 2000 - 07:49 #1
Er der ikke nogen, som kan svare på mit spørgsmål? 75 point på højkant.
Avatar billede delphidaner Nybegynder
22. august 2000 - 07:53 #2
Jeg har selv fundet ud af problemet nu, ved at snuse lidt rundt på Internettet. Koden ovenover skal omskrives til dette:

.MODEL TINY
.CODE

  ORG 100h ; Skal altid med i COM-filer, vistnok pga. at de starter ved offset 100h

  ASSUME CS:@CODE, DS:@CODE ; Initialiser segment registrene


  Main PROC

    MOV DX, OFFSET Msg
    MOV AH, 09h
    INT 21h

    MOV AX, 4C00h
    INT 21h

    Msg DB \'Hello world!\', 13, 10, \'$\'

  ENDP

END Main

Det kan nu compiles som en COM-fil.


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