2017-04-23 2 views
0

사용자가 입력 한 두 개의 숫자가 같은지 테스트 할 수있는 Easy68K로 프로그램을 만들려고합니다. 나는 대략적으로 사용자로부터 입력을 받아 데이터 레지스터에로드하는 방법을 알고 있으며 while 루프를 사용하여 두 숫자가 같은지 테스트해야한다고 생각합니다.Easy68K를 사용하여 두 개의 숫자가 같은지 테스트하십시오.

나는 사람들이 나를 위해 프로그램을 작성하라고 요구하지 않는다. 나는 정말로 조언이 필요하다.

내가 지금까지 가지고있는 코드 :

*----------------------------------------------------------- 
* Title  : Number Comparison 
* Written by : Robert Dudley 
* Date  : 23/04/2017 
* Description: Compares two numbers and determines if they are equal 
*----------------------------------------------------------- 
    ORG $1000 
START:          ; first instruction of program 

* Put program code here 

    LEA  enterFirst,A1    ; load message into adreg A1 
    MOVE.B  #14,D0 
    TRAP  #15 
    MOVE.B  #4,D0      ; read number from keyboard into D1.L 
    TRAP  #15 

    LEA  enterSecond,A1 
    MOVE.B  #14,D0 
    TRAP  #15 
    MOVE.B  #4,D0 
    TRAP  #15 

    SIMHALT        ; halt simulator 

* Put variables and constants here 

enterFirst  DC.B 'Enter first number: ',0 
enterSecond  DC.B 'Enter second number: ',0 

       END START    ; last line of source 

참고 :는 또 어떻게 다른 레지스터에 D1.L에서 입력을 이동합니까?

+0

마지막 질문 : 문장을 읽고 그것을 MOUN.L1, <다른 레지스터>'로 번역하십시오. – tofro

답변

0

아마도 키보드 입력 루틴은 입력 된 숫자를 일부 레지스터에 남겨두고, 그것이 D1이라고 가정합시다. 두 번째 값을 입력하면 다른 곳에 저장되지 않으면 첫 번째 값이 삭제됩니다. 트랩 확신 것도이 레지스터 값을 변경하지

 MOVE.L d1,d7 

가 확인 :

삽입 두 번째 TRAP 15 후 다음 줄을 (난 당신이 다른 하나 개의 레지스터에서 값을 이동하는 방법을 묻는 이유는 것 같다) - 그렇지 않으면 잃을 것입니다.

두 번째 키보드 입력이 끝나면 d1에 두 번째 숫자가 표시됩니다. 첫 번째 숫자는 d7에 계속 표시됩니다. C o MP은 두 개의 레지스터이며 쓸 수있는 [비] 평등 출력 루틴에 조건부 분기를 사용합니다.

+0

감사! 지금 직면하고있는 문제는 두 번째 값을 저장하는 것입니다 (결과를 표시하기 위해 D1.L을 다시 사용해야 함). 실제로 D7을 표시합니다. 그렇지 않으면 적어도 현재 첫 번째 입력의 값을 저장하고 있습니다. –

+0

신경 쓰지 마세요! 나는 뇌가 조금 죽었으므로 오랫동안 노력해 왔지만 지금은 기본을 가지고있다. 도와 주셔서 정말 감사합니다! –

관련 문제