lmw 또는 lm(Load Multiple Word) 명령어
용도
지정된 위치의 연속된 단어를 둘 이상의 범용 레지스터에 로드합니다.
구문
| 비트 | 값 |
|---|---|
| 0 - 5 | 46 |
| 6 - 10 | RT |
| 11 - 15 | RA |
| 16 - 31 | D |
설명
Lmw 및 lm 명령은 계산된 유효 주소(EA)에서 시작하여 GPR RT에서 시작하여 모든 GPR을 채우는 여러 범용 레지스터(GPR)에 N개의 연속된 단어를 로드합니다(GPR 31까지). N은 연속 레지스터에 배치되는 총 연속 단어 수인 32-RT 필드와 같습니다.
GPR RA가 0이 아닌 경우 EA는 GPR RA와 D의 내용을 합한 값이며, GPR RA가 0이면 EA는 D입니다.
PowerPC® 명령어 lmw를 사용할 때는 다음 사항을 고려하세요:
- GPR RA 또는 GPR RB가 로드할 레지스터 범위에 있거나 RT = RA = 0인 경우, 결과는 경계가 정의되지 않습니다.
- EA는 4의 배수여야 합니다. 그렇지 않은 경우 시스템 정렬 오류 처리기가 호출되거나 결과가 정의되지 않을 수 있습니다.
POWER® 제품군 명령어 lm의 경우, GPR RA가 0이 아니고 GPR RA가 로드할 범위에 있는 경우 GPR RA에 기록되지 않습니다. 정상적으로 RA에 기록되었을 데이터는 삭제되고 작업은 정상적으로 계속됩니다.
Lmw 및 lm 명령어는 하나의 구문을 가지며 고정 소수점 예외 레지스터 또는 조건 레지스터 필드 0에 영향을 주지 않습니다.
참고: 데이터 저장소 인터럽트로 인해 lmw 및 lm 명령어가 중단될 수 있습니다. 이러한 인터럽트가 발생하면 인스트럭션을 처음부터 다시 시작해야 합니다.
매개변수
| 항목 | 설명 |
|---|---|
| RT | 작동을 위한 시작 대상 범용 레지스터를 지정합니다. |
| d | EA 계산을 위해 32비트로 확장된 16비트 부호 2의 보수 정수 부호를 지정합니다 |
| RA | EA 계산을 위한 소스 범용 레지스터를 지정합니다. |
예
다음 코드는 GPR 29 및 GPR 31에 데이터를 로드합니다:
.csect data[rw]
.long 0x8971
.long -1
.long 0x7ffe c100
# Assume GPR 30 contains the address of csect data[rw].
.csect text[pr]
lmw 29,0(30)
# GPR 29 now contains 0x0000 8971.
# GPR 30 now contains the address of csect data[rw].
# GPR 31 now contains 0x7ffe c100.