조건문의 사용
==================================Outline====================================
조건문의 사용
----------------------------------------------------------------------------
if문은 jump와 compare의 조합이다.
if문 두 개와 if ~else문을 구분해보면 if ~else문이 효율적이지만 큰 차이는 나지 않는다.
embedded에서는 한 푼도 줄 수 없기 때문에 if ~else를 사용하는 것이 좋다.
mnemonic loop
ECX는 카운트 레지스터로써 loop문을 만나면 1씩 감소하게 된다.
mov ecx, number ; number of iterations
...
loop forIndex ; repeat body number times
loop문은 기준으로 앞으로 127byte 뒤로 128byte가 넘어가게 되면 loop으로 돌아갈 수 없다. 때문에 128byte가 초과할 경우는 jump문을 사용해야 한다.
loope/loopz는 zero 플래그가 0일 때 빠져 나가게 되는 것이고, loopne/loopnz는 zero 플래그가 0이 아닐 때 빠져나가게 된다.
1부터 10까지 더하는 프로그램 for문과 while문으로 작성해보자.
for문이 jmp명령어가 하나 더 있음을 알 수 있다. 현재 코드는 최적화보다는 for문과 while문의 코드 작성 순서에 따른 차이라고 볼 수 있다.