2013-03-03 3 views
0

사용자로부터 문자열을 취한 다음 각 문자가 문자열에 사용 된 횟수를 출력하는 방법에 대한 도움말을 찾고 있습니다.문자 검사를 만드는 MIPS 어셈블리

의사 코드 문자열 "문자열을 입력하십시오 :" 걸릴 문자열 및 배열로 저장 문자 값의 아스키 중복에 대한 확인 및 편지 대응하는 출력 후 출력.

예 : 안녕하세요

A: 
B: 
C: 
D: 1 
E: 1 
... 
H: 1 
... 
W: 1 

코드

.data 
intro: .asciiz "Letter Checker Program" 
question: .asciiz "\nPlease enter a string for evaluation: " 

string: .space 1024 
alphabet: .space 26 


.text 

main: 
jal setup 
#jal analyze 
#jal results 

li $v0, 10 
syscall 

setup: 
li $v0, 4 # outputing name and program information 
la $a0, intro 
syscall 

li $v0, 4 # asksing for string input 
la $a0, question 
syscall 

li $v0, 8 
la $a0, string 
li $a1, 1024 
syscall 

jr $ra  # return 

analyze: 

loop: 

루프 :

결과 :

+1

이미 시도한 것을 게시 할 수 있습니까? 이렇게하면 더 잘 도와 줄 수 있습니다. – Patrik

+0

.DATA 소개 : "편지 검사기 프로그램" 질문 .asciiz : .asciiz "\ nPlease 평가를 위해 문자열을 입력 :" 문자열 : .space 1024 알파벳 : .space 26 .텍스트 주 : \t 리 $의 V0, 4 \t #하고 출력하기 이름 및 프로그램 정보 : 이 \t JAL 설정이 \t이 \t #jal 결과 \t 리 $의 V0, 10 \t 콜 \t 설정을 분석 #jal \t la $ a0, 소개 \t syscall \t \t li $ v0, 4 \t # 문자열 입력에 대한 \t 라 $의 A0를 asksing, \t 콜 \t \t 리 $의 V0, 8 \t 라 $의 A0, 문자열 \t 리 $ a1을 1024 \t 콜에 의문을 제기 \t \t 주니어 $ 가시 \t \t # 리턴 \t 분석 : 루프 : \t \t 을 \t \t #loop : \t #results : –

답변

0

싶은 것은 :

  1. 일부 공간 (26 * 4 바이트)에 결과를 저장 문자열의 각 문자에 걸쳐 0
  2. 루프 채우고 lb
  3. 이 편지의 수치, 따라서, 메모리 위치를 확인하여 (로드 만들기 1 단계). 대문자와 소문자를 잊지 마십시오. 메모리 위치 (4 바이트, lw를 사용하는) 것을
  4. 로드, 1 값을 증가하고, 0을 발생할 때 sw
  5. 정지 다시 저장 (하지 편지를 '0')
  6. 에서 루프를 통해 분석 알파벳의 모든 문자를 1 단계에서 해당 메모리 위치에로드하고 결과를 인쇄하십시오.