레지스터에서 NASM의 비트 시프트에 대해 어떻게 생각하십니까? 설명서를 읽었을 때만이 연산자를 언급 한 것 같습니다. >>, < <. NASM을 사용하려고하면 스칼라 값으로 작업하는 시프트 연산자에 대해 불평합니다. 스칼라 값이 무엇인지 설명하고 사용 방법의 예를 들려 주시겠습니까 >> 및 < <. 또한 shr 또는 shl 연산자가 있다고 생각했습니다. 그들이 존재한다면 어떻게 사용하는지 예를들 수 있습니까? 시간 내 주셔서 감사합니다.NASM 시프트 연산자
4
A
답변
4
<<
및 >>
은 정수 상수에만 사용됩니다. 이것은 "스칼라 가치"가 의미하는 것입니다. shl
또는 shr
명령어를 사용하여 레지스터에서 값을 이동할 수 있습니다. 레지스터의 값을 각각 왼쪽 또는 오른쪽으로 지정된 비트 수만큼 이동시키는 데 사용됩니다.
이 예제의 첫 번째 줄은 ax
의 값을 4로 왼쪽으로 이동하며 16을 곱한 것과 같습니다. 두 번째 줄은 bx
의 값을 2로 나누고 정수 나누기와 동일합니다. 4.
shl ax, 4
shr bx, 2
또한 상수 대신에, 이동하는 비트 수를 나타냅니다 cl
를 사용할 수 있습니다. 이에 대한 자세한 내용은 this page을 참조하십시오.
4
돼지 - 백업 ughoavgfhw의 대답에 ... <<
및 >>
이, 상수에 직접 사용 사용하기 :
MOV EAX, 1 << 2 ; Puts 4 into EAX
MOV EAX, 2 << 2 ; Puts 8 into EAX
MOV EAX, 8 >> 1 ; Puts 4 into EAX
관련 문제
- 1. Nasm 어셈블리 관계 연산자
- 2. 자바 시프트 연산자
- 3. PL/SQL의 시프트 연산자
- 4. C에서 오른쪽 시프트 연산자?
- 5. Verilog 시프트 연산자 기본 오류
- 6. Ruby 부호없는 오른쪽 시프트 연산자
- 7. ASP에서 비트 연산자 왼쪽 시프트 및 오른쪽 시프트
- 8. 아무 것도 없을 때 비트 시프트 ... 비트 시프트 연산자
- 9. 시프트 연산자 java를 사용하여 문자열에서 중복을 검색했습니다.
- 10. 비트 시프트/단항 연산자 등은 언제 사용해야합니까?
- 11. Java 기괴한 프로그램 출력의 시프트 연산자
- 12. x86 어셈블리 오른쪽 시프트 연산자 SHR의 부작용?
- 13. 왜 자바 스크립트에는 두 개의 오른쪽 시프트 연산자와 하나의 왼쪽 시프트 연산자 만 있습니까?
- 14. 문자열을 왼쪽으로 시프트
- 15. 표현식 호출과의 시프트/줄이기
- 16. 예기치 않은 C/C++ 비트 시프트 연산자 결과
- 17. Java에서 시프트 연산 구현
- 18. 시프트 문자
- 19. 부호있는 시프트
- 20. 포인터 및 왼쪽 시프트 연산자에 대한 참조
- 21. NASM 인수의 길이
- 22. NASM 어셈블러 디버거
- 23. 어셈블러의 한계는 무엇입니까? (NASM)
- 24. 함수를 사용하는 Segfaults nasm
- 25. NASM - 정수에서 문자열
- 26. NASM/GCC 문제는
- 27. 조립/NASM 및 LD
- 28. NASM 세그멘테이션 결함 문제
- 29. linux nasm assembly dwtoa
- 30. NASM jmp wonkiness