MARS에서 MIPS 어셈블리 프로그램을 테스트 중이며 실행 중에 입력으로 가져갈 파일을 지정하려고합니다 (다음 UNIX 명령으로 stdin을 리디렉션하여 수행 할 수있는 것과 유사). 스핌 -file [파일 이름] MARS에서이 같은 작업을 수행 할 수있는 방법이 있나요 < [INPUT_FILE] 을 .S? 이것은 과제물이며 표준 MIPS 시스템 콜로 제
나는 syscall 기능이있는 SPIMS 또는 MARS와 같은 것을 사용하고 있습니다. 나는 문자열에 읽고있다 (나는 그것을 밖으로 인쇄 할 수 있기 때문에 그것은 작동) 다음과 같이 li $v0, 8
la $a0, string
li $a1, 256
syscall
을하지만, 내가 문자열의 단일 문자를 액세스하는 문제가 있습니다. 내가 첫 번째 문자
화성에 MIPS 프로그램을 작성했습니다. 주소 배열을 반복합니다. 나는이 쓰기 : $의 T4는 주소 내 배열의 기본 주소 포함되어 있으며,이 팔 때마다 루프가 실행으로 이동됩니다 addi $t4, $t4, 8
. 그런 다음 루프가 완료된 후 그 위치에 주소를 저장합니다. 내 질문 : 8을 올바르게 입력 했습니까? 또는 1을 추가해야합니까 (1 바이트 =
MARS 시뮬레이터를 사용하여 MIPS 어셈블리에 프로그램을 작성하고 있습니다. 함수의 호출을 위해 jal을 사용하고, 마지막에 jr $ra을 사용하여 프로그램의 원래 지점으로 돌아갑니다. 내가 혼란스러워하는 점은 메인 프로그램으로 돌아간 후에도 내 함수에서 사용한 $t 레지스터에 여전히 값이 있다는 것입니다. 임시 레지스터를 사용하는 향후 기능이 깨끗한
MIPS에서 la 명령어는 lui 및 ori으로 변환됩니다. 그러나 MARS Simulator는 전혀 그런 것처럼 보이지 않습니다. 나는 다음과 같은 기계 코드 덤프 경우 : .text
la $a0, array
la $a1, array_size
lw $a1, 0($a1)
.data
array: .word 0:10
.text
emitchar:
lui $t0,0xffff
polling:
lw $t1,8($t0)
andi $t1,$t1,0x0001
beq $t1,$zero,polling
sw $a0,0xc($t0)
.data
나는이 방법을 알려 주었지만 디스플레이와 키보드로 시뮬레이터를 실행할 때 여전히 화면에 출력되지 않습니다. 내가 도대체
Ubutnu 11.04에서 어셈블리 숙제를하기 위해 MARS 시뮬레이터를 실행하려고합니다. MARS (jar 파일)을 사용하려면 Java가 설치되어 있어야하고 Java를 설치해야합니다. 는 그 후 나는 java -jar .jar
을 입력하고 그 결과로 내가 가지고 : 내가에 무엇을해야 .JAR 에서 메인 클래스 매니페스트 속성을로드하지 못했습니다 이 파
0에서 99 사이의 임의의 정수를 생성하려고하는데 42 시스템 콜을 사용할 때 값을 저장할 위치를 찾는 데 어려움을 겪고 있습니다. 지금까지 내가 가진 : 생성 된 값이 내가 생각 사용할 수 있습니다 저장 위치 li $a1, 100
li $v0, 42
syscall
잘 모르겠어요. syscall 도움말 페이지에서
MARS MIPS 시뮬레이터를 사용하고 Digital Lab Sim을 사용하고 있습니다. 내 코드의 목적은 Digital Lab Sim에 16 진수로 0에서 15까지의 숫자를 표시하는 것입니다.이 .data
digitos: .word 0x3F,0x6,0x5B,0x4F,0x66,0x6D,0x7D,0x7,0x7F,0x67,0x77,0x7F,0x39,0x3F