2012-04-26 7 views
1
.text 
emitchar: 

lui $t0,0xffff 
polling: 
lw $t1,8($t0) 
andi $t1,$t1,0x0001 
beq $t1,$zero,polling 
sw $a0,0xc($t0)  

.data 

나는이 방법을 알려 주었지만 디스플레이와 키보드로 시뮬레이터를 실행할 때 여전히 화면에 출력되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?MIPS 어셈블리에서 화면에 인쇄하는 방법

+0

일반적으로 MARS 나 MIPS에 대해서는 모르지만 (1) 메모리 매핑 I/O는 2008 년 MARS 버전 3.5에 도입 된 것 같습니다. 정말로 오래된 버전 일 가능성이 있습니까? (2) 실제로 'emittar'루틴을 호출하고, '$ a0'에 무엇이 있는지를 결정 했습니까? (3) 'emittar'의 끝? 돌아 오거나 멈추거나 끝나거나 그런 종류의 일을해서는 안됩니까? –

+0

emitchar는 내 프로그램 전체에서 호출 될 예정이며 시뮬레이터의 표시 부분에 문자를 인쇄한다고 가정합니다. $ a0는 문자를 보유해야합니다. – user977154

+0

오른쪽. 그래서, 당신이 그것을 테스트 할 때 당신은 어떻게 그것을 부르며, 마지막에'jr $ ra' 또는 어떤 것이 있으면 안되는가요? 내 과제물에 –

답변

1

코드를 시작한 후 키보드 창에서 "MIPS에 연결"을 클릭 했습니까? 도움말 버튼에서 :

중요 사항 : 송신기 컨트롤러 준비 비트는 도구의 'MIPS에 연결'버튼 (독립형 시스템에서 '어셈블 및 실행')을 클릭 한 경우에만 초기 값 1로 설정됩니다 버전) 또는 도구의 재설정 버튼! MIPS 프로그램을 실행하고 MARS에서 재설정하면 컨트롤러의 준비 비트가 0으로 지워집니다! 위에 주어진 MMIO 주소에 저장된 값을 직접 관찰 할 수 있도록 MMIO 주소 범위를 표시하도록 데이터 세그먼트 창을 구성하십시오.

+0

무슨 뜻인지 확실하지 않습니다. 어떻게 데이터 세그먼트 창을 구성 할 수 있습니까? – user977154

+0

데이터 세그먼트 창 하단에서 메모리 범위를 MMIO로 변경하여 0xFFFF0000 메모리 범위의 내용을 볼 수 있습니다. 하지만 이것은 선택 사항입니다. 핵심은 키보드 창에서 'MIPS에 연결'을 클릭해야한다는 것입니다. 이것은 나를 위해 코드를 작동합니다. –

+0

오, 멋지다. 예를 들어 인쇄 할 편지의 아스키 값이 있다는 것을 알았다. 디스플레이 시뮬레이터에 인쇄되지 않는 이유는 무엇입니까? – user977154

관련 문제