2010-03-27 3 views
1

Je suis en train de développer un noyau simple à l'aide TASM, en utilisant ce code:Programme Aucun Point d'entrée TASM Erreur

; beroset.asm 
; 
; This is a primitive operating system. 
; 
;********************************************************************** 
code segment para public use16 '_CODE' 
     .386 
     assume cs:code, ds:code, es:code, ss:code 
     org 0 
Start: 
     mov  ax,cs 
     mov  ds,ax 
     mov  es,ax 
     mov  si,offset err_msg 
     call DisplayMsg 
spin: 
     jmp  spin 


;**************************************************************************** 
; DisplayMsg 
; 
; displays the ASCIIZ message to the screen using int 10h calls 
; 
; Entry: 
; ds:si ==> ASCII string 
; 
; Exit: 
; 
; Destroyed: 
; none 
; 
; 
;**************************************************************************** 
DisplayMsg proc 
     push ax bx si 
     cld 
nextchar: 
     lodsb 
     or  al,al 
     jz  alldone 
     mov  bx,0007h 
     mov  ah,0eh 
     int  10h 
     jmp  nextchar 
alldone: 
     pop  si bx ax 
     ret 
DisplayMsg endp 


err_msg db  "Operating system found and loaded.",0 

code ends 
     END 

Je compilez comme ceci:

C: \ DOCUME ~ 1 \ Nathan \ Desktop> tasm/la/m2 beroset.asm
Turbo Assembler version 4.1 Copyright (c) 1988, 1996 Borland international

fichier Assemblage: beroset.asm
Messages d'erreur: Aucun
messages d'avertissement: Aucun
Laissez-passer: 2
mémoire restante: 406K

C: \ DOCUME ~ 1 \ Nathan \ Desktop> TLink beroset, loader.bin
Turbo Lien version 7.1. 30.1. Copyright (c) 1987, 1996 Borland International
Fatal: Aucune entrée de programme Point

C: \ DOCUME ~ 1 \ Nathan \ Desktop>

Que puis-je corriger cette erreur?

+0

Où est la ligne 'fin start'? Ne devrait pas y en avoir un? – Cipi

Répondre

1

Je dirais que vous avez besoin de mettre fin à la section Start: en ajoutant end Start à la dernière ligne comme celui-ci:

code ends 
end Start 

Mais encore une fois dans ce code n'initialisez pile ... Il ne fonctionnera pas, mais il devrait imprimer "Système d'exploitation trouvé et chargé.".

MISE À JOUR: En fait, cela a fait l'affaire. Je viens d'ajouter end Start à la place de END et l'erreur "No point d'entrée" a disparu. mais vous obtenez l'avertissement de pile.

Alors voilà. =)

CONCERNANT LA STACK: ajoutez juste avant tout:

.model small 
.stack 
+0

Ouais, maintenant j'ai "Attention: Pas de pile", mais comment puis-je résoudre ce problème? –

+0

Ok, j'ai ajouté la nouvelle mise à jour "CONCERNING THE STACK" donc le lire. ;) – Cipi

+0

Rappelez-vous que je commence juste à utiliser TASM, parce que mon assembleur est Nasm, je veux juste être meilleur sur Assembly en apprenant d'autres assembleurs. Merci beaucoup pour votre aide afin d'améliorer mes connaissances. –

Questions connexes