본문 바로가기
코스웨어/14년 스마트컨트롤러

07.28 - 업무일지 [20. 이경진]

by 알 수 없는 사용자 2014. 7. 28.
728x90
반응형

PART1. 연산과 메모리

 

int a =1;

int b =2;

a = a + b;

 

메모리에서 내용을 읽어와 다시 매모리에 넣기 위해서는 메모리 - cpu -메모리 3단계를 거친다.

(이 과정을 생략하기 위해 사용하는 것이 캐시 매모리! - 캐시메모리를 거치지 않게 할때 volatile 활용 )

 

위 소스(a = a + b)는 C 에서 활용이고, 어셈블리는 메모리에서 메모리로 직접 이동 할 수 없다.

mov a,b    => mem to mem 불가능.

1. 기계적으로 회로 (BUS)가 없다

2. opcode 가 없다.

같은 이유로 add imm,EAX (add 10 , EAX) 도 불가능 하다

 

 

 

PART2. 연산최적화  INC / DEC

 

* C 언어 = > 어셈블리어

 

( [F9]로 시작점 찍기 => [F5] 디버깅 모드 => [창 - 디스어셈블러] 어셈블러 창 띄우기 )

 

 

 

 

파란 네모의 [a] 는 주소이다!!

 

 

 

 

 

 

 

 

PART 3. NEG (역수)

 

2의 보수를취하게 해주는 명령어!

( P 103 예제)

mov bx 01 A2h

neg bx

 

0000 0001 1010 0010     <= 2진수로!

1111 1101 0101 1101     <=역수 취하기

+1     <= +1    

1111 1101 0101 1111

F        E        5        E

 

이때까지 배운것으로 하는 연산식 만들기!!!

PART 4. MUL (곱셈)

 

 

 

 

 

 

* 저장 실수로 그림 / 글 이 범벅입니다 ㅠ_-...!! 내일 보아요 ^^!

728x90