rlwinm
PPC 어셈블리 명령어를 이해하는 데 약간의 문제가 있습니다 (왼쪽 워드 즉시 회전 및 마스크 사용). 32 비트 PPC rlwinm 명령어
rlwinm r3, r3, 0, 28, 28
이미 r3
가 무엇인지이 부분을 반대하는 것을 시도하고있다. 이 경우 r3
은 4 바이트 정수이지만 정확히이 명령 rlwinm
이 무엇을하는지 확신 할 수 없습니다.
그건 그렇고, 이것은 32 비트 기계에 있습니다.
rlwinm
PPC 어셈블리 명령어를 이해하는 데 약간의 문제가 있습니다 (왼쪽 워드 즉시 회전 및 마스크 사용). 32 비트 PPC rlwinm 명령어
rlwinm r3, r3, 0, 28, 28
이미 r3
가 무엇인지이 부분을 반대하는 것을 시도하고있다. 이 경우 r3
은 4 바이트 정수이지만 정확히이 명령 rlwinm
이 무엇을하는지 확신 할 수 없습니다.
그건 그렇고, 이것은 32 비트 기계에 있습니다.
고객님의 이해는 입니다. 바로입니다. 이 명령에 IBM link 당, 당신이보고있는 형태입니다
rlwinm <target=r3>, <source=r3>, <shift=0>, <begin-mask=28>, <end-mask=28>
따라서 실제 변화는 포함되지 않습니다. 그리고 AND
작업에 사용 된 실제 마스크는 begin
및 end
마스크 위치로 구성되며 위치는 명시적인 인수 (a)으로 지정되지 않습니다. 이 경우
가 경우 값 시작 마스크는 미만인 end-mask 값에 1을 더한 경우 시작점과 끝점 사이의 마스크 비트가 1로 설정됩니다. 다른 모든 비트는 0으로 설정됩니다.
따라서 표시되는 명령은 단일 AND
작업보다 복잡합니다.
(A)이 당신이 실제 마스크를 지정할 수있는 형태입니다 (이것은 연속 1의 비트 구성되어 가정)하지만 정말 그냥 문법 슈가 네 -argument 버전이고 어셈블러가 다섯 가지 인수 중 하나가 될 수 있습니다.
명령어 세트 참조를 보았습니까? 첫 번째 0은 시프트이고, 두 개의 '28'피연산자는 마스크의 시작과 끝입니다 (이는 '1'비트 시퀀스이므로 명확하게 '28'값이 아닙니다). – Jester
[PowerPC 명령 세트 참조] (http://www.ds.ewi.tudelft.nl/vakken/in1006/instruction-set/) –