[ Assemble ] 어셈블리 입력 매크로함수
·
Archive/Hacking
SASM 환경에서 진행합니다. GET_DEC, GET_HEX으로 10진수,16진수 입력받기 형식은 이러합니다. GET_DEC 입력할 바이트 수, 입력 받을 곳 GET_HEX 입력할 바이트 수, 입력 받을 곳 입력받을 곳은 레지스터가 될 수도 있고, 메모리 주소가 될 수도 있습니다. 위의 예시로는 a 주소에 1바이트만큼 입력을 받겠네요. 입력받고 출력하는 프로그램 방금 배운 GET_DEC 을 이용해서 간단한 프로그램을 짜봅시다. 바로 보이죠? GET_DEC : 10진수 입력 받는 매크로 PRINT_DEC : 10진수 출력하는 매크로 둘다 파라미터로 크기와 대상이 되는 장소를 필요로합니다.
[ Assemble ] 문자열 변수 선언 & 출력
·
Archive/Hacking
우선 SASM을 켜서 새 문서를 만듭니다. 문자열을 담는 변수 선언 data 영역에 선언해보도록 하겠습니다. 형식은 위의 그림과 같습니다. 변수명 크기 문자열, 0x00 여기서 0x00은 문자열의 끝을 의미하는 NULL값입니다. 문자열 변수 출력하기 문자열 변수를 출력하려면 PRINT_STRING 명령어를 이용합니다. 예시를 보시죠. 위에 선언한 변수들을 출력해보도록 하겠습니다. 중간에 NEWLINE은 개행문자 \n 과 같은 의미입니다. 명령어만 알면 간단하죠?
[ Assemble ] 어셈블리어 변수 선언 & 레지스터 데이터
·
Archive/Hacking
어셈블리 프로그램을 작성한다는 것은 CPU가 지원해주는 각종 연산 기능들을 이용해서 레지스터나 메모리에 데이터를 저장한다는 것이다. sasm 을 이용하여 변수를 선언하고, 레지스터에 데이터를 복사해보자. 가장 헷갈렸던 부분이 여기다. eax와 ax에 0x1234를 저장하고, mov ax, eax 를 실행했을 때 에러가 난다. 32비트 짜리를 16비트에 억지로 집어넣으려고 하니까 탈이 난거다. 이 부분을 주의하도록 하자. 어셈블리 변수 선언 어셈블리에서 변수는 메모리의 시작 주소와 사용되는 메모리의 크기를 의미한다. 변수는 다음과 같은 정보를 지닌다. 시작 주소 저장 되어 있는 값 사용하는 데이터의 크기 > 데이터의 크기 지시어 타입 설명 byte 8비트 정수 word 16비트 정수 dword 32비트 정..
[ JAVA ] 자바 프로젝트 CMD 창에서 실행 시키기.
·
Archive/Develop
자바로 테트리스 프로그램을 짜고 있었는데, 갑자기 그냥 CMD 창에서 실행시켜보고 싶어서 javac를 이용해 컴파일 하고 실행 시키려고 했는데 방법이 기억이 안나 구글링하면서 알게된 내용을 포스팅합니당 ㅎㅎ 제 프로젝트 파일은 Tetris 라는 이름을 가지고 있고, 이 안에 application 이라는 패키지가 존재합니다. application 패키지 안에는 Tetris 와 Controller, Form 클래스 파일이 있습니다. 우선 프로젝트 파일이 있는 곳으로 이동해봅시다. cd 프로젝트 파일이 있는 경로 dir 명령어를 사용해서 이 안에 무엇이 있는지 확인해봤습니다. 사실 저는 경로이동하면 무조건 dir을 하는 습관이 있기때문에 습관적으로 타이핑했습니다. 아무튼, 여기에서 cd src 를 입력하여 이..