🗿Assembly/코드비교및 분석

문자열 길이측정 함수 [ vs2019 inline assembly ]

Mawile 2021. 5. 14.
728x90

 

개발환경 >> Visual Studio

언어 >> C++14(+)

운영체제 >> Windows10

 


안녕하세요~!!

이번에는 문자열의 길이를 젤수있는 함수를 인라인어셈블리를 이용해서 만들도록 하겠습니다..!

namespace dp {
	int chrlen(const char* _str) {
		_asm {
			xor eax, eax 			; eax를 0으로 초기화
			mov esi, dword ptr[_str]	; esi레지스터에 _str주소값입력
			ReZe:				; ReZe 점프케이블
			cmp byte ptr[esi + eax], 0	; 만약 _str[eax]값이 '\0'일경우
			je Exit				; Exit 점프케이블로 이동

			inc eax				; eax레지스터값 1증가
			jmp ReZe			; ReZe 점프케이블로 이동
			Exit:				; Exit 점프케이블
		}
	}
}

//사용법 -> int i = dp::chrlen("hello world");

 

궁금한 부분있으면 물어보세요..!!

728x90

'🗿Assembly > 코드비교및 분석' 카테고리의 다른 글

for루프문 [ vs2019 inline assembly ]  (0) 2021.05.12

댓글