본문 바로가기

기타 언어4

Lua 스크립트 파일 읽기 및 값 읽어 오기 짧은 기간이지만 클라이언트 개발(라이브팀) 인턴을 하면서 lua 스크립트의 편의성에 대해 배웠다. 찾아보니 게임 업계에선 이미 유명하고 자주 사용되는 스크립트 언어라고 한다. 그래서 DirectDraw로 만들었던 갤러그 비슷한 게임에 아주 간단하게라도 적용해보려고 잠깐 공부했다. 다른 용도로도 사용 가능하지만 우선은 enum 값 대신 사용할 자주 바꿀 것 같은 값들을 설정하고 가져오려 한다. 예를 들면 몬스터의 체력이라던가 등장하는 몬스터의 수 등등.. lua에서 이러한 값들을 설정하는 이유는 실제로 현업에선 기획자가 어려움없이 쉽게 값을 변경해가며 테스트를 해볼 수 있는 환경이 완성되기 때문이다. 실제로 큰 프로젝트를 다뤄보니 빌드하는데 매우 오래 걸린다. 툴을 안쓰면 훨씬 오래 걸릴 것 같고 툴을 써.. 2021. 2. 15.
rep stos 명령어 개인적으로 학습하는 내용이라 틀린 내용이 있을 수 있습니다. Visual studio에서 디버깅을 하다가 디스어셈블 뷰를 보면서 함수 호출 과정을 따라가다 보면 항상 rep stos라는 명령어 단계에서 무언가 여러 번 반복되는 과정이 있었다. 그냥 모른 채로 넘어갔는데 알아야 할 것 같아서 정리해본다. [rep] 우선 rep라는 명령어는 반복에 관한 명령어인데 repeat의 준말인 것 같다. 다음은 MSDN에 나와있는 REP 명령어에 대한 설명이다. The instruction can be prefixed by REP to repeat the operation the number of times specified by the ecx register. The rep mov instruction is use.. 2020. 4. 5.
[Python] 기초 ■ 변수의 ID 출력 -> id() 함수 사용 example) a = 100; print(id(a)) # 13800 b = 200; print(id(b)) # 15000 c = 200; print(id(c)) # 15000 d = 100; print(id(d)) # 13800 result) 위 결과와 같이 모든 변수가 고유의 ID(C/C++로 따지면 주소값)를 가지고 있는 것은 아니다. 위 코드에서 a는 100을 가지고 d 또한 100을 가지는데 d는 새로운 ID가 부여된 변수가 아니라 a가 가리키던 객체(100)를 아래와 같이 동일하게 가리키게 된다. 위 그림과 같이 같은 값(객체)을 가리키는 변수는 동일한 ID를 갖는다. ■ 변수의 타입 type() 함수로 변수의 타입 확인 가능 example) a .. 2019. 12. 22.
mov와 lea 명령어 / call by value, call by reference, call by address 쉽게 이해하기 MOV EAX, EBP LEA EDX, EBP mov (move) 명령어는 좌변에 우변(상수 가능)의 값을 복사합니다. lea (load effective address) 명령어는 좌변(레지스터)에 우변의 주소값을 저장합니다. 사용 예시) mov eax, ecx 라는 명령은 ecx 레지스터에 저장된 값을 eax 레지스터에 복사한다는 의미입니다. mov eax, [adr] 라는 명령은 adr 주소가 가리키는 값을 eax 레지스터에 저장한다는 의미입니다. mov eax, dword ptr [num] 라는 명령은 num의 주소가 가리키는 4바이트(dword) 값이 eax에 저장된다는 의미입니다. mov dword ptr [num], 12345 지역변수 num에 12345라는 상수 값을 복사(저장)합니다. mo.. 2019. 12. 5.