pop 아래에 바로 je문이 있는걸로 봐서 cmp나 test같은 역할을 하는건가요? 그냥 스택에서 뽑는건줄만 알았는데
어셈블리에서 pop이 비교문인가요?
익명(121.143)
2015-07-19 16:13
추천 0
댓글 7
다른 게시글
-
갈길 잃은 어린양에게 조언좀 주세요 [1]조언좀형들(118.43) | 15.07.19추천 0
-
xml json 이런거다 땔깜용 아님? [1]익명(175.223) | 15.07.19추천 0
-
어셈에서 가끔 보면 cmp eax,eax 이딴 바보코드는 왜있는건가요? [3]익명(121.143) | 15.07.19추천 0
-
나노컴퓨터가 양자컴퓨터보다 좋지익명(112.168) | 15.07.19추천 0
-
나노에대해 궁금한사람있냐? [5]익명(112.168) | 15.07.19추천 0
-
파이썬 해킹 프로그래밍 책 난이도 어떤가요 [4]dd(121.143) | 15.07.19추천 0
-
텔넷으로 가상단말기 조작 [9]q2(223.131) | 15.07.19추천 0
-
클로져 [1]sloth_(121.190) | 15.07.19추천 0
-
한국에는 이번 국정원사건 해커급 능력자 없음?dd(182.213) | 15.07.19추천 0
-
오랫동안 전문 커뮤니티 활동만 가끔하다가 갤질을 하니 [8]programmer(successor) | 15.07.19추천 4
어셈블리 명령어는 비슷해 보여도 사용처에 따라 역할이 전혀 달라. (JZ, JE 같은 경우는 예외지만)
단순히 JZ, JE 하기 전에 pop 을 했다면 플래그 레지스터를 바꾸려는 의도가 아니라 브랜치 해저드로 파이프라인이 깨질걸 고려해서 상관없는 계산을 미리 삽입했을 수 있지, 연산의 복원일 수도 있고. 일부 코드로 룰을 말해줄 순 없다.
아래 질문의 경우에도 EAX, EAX 연산을 하는건 보통 TEST 지. CMP 로 같은 레지스터를 하는 경우는 극히 드물다. 뭐 ECX, ECX 정도?
그것도 뒤에 REPE 같은 명령어들이 따라나올때 확인사살 하기 위해 쓰는 용도고.
요약하면, 이 명령어는 왜 일케 써요? 해봐야 전후 사정을 모르면 정확한 답은 줄 수 없음.
pop한 값이 0인가 비교했나보죠ㅋㅋ
POPF 시리즈들 아니면 플래그 레지스터는 안건든다.