2017-03-06 4 views
0

필자는 getdec을 사용하여 int를 얻는 방법을 알아 내려고 2 시간 만에 벽에 머리를 대고 있었다. Google은 전혀 도움이되지 못했다. 사용하는 책은 getdec뿐만 아니라 입력과 출력도 정의하지만 사용 방법에 대한 예제는 제공하지 않습니다.내 인생에 GETDEC을 사용할 수 없다.

나는 get dec을 사용하여 스택에서 푸시하는 것으로 사용자로부터 여러 int를 얻어야한다. 나는 getdec이 AX에 입력과 저장을해야한다고 알고있다. 또한 도트 작업을 사용할 수 없습니다.

나는 ML /Fl p3.asm /link io.lib pause을 사용하여 파일을 만듭니다. 그래서 lib.io가 포함되어 있다는 것을 알고 있습니다.

지금까지 필자는이있어 :

`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 

임 스택을 사용하는 방법에 대한 좋은 천식을하지만 난 단순히 캔트 getdec 사용하여 입력을받을.

+0

'GETDEC'은 평범한 것이 아니며 사용중인 책을 지정하지 않으면 우리는 당신이 무슨 말을하는지 전혀 모릅니다. 그것은 "x86 어셈블리"의 일부가 아니며 책의 저자가 만든 코드입니다. 링크에서 "io.lib"를 코드에 연결하여 외부 코드를 추가하므로 어셈블러 지시문을 사용하여 다른 모듈간에 이러한 외부 심볼을 ​​상호 연결해야합니다. 또한 이러한 외부 기능을 암기하는 데 너무 많은 시간을 소비하지 마십시오.이 책은이 책과 만 관련이 있고 지침과 원칙에 초점을 맞추기 때문에 다른 곳에서도 일부 수정 사항이 적용됩니다. – Ped7g

답변

0

발견했습니다. 다른 사람이 문제가있는 경우 프로그램 시작시 EXTERN GETDEC:FAR을 포함해야합니다.