나는 정수가 저장되어있는 레지스터 $ t0를가집니다. 예를 들어 정수 1100을 저장한다고 가정 해 봅시다. 이 값의 이진 표현은 0000010001001100입니다. 물론 32 비트 레지스터의 경우 32 비트까지 확장 될 수 있지만 쉽게 수행 할 수 있습니다. 레지스터 값의 각 비트를 반복하고 1 또는 0인지 검사하는 어셈블리에서 루프를 구현하려고합니다.
나는 프로젝트를 끝내려고 노력하면서 모든 것이 나의 기대에 부합하는 동안이 두 개념에 대한 나의 이해를 확인하고 싶다. 좁은 의미로 테스트 케이스를 실패하고 임의의 값을 도입한다. ... 0xAbsoluteAddressOfBranchTargetInstruction [해당되는 경우 $의 t] BRANCHNAME $ S, 편집 : 명확한 설명 : 기본적으로,이
모든 MIPS 명령어는 4 바이트 길이라는 것을 알고 있습니다. PC에 다음 명령어의 주소가 포함되어 있기 때문에 PC의 처음 2 비트는 항상 0이됩니다. PC에이 2 비트를 포함하면 PC의 범위가 줄어들 것입니다. 그렇다면 왜이 방법으로 PC를 구현합니까? 저는 컴퓨터 아키텍처에 익숙하지 않으므로 개념을 이해하는 데있어 어떤 차이가 있음을 지적하십시오.
나는 다음과 같은 명령 (윈도우 64)와 C 소스 파일을 컴파일하려고 오전 : E:/Android/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/bin/clang -target mipsel-none-linux-android -gcc-toolchain E:/Android/android-sdk/
사용자 입력이 키보드에서 (새 줄)을 입력 할 때 텍스트 문서의 끝까지 파일을 열고 읽은 한 줄을 인쇄하는 MIPS 코드를 작성하려고합니다. 그러나 어떻게 든 프로그램은 사용자 입력을 건너 뛰고 입력을 기다리지 않습니다. 코드 : .data
buffer: .space 4
fin: .asciiz "input.txt" # filename for input
MIPS 프로세서 및 Linux 2.6을 기반으로하는 보드에 매우 이상한 문제가 있습니다. 들어오는 모든 이더넷 패킷에 대해 NIC 인터럽트가 있습니다. 10.000 패킷을 보내면 10.000 NIC 인터럽트가 발생했음을 알 수 있습니다. 내가 열고 파일 시스템에서 (제로 또는 일반 충전) 파일을 닫은 후 START SYSTEM
SEND 10k PACK
MIPS 아키텍처를 배우려고하고 R 타입 명령어 세트에 이 붙어 있습니다. MIPS에는 32 개의 레지스터가 있다는 것을 알고 있습니다. 각각은 오래된 32 비트 데이터를 가질 수 있습니다. 그러나 R 유형에서 rs rt 및 rd 필드는 5 비트 길이입니다. 그래서 내가 뭔가를하고 싶다면 $ t0, 4000, 5000을 더하고 싶습니까? 그 명령어가 R-T
MIPS 서명 및 부호없는 추가에 대한 오버플로 예외에 대한 몇 가지 게시물을 읽었지만 아직 명확하지 않습니다. 1) 오버플로 예외는 무엇을 의미하며 언제 발생합니까? 2) 부호없는 덧셈에 대해 오버플로가 무시되는시기는 언제입니까? 나는 두 숫자가 있다고 가정 서명 4 비트와 함께 시작하고 Signed negative addition
1010 -
나는 MIPS 어셈블리 코드 의이 조각 dechiper하려고합니다. 그러나, 나는 여전히 % hi (A)/% lo (A)를 가진 add/load 연산이 무엇을하는지 확신 할 수 없다. 나는 누군가가 댓글을 통해보고 이것 좀 도와 수 있다면 # 28($fp) is zero
lw $2,28($fp) # $2 = 0
sll $3,$2,1 # $3 =