제가 잘 이해 했는지 확인해주셨으면 합니다.
229
작성한 질문수 21
r0= 0xffffffff
r0 = 1111 1111 1111 1111 1111 1111 1111 1111
r1 = bitnum(2); // bit를 지울 위치 지정
지우는 방법 :
r2 = 0000 0000 0000 0000 0000 0000 0000 0001
lsl r2, r1
r2 = 0000 0000 0000 0000 0000 0000 0000 0100
bic r0,r2
r0 = 1111 1111 1111 1111 1111 1111 1111 1011
r0 = 0xfffffffb
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
만약 잘 이해한게 맞다면
bic 명령어는 r0 값에서 r2를 뺄셈한 것과 동일하다고 할 수 있나요 ??
답변 1
0
안녕하세요. 박종호님!
적어주신 내용을 보면 SINGLE 비트를 지우는 방법으로 맞습니다
저는 멀티 비트를 지우는 방법을 보여드릴게요
연산하기 전의 모습
r0 = 1111 1111 1111 1111 1111 1111 1111 1111 (0xffffffff)
r2 = 0000 0000 0000 0000 0000 1111 0000 0000 (0x00000f00)
지우는 과정 설명 :
r0 = 1111 1111 1111 1111 1111 1111 1111 1111
r2 = ~r2
r2 = 1111 1111 1111 1111 1111 0000 1111 1111
r0 = r0 & r2
r0 = 1111 1111 1111 1111 1111 0000 1111 1111
r0 = 0xfffff0ff
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
만약 잘 이해한게 맞다면
bic 명령어는 r0 값에서 r2를 뺄셈한 것과 동일하다고 할 수 있나요 ??
답변: 뺄셈 연산하고는 다릅니다. 비트 연산은 표현된 그대로 이해하셔야 합니다. r0=r0 & ~r2
이것은 비트 클리어 혹은 마스킹(MASKING) 라고 부르는 동작이고요. 원하는 비트(8,9,10,11번)을 지우기(ZERO CLEAR) 위해 코딩한 것이죠.
stm32cubeide 관련 문의
0
83
2
DMA 관련한 강의도 제작해주실 수 있으신가요 ?
0
116
1
그림들도 해석 할 수 있어야 하나요?
1
113
2
no-stlink
1
101
2
4개의 CPU 사이클이 필요한 이유
1
109
2
MAC으로 진행 질문드려요..
1
100
2
학습 진행 시, 사용하는 Board에 대한 문의 드립니다!
0
167
2
push pop 질문
1
208
2
STM32Fx Cortex ARM 프로그래밍 저자:홍봉조, 출판사:지식과 감성
0
250
1
CORTEX_02_ASSEMBLY 빌드시 에러
1
276
1
외부 ST Link 연결 이용한 SWD 방법
0
359
1
파이프라인과 명령어
1
336
1
명령어 fetch
0
242
1
lr 레지스터 LSB 값
1
269
1
Disassembly 창 문제
0
357
1
s702 강좌에서 사용한 technical reference manual 문서
1
337
1
s702에 원자적 Access 를 위한 BSRR 코드작성 부분에 대해서
1
278
1
s202 LED 점등 예제 실행시 에러
2
357
1
STM32F429I-DISC 보드의 펌웨어
2
398
1
제공되지 않은 강의교재
0
319
1
s524 테일체이닝 강의 질문
0
242
1
부트코드와 부트로더의 차이점
1
1537
1
메모리 맵 질문
0
291
1
xPSR 레지스터 플래그 값 및 기타 질문 드립니다.
1
873
2





