mips 어셈블리에서 어떻게 레지스터 (바이트 - 나는 lb 명령을 사용했습니다)의 내용을 ASCII 테이블을 기반으로 한 문자와 비교할 수 있습니까? beq $ t0,45, L1을 사용하는 것이 옳은가? 45 문자의 십진수레지스터와 아스키 문자 비교
답변
내가 생각하는 한 가지는 데이터 유형의 개념을 잊어 버리는 것이다. 컴퓨터가 그렇게 똑똑하지 않기 때문입니다. 음, 물론 당신 수 없습니다 -
당신은 당신이 진수 값 45 $ T0를 비교할 수 있는지 여부를 묻는 것입니다. MIPS 프로세서는 십진수 값 45에 대해 아무것도 모릅니다. 단지 1과 0의 두 자릿수 만 알고 있습니다. 다행히도 십진수 값 45는 1과 0의 묶음으로 표현할 수 있습니다 - 0010 1101
정확히 8 비트 .
그러면 $ t0을 ASCII 문자 '-'와 비교할 수 있는지 궁금 할 것입니다. MIPS 프로세서는 십진수보다 ASCII 문자에 대해 더 이상 알지 못합니다. 다행히도 ASCII standard은 "this is a dash"라고 말하지 않습니다. 문자 '-'는 비트 패턴 0010 1101
에 매핑됩니다.이 패턴은 십진수 45로 알고 있습니다. 또는 16 진수 0x2D -하지만 프로세서는 16 진수에 대해서도 알지 못합니다.
여기가 정말 운이 좋았습니다. 당신은 MIPS 코드를 1과 0으로 쓸 필요가 없습니다. 적어도 숙제를 마치면 한번도 할 수는 없지만 그렇게 할 필요는 없습니다. :) 어떤 스마트 한 친구들은 여러분이 입력 한 문자를 (예 : beq $t0, 45, L1
) 하나 또는 그 이상의 32 진수로 바꾸는 어셈블러라는 것을 썼습니다. 친구들이 정말로 똑똑하다면, 아마도 어셈블러가 45가 0x2D와 같은 것을 알고 있는지, 그리고 아스키 문자 '-'와 같은 것임을 알았을 것입니다.
(그러나 @Konrad가 먼저 MARS 같은 어셈블러를 통해 코드를 실행하지 말았어야했다처럼 그래 ...?)
편집 : @Patrik가 언급 한 바와 같이, beq
소요 두 레지스터하지 레지스터와 즉각적인. 물론 beq $t0, 45, L1
으로 구문 오류가 발생합니다. 먼저 값 45를 다른 레지스터 (아마도 $ t8)에로드 한 다음 beq $t0, $t8, L1
을로드해야합니다.
먼저 대답 해줘서 고마워. 둘째, 우리가 사용하는 어셈블러는 $ t0,45, L1, $ t0, '-', L1, $ t0,00101101, L1 – user3185493
@ user3185493 명령 구문 오류를 찾습니다. @ Patrik의 대답을보십시오. 나는 beq가 레지스터와 즉치가 아닌 두 개의 * register * 피연산자를 취해야한다는 것을 기억해야했다. 따라서 레지스터에 체크 값을로드 한 다음 비교해야합니다. – RobertB
원리는 정확하지만 구문 오류가있는 경우, 당신은 레지스터에 문자 코드를로드하고 레지스터 비교할 수 있습니다 어떤 점잖은 어셈블러는`BEQ의 $ t0의를 작성할 수 것
li $t1, 45
beq $t0, $t1, L1
- 1. 아스키 문자 인코딩 문제
- 2. C 아스키 문자 목록
- 3. 아스키 문자 128 ~ 158
- 4. 아스키 문자 코드 표시 방법
- 5. 아스키 문자 만있는 문자열 PHP
- 6. 아스키 문자 만 허용 VBA
- 7. 아스키 문자 코드를 JS의 텍스트와 아스키 코드가 들어있는 문자열로 변환합니다.
- 8. 구문 오류 : 아스키 문자 입력 작업이 없습니다
- 9. 그리스 문자 아스키 in vba exc
- 10. $ _FILES [ 'file'] [ 'tmp_name'] 일부 아스키 문자 제거
- 11. PHP 해당 아스키 코드로 특수 문자 바꾸기
- 12. Ada의 문자 집합과 문자 비교
- 13. 레지스터와 프로 시저를 사용하여 어셈블리에서 문자 입력을 묻습니다.
- 14. AX 레지스터와 0을 비교합니다.
- 15. 레지스터와 개인 버퍼
- 16. C 문자 포인터를 비교
- 17. 문자열의 문자 비교
- 18. PostgreSQL utf8 문자 비교
- 19. 문자 비교 오류
- 20. 두 문자 포인터의 비교
- 21. 자바 문자 비교 오류
- 22. 문자 배열의 주소 비교
- 23. 포인터와 문자 배열 (비교)
- 24. 비교 선도 문자 무시
- 25. 알파벳순으로 문자 arawylists를 비교
- 26. JSTL과 탭 문자 비교
- 27. 문자 배열 비교 방법
- 28. C - 두 문자 비교
- 29. 목록에서 끝 문자 비교
- 30. 문자 배열 비교
을, '-', L1' – Michael
''을 사용할 수없는 경우를 대비하여? 나는 우리가 어떻게 해시계 번호 – user3185493
과 비교할 수 있는지를 의미한다. 그리고 ascii 테이블에서 그것을 찾는다. – Michael