20140731 (Assembly loop, 배열, lea, pipe line)

114일차








--------------

Assembly

--------------





------- Conditional Jump Instruction 종류









--- 숫자 맞추기 게임을 통한 Assembly 예제 소스






example10.asm


example10.exe







------- loop Instruction


반복문

점프문과 비슷하나 일정 반복에 더 강점을 갖고 있다.

점프 범위는 -128 ~ 127 byte 이다.



이런식으로 사용한다.


ECX Reg와 관련이 있다.


(EAX, EDX는 계산 관련, EBX는 주소 관련 Reg이다.)


ECX의 값이 0이 될 때까지 계속 돈다.








--- 배열


지금까지 소스에서 문자열 배열을 가끔 봐 왔고

숫자 배열도 문자열 배열과 마찬가지로 선언한다.


Array DWORD 10 DUP (?)


C =>  int    Array[10];


이렇게 사용한다.






--- lea Instruction


주소 값을 대입한다.

lea   ebx ,  number1

C => ebx = &number1;






배열과 점프, lea 예제)
















------- Pipe line


CPU가 명령을 실행하는 과정이 3가지가 있다.


- Fetch an instruction from memory 명령을 가져옴

- Decode the instruction 명령을 해석

- Execute the instruction 명령 실행


이것이 이어지는 것을 pipe line 이라고 한다.


그런데 여기서 문제가 jump문이 나올 때 이 pipe line이 깨지기 때문에

반복문, 제어문을 많이 사용하면 CPU의 효율이 떨어진다.

그렇다고 반복문, 제어문을 사용하지 않을 수 없으니

반복문과 제어문을 사용할 때 이런 것을 생각하고 작성해야 한다.



설정

트랙백

댓글