이 프로그램이 내가 무엇을 시도했다입니다 후 2비트 조작 MIPS 조립
6. 비트 사이에서 그 비트를 대체, 사용자 입력 키를 취 해당 키에서 오른쪽 5 개 비트를 추출합니다.
lw $s1, 0($s0) # extracts the first word in the array
beq $s1, $zero, done # at the end of the array is a zero => 0
move $t1, $s2 #s2 has the input key
move $t0, $s1 # put the word in a temporary register
andi $t2, $t1, 0x0000001f # use the input mask to return the rightmost 5 bits
sll $t3, $t2, 2 # move the bits over to align with bits 2-6
andi $t0, $t3, 0xffffff83
그래서 내 사고 안디 $의 T2, $의 t1,0x0000001f 함께 5 개 비트를 추출하여, 입력 키를 취할 된 다음 제
비트로 2 추출한 5 개 비트를 정렬 논리 2 비트 왼쪽 시프트이것이 내가 갇혀있는 곳입니다. 사용자 입력 키에서 가져온 비트를 어떻게 바꾸고 2에서 6까지의 비트 위치에 넣을 수 있습니까? 두 번째 andi에 대한 입력 마스크가 맞다고 생각하지만 적절한 레지스터를 사용하고 있다고 생각하지 않습니다.
편집 : 답장을 보내 주셔서 감사합니다. 제공된 제안으로 해결책을 찾아 냈습니다. 비슷한 문제가있는 사람 :
하단의 andi가 제거되었습니다. 완전한 답을 제공하지 않으려면 데이터 단어에서 대체해야하는 비트를 입력 마스크로 수정해야합니다. 이것은 다른 andi 명령을 사용하여 수행 할 수 있습니다. 몇 가지 단계가 더 있지만 이것은 적어도 미래를 향한 올바른 방향으로 누군가를 가리켜 야합니다.
마지막 줄에서 분명히 입력을 마스크하고 싶으므로'$ t3'는 거기에 아무런 사업도하지 않습니다. 일단 당신이 그것을 고치면, 그것들을 단지 "또는"함께 고정시킵니다. 추가도 가능합니다. – Jester
"인터넷에서 숙제를 빼앗 았기 때문에 잡히지 않으려 고합니다"이외의 질문을 삭제하려는 정당한 이유가있는 경우 "문의하기"링크를 통해 관리자에게 문의하십시오. 그들은 당신을 도울지도 모릅니다. 여기서 "질문을 삭제 편집"하는 것은 허용되지 않습니다. –