저는 MIPS를 처음 사용하고 있으며 함수의 디스 어셈블리를 이해하려고합니다. (EDIT : /lib/ld-uClib.so.0에 동적으로 링크되어 있으며 일반적인 libc 함수를 사용하므로 uClibc 툴체인을 사용하여 C로 작성되었다고 가정하므로 호출 프로 시저와 스택 프레임이 있어야합니다 , 등). 인터넷에 잠시 주위를 검색에도 불구하고 : 4009e0
mysc와 함께 syscalls를 사용하여 배열을 만들고 싶지만 오류가 발생합니다. D : \ mips \ create 배열 행에서 오류 발생 20 : 런타임 예외 (0x00400028) : 요청 (1074003968)이 사용 가능한 힙 저장소를 초과합니다 syscall 9). 내 코드는 다음과 같습니다 .data
question1_msg: .as
MIPS 보조 프로세서 1 조건 플래그 값에 액세스하고자합니다. c.eq.s $f4 $f6
bc1f L_CondFalse
li $t0 0
j L_CondEnd
L_CondFalse : li $t0 1
L_CondEnd :
어떤 아이디어를 예를 c.eq.s $f4 $f6
move $t0 condflag1 #clearly illegal
나는
나는 내 과제를 해결하는 데 어려움을 겪고있다. 여기 는 MIPS 어셈블리 언어 코드의 다음 조각을 고려,이 상태 것입니다 : start: add $t1, $t2, $t3
addi $t1, $t1, 10
add $t4, $t2, $t2
add $t6, $t3, $t3
beq $t1, $t4, q_final
mid
어셈블리에서 nand 비트 연산을 수행하는 방법을 알아 내려했지만 실패했습니다. 본질적으로 입력 A와 B에 대한이 진리표를 생성 할 논리 게이트 시뮬레이터를 작성하려고합니다.
A | B || F
-----------------
lo | lo || hi
lo | hi || hi
hi | lo || hi
레지스터에 저장된 바이트가 a-z 및 A-Z 문자인지 테스트하는 가장 좋은 방법은 무엇입니까? 시도해 보았습니다. blt $t1, 'a', next
blt $t1, 'Z', next
하지만 그게 효과가 없습니다. 어떤 도움이 필요합니까? PS SPIM을 사용하여 코드를 테스트하고 있습니다.
나는 대답을 꽤 오랫동안 찾고 있었고 마침내 나는 누군가가 나를 도울 수 있는지 물어보기로 결정했다.) MIPS의 조건부 점프 명령의 형식으로 beq 명령에 다음을 포함한다. 점프의 "크기"를 나타내는 16 비트 필드 원하는 방향을 얻으려면 현재 PC에 추가해야한다는 것을 알고 있습니다. 의심의 여지가, 내가 어떻게 뒤로 점프를위한 필드를 설정합니까? 2의