[Assemble] 반복문 구현하기
Assemble

[Assemble] 반복문 구현하기

오늘은 어셈블리로 반복문을 구현해 볼라 합니다.

 

원하는 이름의 텍스트 파일을 만들어주고

 

데이터 섹션에 A를 저장해둘 데이터를 만듭니다.

 

 

write 시스템 콜을 위한 변수들을 초기화 합니다.

 

r10은 반복문의 조건을 위해 변수입니다.

 

반복을 위한 함수를 만들어줍니다.

 

cmp는 r10 과 100의 관계를 비교하는 명령어이고

 

je는 (jump equal)를 뜻합니다.

만약 결과값이 r10과 100을 비교했을때 같다면 done으로 점프를 한다는 의미입니다.

[ done 함수는 나중에 나옵니다. ]

 

rax를 다시 초기화해준 이유는 

어떤 함수를 실행시키면 그 함수의 결과값이 rax에 대입이 되기 때문에

초기화를 해야 합니다.

 

inc는 증가를 위한 명령어입니다.

r10을 하나씩 증가시킵니다.

 

그다음 jmp명령어를 이용해 다시 loop 함수로 돌아갑니다.

 

마지막 위의 조건이 충족이 된다면 done 함수로

점프를 뛰기로 되어있기 때문에 done 함수를 만들어줍니다.

 

만약 정상적으로 코드를 작성했다면 100개의 A의 문자가 출력이 될겁니다.

 

앞에서 했던 내용들을 활용해서 원하는 문자 또는 숫자 등을 입력받고

자신이 원하는 반복 횟수를 입력 받아서 활용을 할 수도 있을 거 같습니다.

 

감사합니다. 

'Assemble' 카테고리의 다른 글

[Assemble] 기초 문법 정리  (0) 2020.05.31
[Assemble] 입력한 값을 출력하는 프로그램 만들기  (0) 2020.05.30
[Assemble] 메모리 구조  (0) 2020.05.27
[Assemble] Hello World!  (0) 2020.05.27