inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

ARM Cortex-M 프로세서 프로그래밍

teq, tst 명령어 에서의 Z값

해결된 질문

436

SeongJin

작성한 질문수 6

0

안녕하세요.

S324에서 질문 사항이 하나 있습니다!

teq 명령어에서 true 이면 Z=1이고,

tst 명령어에서는 true이면 Z=0이 된다고 말씀하셨는데,

이건 각 명령어의 규칙인 것인가요?

 

이전에는 두 인자를 비교할 때, 값이 true이면 Z = 1이 된다고 하셨던 것 같아서요.

무언가 제가 잘못 이해하고 있는 것 같기도 한데,

이 부분이 헷갈려서 질문 드립니다!

임베디드 arm-architecture cortex

답변 1

1

홍영기

안녕하세요. SeongJin Hong님!

teq와 tst의 연산 결과는 CORTEX 프로세서 내의 상태 Z (Zero) 플래그에 영향을 미칩니다.

teq 이 명령어는 두 피연산자를 XOR 연산한 결과로 Z 플래그를 설정합니다. XOR 연산은 두 피연산자가 동일하면 결과는 0이 됩니다. 따라서, teq는 두 피연산자가 같으면 Z 플래그를 1로 설정합니다.

또 다른 명령어 tst 이 명령어는 두 피연산자를 AND 연산한 결과로 Z 플래그를 설정합니다. AND 연산은 두 피연산자 중 하나라도 0이면 결과는 0이 됩니다. 따라서, tst는 두 피연산자의 AND 연산 결과가 0이면 Z 플래그를 1로 설정합니다.

결국, teq 명령어에서는 피연산자들이 같으면 Z=1이 되고, tst 명령어에서는 피연산자들의 AND 연산 결과가 0이면 Z=1이 됩니다.

그러나, 일반적으로 우리는 tst 명령어를 사용할 때 AND 연산 결과가 0이 아닌 경우를 '참'이라고 해석하기 때문에, 이 경우에는 Z=0이 됩니다.

0

SeongJin

"tst 명령어를 사용할 때 AND 연산 결과가 0이 아닌 경우를 '참'이라고 해석"하는 부분 때문에 제가 헷갈린 것이었군요!

쉽게 설명해주셔서 감사합니다!

stm32cubeide 관련 문의

0

46

2

DMA 관련한 강의도 제작해주실 수 있으신가요 ?

0

95

1

그림들도 해석 할 수 있어야 하나요?

1

100

2

no-stlink

1

80

2

4개의 CPU 사이클이 필요한 이유

1

100

2

MAC으로 진행 질문드려요..

1

95

2

학습 진행 시, 사용하는 Board에 대한 문의 드립니다!

0

159

2

push pop 질문

1

190

2

STM32Fx Cortex ARM 프로그래밍 저자:홍봉조, 출판사:지식과 감성

0

242

1

CORTEX_02_ASSEMBLY 빌드시 에러

1

270

1

외부 ST Link 연결 이용한 SWD 방법

0

339

1

파이프라인과 명령어

1

327

1

명령어 fetch

0

238

1

lr 레지스터 LSB 값

1

258

1

Disassembly 창 문제

0

349

1

s702 강좌에서 사용한 technical reference manual 문서

1

325

1

s702에 원자적 Access 를 위한 BSRR 코드작성 부분에 대해서

1

271

1

s202 LED 점등 예제 실행시 에러

2

351

1

STM32F429I-DISC 보드의 펌웨어

2

394

1

제공되지 않은 강의교재

0

319

1

s524 테일체이닝 강의 질문

0

234

1

부트코드와 부트로더의 차이점

1

1525

1

메모리 맵 질문

0

280

1

xPSR 레지스터 플래그 값 및 기타 질문 드립니다.

1

862

2