본문 바로가기

[어셈블리어] mov와 xchg mov일 때 동안은 EFL에 변화가 없고 add연산을 수행한 후 EFL에 아래에 보는 것 과 같이 EFL이 변한다. add연산 전 246 EFL(246) 0 0 1 0 0 1 0 0 0 1 1 0 EFL(flag register)을 확인하면 example의 표처럼 EFL에 OF SF ZF CF플래그의 값이 0인 것을 알 수 있다. EFL(206) 0 0 1 0 0 0 0 0 0 1 1 0 - 책 오류 CF = 1 - EFL(283) 0 0 1 0 1 0 0 0 0 0 1 1 양수의 경우인 7을 넘어섰기 때문에 OF발생 EFL(a96) 1 0 1 0 1 0 0 1 0 1 1 0 EFL(216) 0 0 1 0 0 0 0 1 0 1 1 0 EFL(202) 0 0 1 0 0 0 0 0 0 0 1 0 EFL(24.. 더보기
[어셈블리어] 연산에 따른 flags register의 값 mov일 때 동안은 EFL에 변화가 없고 add연산을 수행한 후 EFL에 아래에 보는 것 과 같이 EFL이 변한다. add연산 전 246 EFL(246) 0 0 1 0 0 1 0 0 0 1 1 0 EFL(flag register)을 확인하면 example의 표처럼 EFL에 OF SF ZF CF플래그의 값이 0인 것을 알 수 있다. EFL(206) 0 0 1 0 0 0 0 0 0 1 1 0 - 책 오류 CF = 1 - EFL(283) 0 0 1 0 1 0 0 0 0 0 1 1 양수의 경우인 7을 넘어섰기 때문에 OF발생 EFL(a96) 1 0 1 0 1 0 0 1 0 1 1 0 EFL(216) 0 0 1 0 0 0 0 1 0 1 1 0 EFL(202) 0 0 1 0 0 0 0 0 0 0 1 0 EFL(24.. 더보기
어셈블리어 기초3 1. CPU에 대한 이해 2. C에 대한 더 높은 이해 - advenced C C에서 이해할 수 없었던 것을 정확히 알기위해서 (C로도 알 수 없었던 것을) 3. ARM Boot Code Windbg사용 - 윈도우 디버그의 준말 output을 실행해서 EIP(명령어의 주소를 담고있는 레지스터)의 주소가 바뀌고 prompt1이 출력된다. input이 실행되면서 키보드로 데이터를 입력받는다. 1234567890을 입력했는데 &number1의 Memory를 보면 숫자가아닌 아스키코드로 입력된걸 알 수 있음 그래서 40개의 메모리중 1234567890을 제외한 30bit는 00으로 채워져있다. atod 함수(문자형을 정수형으로 바꾸어주는 책저작자가 만든 함수)실행 EAX의 주소가 바뀜 -> 1234567890(.. 더보기