작성한 질문수
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
배열과 주소
해결된 질문
작성
·
218
0
강의에서
PRINT_HEX 1, [a+ecx]
여기서 a에 더해줄 수 있는 값이 32bit 이상의 단위 값,
ecx, rcx 만 되고 그 밑의 포맷인 ax,ah,al은 오류가 나면서 안되더군요.
이유가 궁금합니다.
답변 1
PRINT_HEX 는 정식 어셈블리 문법이 아니라그냥 편의상 툴에서 제공해주는 매크로입니다.따라서 그냥 무시하고 넘어가셔도 됩니다.
그럼 PRINT 매크로를 사용하지 않고 직접 어셈블리로 구현할 경우에는 저 레지스터를 써도 정상 작동 되는건가요?
주소값에 더할 때, 더할 인자가 꼭 **이상이어야한다 같은 조건이 있는 건가 싶어서요
더불어 레지스터값이 아닌, .data에서 정의한 메모리 값으로 더해줘도 되는지 궁금합니다
보통 컴파일러에 의해 만들어진 코드는 eax나 rax로 하겠지만,주소를 다룰 때 al 등 1바이트 레지스터로 하면 안 된다는 법은 없을겁니다.
그럼 PRINT 매크로를 사용하지 않고 직접 어셈블리로 구현할 경우에는 저 레지스터를 써도 정상 작동 되는건가요?
주소값에 더할 때, 더할 인자가 꼭 **이상이어야한다 같은 조건이 있는 건가 싶어서요