2014-11-08 4 views
-1

화면에 문자열을 쓰기 : 를 내가 주제 공식 언어를 공부하고 컴파일러, 그리고 난이 연습 해결해야한다 : PL0에서PL0 인터프리터는 내가이 작업과 도움을 부탁드립니다

을 지시 WRI 0 0은 ASCII 값이 스택 맨 위에있는 문자를 화면에 표시하고 스택 포인터의 맨 위를 1 줄입니다. 스택에 문자 스트링이 저장되어 있다고 가정합니다 (저장 방법 생각). 이러한 문자열이 화면에 표시되는 일련의 지침을 작성하십시오.

누군가 나에게 조언을 해줄 수 있습니까? 근본적으로, PL0의 작동 원리 - PL0의 지침은 무엇을 의미합니까?하지만이 연습 문제를 어떻게 처리해야할지 모르겠습니다.

문자열 저장 :

사용자가 문자열의 문자 수를 입력하라는 메시지가 표시됩니다 당신에게 다음과 같이

+0

[도움말], 포인트 # 3을 참조하십시오. 질문 : 숙제를 요청하는 질문에는 문제를 해결하기 위해 지금까지 수행 한 작업의 요약과 문제 해결에 대한 설명이 포함되어야합니다. _ –

답변

0

내 생각은 대단히 감사합니다. 그런 다음 실행되는주기가 있으며 각 반복마다 문자의 ASCII 값을 입력하라는 메시지가 표시됩니다. 사이클이 실행되는 동안,

다시하고 명령 WRI iteraton 각 0 - 0 스택에서 콘솔 상단의 문자에 기록 :

콘솔에 문자열을 작성합니다. 문제는 문자열이 코스를 따라 회전한다는 것입니다 (예 : 지정된 일련의 문자 A, B, C가 콘솔에 CBA로 기록됨).

불행히도 나는 문자열을 변환하는 방법을 모릅니다. 나는 어떤 충고에 대해 감사 할 것입니다. 감사합니다.

   INT 0 5       
       &ECHO Enter length of a string: 
       REA 0 0 
       STO 0 3 
       LIT 0 1 
       STO 0 4 
@loop_read LOD 0 4 
       LOD 0 3 
       OPR 0 13 
       JMC 0 @end_read 
       &ECHO Enter the ASCII code of a char: 
       REA 0 0 
       LOD 0 4 
       LIT 0 1 
       OPR 0 2 
       STO 0 4 
       JMP 0 @loop_read 
@end_read  LIT 0 1 
       STO 0 4 
@loop_write LOD 0 4 
       LOD 0 3 
       OPR 0 13 
       JMC 0 @end_write 
       WRI 0 0 
       LOD 0 4 
       LIT 0 1 
       OPR 0 2 
       STO 0 4 
       JMP 0 @loop_write 
@end_write  RET 0 0