5~8교시
☆S/W★
● Assembly
□ Integer Additions and Subtraction Instructions (정수의 덧셈과 뺄셈 공식)
- inc 와 dec 의 값도 Flag값에 변화가 있을 수가 있다.
- 연산의 결과가 음수일 경우에는 SF가 1이 된다.
- neg(Negative) < - > pos (Positive)
- neg 는 2의 보수를 의미한다. (음수를 양수로 , 양수를 음수로 변환 시킨다)
- 예제를 통하여 확인이 가능하며 windbg의 레지스터를 통해 하나하나 살필 수 있다.
- 첫번째 그림에서 ax에 5를 입력하고 dx 로 mov 를 걸었기 때문에 다음 디버깅때에는 dx에 5가 들어가게 된다.
- 여기서 12라는 앞자리 숫자가 조금 거슬리는데 아무리 해도, 사라지지 않았습니다. 아무래도 잔상인것 같은데... 신경 안쓰셔도 될 것 같습니다.
- 디버깅 (F10) 을 이용하여 Register 에서 바뀌는 값을 알 수가 있다.
□ Multiplication Instructions (곱셈 공식)
- 곱셈을 나타내는 형태는 mul 로 표현을 한다.
- 곱셈을 할때에는 그 값과 하는 경우가 있지만 대부분 Accumulator와 곱셈을 하여 값을 낸다.
- 다음 예제를 통하여 확인 할 수 있다.
- 위와 같은 내용을 코딩으로 작성하면 레지스터로 값이 나오는 것을 확인이 가능하다.
- 곱셈의 같은 경우에는 조금 복잡한 것 같습니다. 이해가 안되는 건 아니지만...
- 위와 같은 코드를 짜자면 다음과 같이 코드를 짤 수 있다.
- 위에서 덧셈을 했던 방식중에서 Programming Exercise 4.2 번의 2번문제를 풀 수도 있다.
- 처음 코드에서 a 의 값을 집어 넣어준다. 그리고 소괄호에 있는 값이 우선이므로 a의 값을 반전시킨다. 그렇게 하면 a의 값은 -x 가 된다.
- z의 값을 넣기전에 increase는 증가이며 decrease 는 감소이다. 그렇기 때문에 dx값에 dec를 넣으면 -1이 된다.
- 이후 dx 값중에 곱셈이 우선이므로 dx의 값을 한 번 더 더하게 되면 2를 곱한 값과 같은 값이 된다.
- 마지막으로 z값을 넣어주게 되면 다음과 콘솔에 나온 값처럼 3이 나오게 된다.
- imul 은 양수만 취급한다 (일종의 곱셈)
- 위와 같은 내용을 예제로 확인 하면 다음과 같이 사용할 수 있다는 걸 알 수 있다.
- 마지막은 좀 다르다고 볼 수 있으며, CF와 OF가 1이 나오는걸 확인 할 수 있다. 어느 일정숫자를 넘어가면 버려지지만 그 외에 해당하는 부분이 immediate를 사용하게 되면 CF와OF가 1이 나올 수 있다.
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20150925-23번-이량경-일일업무일지-ASM {jum, cmp}/ 적외선 온도 감지 센서 (6) | 2015.09.30 |
---|---|
20510924-23번-윤재희 적외선 센서 코딩, 큰 수의 덧셈과 뺄셈, 분기와 순환 (4) | 2015.09.24 |
20510923-22번-우대희 온도센서,어셈블리(Division Instructions) (5) | 2015.09.24 |
[잡담] 현재 수업중인 어셈블리 pdf파일에 대해서 (3) | 2015.09.23 |
20150921-20번-엄민웅 어셈블리 mov, xchg, add, sub 니모닉 (명령어) (4) | 2015.09.21 |
20150917-19번-안향진 - ADC (5) | 2015.09.18 |
20150916-18번-안해운 - ADC (6) | 2015.09.17 |
20150915-14번-박제혁 일일업무일지 - PWM을 이용한 멜로디 연주 (4) | 2015.09.16 |