==================================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문의 코드 작성 순서에 따른 차이라고 볼 수 있다.
'Busan IT > Assembly' 카테고리의 다른 글
pop, pushad 명령어 (0) | 2015.10.02 |
---|---|
확장/반복문, Procedures (0) | 2015.10.01 |
div 명령어 숙제, 큰 수의 덧셈과 뺄셈, 분기와 순환 (0) | 2015.09.24 |
기본 명령어(나눗셈, 나눗셈 연산 준비, 레지스터 확장) (1) | 2015.09.24 |
기본 명령어(inc, dec, neg, mul, imul) (0) | 2015.09.22 |