2017-03-06 1 views
0

Je me suis mis la tête contre un mur pendant 2 heures juste en essayant de comprendre comment obtenir un int en utilisant getdec et Google n'a été d'aucune aide pour moi. Le livre im using donne seulement une définition de getdec aussi bien que ses entrées et sortie mais aucun exemple sur la façon dont il est utilisé.Je ne peux pas utiliser GETDEC pour la vie de moi

Je dois obtenir plusieurs ints de l'utilisateur en utilisant get dec et en les poussant sur la pile. Je sais que getdec est censé prendre une entrée et stocker dans AX. Je ne suis également pas autorisé à utiliser des opérations ponctuelles.

Je fais le fichier en utilisant ML /Fl p3.asm /link io.lib pause donc je sais que lib.io est inclus.

Jusqu'à présent, ive seulement obtenu ceci:

`DOSSEG` 

    DATA SEGMENT 
    NAM  BYTE 'xxxxx xxxxxxxxxx' ;LEN 19-CHANGE NAME AND LEN 
    HEADER BYTE 'Enter a number' 
    ZEROS WORD 0000 
    DATA ENDS 
    CODE SEGMENT 'CODE' 
    ASSUME CS:CODE, SS:NOTHING, DS:DATA, ES:NOTHING 
    P3: MOV AX,SEG DATA 
    MOV DS,AX 
    call GETDEC 
    PUSH AX 
;rest of code goes here 


    CODE ENDS 
    END P3 

Im bon sur l'utilisation de la pile et asthmatique, mais je ne peux pas simplement obtenir l'entrée à l'aide getdec.

+0

Vous savez que ce 'GETDEC' n'est rien d'ordinaire, et sans spécifier le livre que vous utilisez, nous n'avons aucune idée de ce dont vous parlez? Cela ne fait pas partie de "x86 Assembly", mais du code fait par l'auteur du livre. Dans la liaison, vous ajoutez ce code externe en liant "io.lib" à votre code, vous devez donc utiliser les directives Assembler pour interconnecter ces symboles externes entre différents modules. Aussi ne pas passer trop de temps à mémoriser ces fonctions externes, car elles ne sont pertinentes que pour ce livre, se concentrer sur les instructions et les principes, ceux-ci s'appliquent avec quelques modifications également ailleurs. – Ped7g

Répondre

0

Je l'ai trouvé! Si quelqu'un d'autre a des problèmes, vous devez inclure EXTERN GETDEC:FAR au début du programme.