티스토리 뷰
1. 함수의 사용법
헤더파일 추가 : <string.h>
|
2. 어셈블리 구현 및 분석 (도식화)
|
|
[strlen 어셈플리 소스]
AL값이 ‘w’일 때 len 값이 7인 것은 7번째 반복의 의미할 수 있다.
ESI(str) | h | e | l | l | o |
| w | o | r | l | d | ! | \0 |
AL | h | e | l | l | o |
| w | o | r | l | d | ! | \0 |
len | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 반복탈출 |
ESI 값에 str 시작주소를 넣고, ESI를 역참조한 값을 레지스터 AL에 넣어준다.
AL와 00(NULL) 을 비교하여 같지 않으면 반복하고 len값과 ESI주소값을 증가시켜준다.
AL값이 00이 될 때 조건 성립하여 EXIT label로 점프하여 반복문을 빠져나가게 된다.
3. 동적 디버깅 분석
|
반복을 빠져 나오는 경우를 확인
'Programming > 문자열 처리' 카테고리의 다른 글
strchr어셈블리 구현 & 분석 (0) | 2016.11.10 |
---|---|
strstr 어셈블리 구현 & 분석 (0) | 2016.11.10 |
strcmp 어셈블리 구현 & 분석 (0) | 2016.11.10 |
strcpy 어셈블리 구현 & 분석 (0) | 2016.11.10 |
strcat 어셈블리 구현 & 분석 (0) | 2016.11.10 |
Comments