power-girl0-0

어셈블리어 Lotto 본문

언어/어셈블리어

어셈블리어 Lotto

power-girl0-0 2020. 9. 10. 21:29
728x90

. 환경변수

 

1. GCC 설치(GCC 7.2.0버전)

-다운로드 경로

https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/7.2.0/threads-posix/dwarf/

 

2. SASM안에 있는 NASM설치

다운로드 경로

https://dman95.github.io/SASM/

 

3. 배치파일을 만들기

mingw-w64.bat

 

4. SasmNasm의 프레임워크를 복사하여 배치파일과 같은 경로에 넣기

- 새로운 형태의 코딩 프레임 워크랑 기존 sasm에서 지원하는 매크로 함수를 호환해주는 효과가 있습니다.

 

NASM 프레임워크

 

SASM 프레임워크
같은 경로로 만들어준 프레임워크

 

 

 

. 명령어

 

프로그래밍 생성과정

(1) 어셈블리어 (중간파일 만들기)

32bit환경 : nasm.exe -g -f win32 <소스이름> -o <중간파일 이름>

64bit환경 : nasm.exe -g -f win64 <소스이름> -o <중간파일 이름>

 

(2) C언어 (중간파일 만들기)

gcc c <소스이름>.c

 

(3) 링킹(실행파일 만들기)

32bit환경 : gcc.exe <중간파일이름> -g -o <실행파일 이름> -m32

64bit환경 : gcc.exe <중간파일이름> -g -o <실행파일 이름> -m64

 

명령어

-g : 디버깅 정보 포함

-f : 출력파일 포멧

-o 출력파일 이름

 

 

# 사진참고

: https://blog.naver.com/egsyt/220899267836

 

 

 

. 실행소스

 

(1) random_num.c

- now_time() : 현재시간을 가져와 난수가 나오도록 해주는 함수

- random_num() : 1 ~ 45사이에서 랜덤한 숫자를 뽑아와주는 함수

random_num.c

 

(2) lotto.asm

 

 

* 방식 2. 스택을 이용한 어셈블리어 코드(실행 결과값은 같습니다-!!)

. 결과물

(1) C언어 소스를 중간파일로 생성

 

c언어를 중간파일로 생성
생성된 C언어 중간파일

 

 

(2) 어셈블리어 소스를 중간파일로 생성

 

어셈블리어를 중간파일로 생성
생성된 어셈블리어 중간파일

(3) 실행파일 생성

 

(4) 결과물

 

728x90
Comments