회원가입 ID/PW 찾기
AA

AVR ATmega 162 책에 나와있는 예제입니다.
주석이 달아져있어서 이 어셈들이 어떤식으로 작동하는지는 알겠습니다.
그런데 최상위 비트나 최하위 비트가 어떻게 저런 순서로 저장되는지 모르겠습니다.
R26,27,30,31 
y+1, y+2, y+3, y+4
등 이 어셈블러가 왜 이런식으로 a,b,c 가 저장되어서 연산되는지에 대해서 
가르침을 주시면 +_+...고맙겠습니다..^^ 명령어는 검색해서 찾아봤는데 
어떤 순서에 의해 a,b,c가 각각 들어가게 되는지.............궁금하네요...
 

// 어셈블러로 선언된 함수, 이 함수는 a+b+c한 값을 반환한다.

#pragma warn-   // 경고 메시지를 금지시킴

int sum_abc(int a, int b, unsigned char c) {

  #asm

  ldd   r30,y+3   ;R30=LSB a

  ldd   r31,y+4   ;R31=MSB a

  ldd   r26,y+1   ;R26=LSB b

  ldd   r27,y+2   ;R27=MSB b

  add   r30,r26   ;(R31,R30)=a+b

  adc   r31,r27

  ld     r26,y      ;R26=c

  clr    r27        ;promote unsigned char c to int

  add  r30,r26   ;(R31,R30)=(R31,R30)+c

  adc  r31,r27

  #endasm

}

#pragma warn+   // 경고 메시지를 허가함

void main(void) {

  int r;

  // now we call the function and store the result in r

  r=sum_abc(2,4,6);

}

댓글 2
  • No Profile
    코드는 top-down방식이므로 위부터 차례차례 번지수에 무엇이 들어가는지 따라가면 알 수 있을듯 한데요..

    특히 big endian 방식인지 little endian 방식인지를 먼저 알아야겠지요..

    스스로 공부해봄이 가장 빠를듯합니다. 어셈은 말로 설명하기가 더 힘드네요..

    특히 메모리 엑세스같은 경우는 직접 방법이냐 간접방법이냐부터 이해를 하셔야 하고요^^;
  • No Profile
    C언어의 역어셈. 스택에 파라미터가 들어가고 빠져나온는 과정. SRAM 억세스 방법. 오프셋 연산. 16비트 데이터 레지스터. Z, Y, X 레지스터. 5분 정도 어셈블리 언어 책을 봤습니다. 어셈블리 명령어 LDD만 찾아봐도 답이 나옵니다. ^^ CodeVision의 인라인어셈 방법이 매우 특이한 것 같내요. 정말 매력적 입니다.

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
156 전기전자 아무거나 HOT케일 컴파일러 기본적인 사용법1 푸른남작 2174 2009.09.18
155 전기전자 아무거나 HOT혹 초음파 진동자 및 회로고수님들 잠시만....2 긍정적 마인드 5100 2009.09.16
154 전기전자 아무거나 HOT8051 을 사용하여 마이컴보드를 제작하고자....5 테스 1189 2009.09.14
153 전기전자 아무거나 HOT처음 가입했습니다 ^^8 로이안 958 2009.09.04
152 드론/로봇/라인트레이서 HOT라인트레이서와 라인마우스 차이가 뭔가요..??2 놘닝구 2025 2009.08.27
151 드론/로봇/라인트레이서 HOT라인트레이서 센서를 만들어볼려고 합니다.1 임베초보 1930 2009.08.26
150 전기전자 아무거나 HOT콘덴서 마이크 AVR161 화니이 2235 2009.08.19
149 드론/로봇/라인트레이서 HOT아크마님~~+_+2 GoToHell 1535 2009.07.25
148 전기전자 아무거나 HOT펌웨어에 대한 개념 정리 파일-23 바람의아들 1209 2009.07.20
147 전기전자 아무거나 HOT펌웨어에 대한 개념 정리 파일10 바람의아들 1353 2009.07.20
146 드론/로봇/라인트레이서 HOT아크마님 살려주세요~~3 GoToHell 1759 2009.07.19
145 드론/로봇/라인트레이서 HOT라인트레이서 센서부 질문 있어요 sinpk 2124 2009.07.04
144 전기전자 아무거나 HOT매틀랩 & 랩뷰 프러키온 1659 2009.05.21
143 전기전자 아무거나 HOTPSpice관한 질문~!1 프러키온 1052 2009.05.20
142 드론/로봇/라인트레이서 HOT완전 초보입니다.ㅠ 도와주세요ㅠ 외계인놀이 1406 2009.05.18
141 전기전자 아무거나 HOT졸업작품 lm35dz 세그먼트출력 IAR C코드 수정질문1 동동주짱 4982 2009.04.24
140 전기전자 아무거나 HOT회로도 좀 구할 수 있을까요2 희성 2167 2009.04.17
139 전기전자 아무거나 HOT안녕하세요. 졸전 작품을 만드는데....2 타락선녀 1102 2009.04.14
138 전기전자 아무거나 HOTPSpice에 관한 질문입니다.5 프러키온 1491 2009.03.24
137 전기전자 아무거나 HOT창피한 질문.ㅠ.ㅠ4 misomax 1191 2009.02.10
Prev 1 ... 27 28 29 30 31 32 33 34 35 36 ... 39 Next
  • 인생에서 중요한 법칙은 만사에 중용을 지키는 일이다.
    - 테렌티우스
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.