반응형
MIPS 어셈블리 언어의 "move"와 "li"의 차이
C 코드를 MIPS 어셈블리 언어로 변환하는 연습을 하고 있었는데, 사용법을 이해하는 데 어려움을 겪고 있습니다.move
그리고.li
가변적인 임무 수행 중입니다.
예를 들어, MIPS에서 다음 C 라인을 구현하는 경우:
int x = 0;
제가 정확하게 이해했다면(그러나 이는 매우 의심스럽습니다), MIPS 어셈블러에서 다음 두 가지가 모두 작동하는 것처럼 보입니다.
move $s0, $zero
li $s0, $zero
내가 틀렸나요?이 두 줄의 차이점은 무엇입니까?
그move
명령어는 한 레지스터에서 다른 레지스터로 값을 복사합니다. 그li
명령어는 해당 레지스터에 특정 숫자 값을 로드합니다.
특정한 0의 경우 상수 0 또는 영 레지스터를 사용하여 다음을 얻을 수 있습니다.
move $s0, $zero
li $s0, 0
0 이외의 값을 생성하는 레지스터는 없기 때문에 사용해야 합니다.li
다른 번호를 원한다면 다음과 같이 하십시오.
li $s0, 12345678
그move
명령어는 한 레지스터의 값을 다른 레지스터로 이동합니다.li
레지스터에 즉시 값을 로드합니다.
언급URL : https://stackoverflow.com/questions/19827522/difference-between-move-and-li-in-mips-assembly-language
반응형
'programing' 카테고리의 다른 글
Element ID에 포커스가 있는지 확인하려면 어떻게 해야 합니까? (0) | 2023.10.07 |
---|---|
도커 이미지 필터 사용 방법 (0) | 2023.10.07 |
mysql 클라이언트에서 vikey 바인딩을 작동시키는 방법은 무엇입니까? (0) | 2023.10.07 |
부울로 요소 숨기기/표시 (0) | 2023.10.07 |
처리되지 않은 Sequelize 연결 오류: SELF_SIGNED_CERT_IN_CHANE (0) | 2023.10.07 |