일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 카카오프로젝트 100
- 보안뉴스 한줄요약
- 보안뉴스 요약
- 깃허브
- 오라클
- 다크웹
- python
- javascript
- 자바스크립트 객체
- 자바스크립트 jQuery
- oracle
- GIT
- 자바스크립트 element api
- 보안뉴스한줄요약
- 자바스크립트 API
- 카카오프로젝트
- Oracle SQL
- oracle db
- 파이썬
- 보안뉴스
- 랜섬웨어
- 카카오프로젝트100
- 자바스크립트
- ES6
- 보안뉴스요약
- numpy
- 자바스크립트 prototype
- 자바스크립트 기본 문법
- 자바스크립트 node
- php
- Today
- Total
FU11M00N
[어셈블리] 어셈블리(nasm)와 c언어를 이용한 난수값 생성 2편 본문
저번 글과 이어지는 글입니다. https://nevertrustbrutus.tistory.com/95
그럼 test를 마쳤으니 이제 c언어 코드와 어셈블 코드를 링킹 시켜보겠습니다.
전체적인 설계
C에서 가져와야 할 기능을 먼저 생각해봅시다.
어셈블리 언어로 구현하기 힘든 랜덤 값을 가져오려고 합니다.
그러려면 랜덤 시드 값을 초기화(현재시간으로) 시키는 함수와 1~45 사이의 정수를 리턴해줄 함수가 필요할 것입니다.
- newtime() : 랜덤 시드 값 초기화(현재시간)
- random() : 1~45 사이의 정수 리턴
다음으로는
어셈블리 에서 필요할것같은 기능들을 생각해봅시다.
- arr[6] : 로또를 담을 그릇.
- main : 메인 함수.
- compare_number: 중복되는 숫자가 들어가있는지 확인하는 함수
- show: 로또 6개를 출력하여 보여주는 함수
순서도:
1. c 파일을 생성해준다. (c언어로 랜덤값 생성하고 돌려주는 코드)
2. 중간파일 생성 ( random.o)
3.어셈블리어 코드 목적파일 만들기.(랜덤.asm -> 랜덤.obj)
4. 두 개의 파일 링킹 시켜서 exe파일 만들기
5. 끝
#include <stdlib.h>
#include <time.h>
void newtime()
{
srand(time(NULL));
}
int random()
{
int a;
a = rand()%45 +1;
return a;
}
random.c 파일의 내용
랜덤.asm 파일의 소스 코드
랜덤.asm을 랜덤.obj로 목적파일 만드는 과정.
random.c 파일을 random.o 목적 파일로 만드는 과정.
랜덤.obj 파일과 random.o 파일을 링킹 시키는 과정.
결괏값.
ref. https://lucete1230-cyberpolice.tistory.com/114?category=852249
'Programming > Assembly' 카테고리의 다른 글
[어셈블리] 어셈블리어(nasm) 와 c언어 를 이용해 난수값 생성 1편. (1) | 2020.09.12 |
---|---|
[어셈블리어] 어셈블리 덧셈,뺄셈,곱셈,나눗셈 (0) | 2020.04.15 |
[어셈블리어] 어셈블리어 기초 이론 2 (0) | 2020.04.11 |
[어셈블리어] 어셈블리어란? 기초 이론 1 (0) | 2020.04.11 |