인프런 커뮤니티 질문&답변

Seokjin Kim님의 프로필 이미지
Seokjin Kim

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

배열과 주소

어셈블리 배열 주소에 값 더할 때

해결된 질문

작성

·

218

0

강의에서

PRINT_HEX 1, [a+ecx]

여기서 a에 더해줄 수 있는 값이 32bit 이상의 단위 값,

ecx, rcx 만 되고 그 밑의 포맷인 ax,ah,al은 오류가 나면서 안되더군요.

이유가 궁금합니다.

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

PRINT_HEX 는 정식 어셈블리 문법이 아니라
그냥 편의상 툴에서 제공해주는 매크로입니다.
따라서 그냥 무시하고 넘어가셔도 됩니다.

Seokjin Kim님의 프로필 이미지
Seokjin Kim
질문자

그럼 PRINT 매크로를 사용하지 않고 직접 어셈블리로 구현할 경우에는 저 레지스터를 써도 정상 작동 되는건가요?

주소값에 더할 때, 더할 인자가 꼭 **이상이어야한다 같은 조건이 있는 건가 싶어서요

Seokjin Kim님의 프로필 이미지
Seokjin Kim
질문자

더불어 레지스터값이 아닌, .data에서 정의한 메모리 값으로 더해줘도 되는지 궁금합니다

Rookiss님의 프로필 이미지
Rookiss
지식공유자

보통 컴파일러에 의해 만들어진 코드는 eax나 rax로 하겠지만,
주소를 다룰 때 al 등 1바이트 레지스터로 하면 안 된다는 법은 없을겁니다.

Seokjin Kim님의 프로필 이미지
Seokjin Kim

작성한 질문수

질문하기