회원가입 ID/PW 찾기
AA

질문할때는 다음 사항을 정확히 설명해주셔야 답변하시는 분도 최대한 정답에 가깝게 답할 수 있습니다.
---------------------------------------------------------------------------------------------------------------------------------------------------------
1. 컴파일러등의 개발환경 :



2. 회로나 소스코드의 제어목적 :



3. 증상과 예상되는 문제점 :



4. 기타 :



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


학교에서 keil 공부하고 있는데요.



0200 ORG  200

0200  BACK :    MOV  A,  #55H

0202 MOV  P1,  A

0204 MOV  R4,  #99H

0206 MOV  R5,  #67H

0208 LCALL  DELAY

020B MOV  A, #0AAH

이하생략


이 코드에서  LCALL 후에 STACK 이 어떻게 되어 있는지 잘 이해가 안됩니다.

0B   

0A

09    02    

08    0B


0B는 이해가 됩니다. 근데 그 다음에 02 라고 한거 같은데 이해가 잘 안되요

설명 부탁드립니다.

댓글 1
  • No Profile

    있는 그대로 이해하면 됩니다. LCALL DELAY를 실행하게 되면, DELAY라고 하는 서브루틴을 호출하게 되지요.

    그 서브루틴의 실행이 끝나고 RET 명령어를 만나서 돌아오게 될 ADDRESS, 즉 LCALL DELAY 바로 다음 인스트럭션의 ADDRESS가 스택에 저장되게 됩니다. 그 ADDRESS가 020B이지요. 그런데, 이 ADDRESS는 16 비트 즉 2 바이트인데 스택에는 한 바이트씩만 저장할 수 있지요. 그래서 스택의 연속하는 두 위치에 연속하여 이 ADDRESS의 상위 바이트, 하위 바이트를 저장하는 것입니다. 8051 매뉴얼에 보시면 아시겠지만, RETURN ADDRESS는 하위바이트가 먼저, 상위 바이트가 나중에 저장됩니다. LCALL DELAY 실행 직후의 스택포인터 SP의 값은 09를 가리키게 됩니다.

     

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

search
번호 분류 제목 글쓴이 조회 수 날짜
3 머신러닝, AI & 알고리즘 HOT오목 게임 알고리즘3 새로운하늘 3458 2010.03.29
2 머신러닝, AI & 알고리즘 HOT지하철 최단거리 알고리즘은?2 지워나 2861 2008.06.20
1 머신러닝, AI & 알고리즘 HOT순차 프로그램에 대한 간단한 알고리즘과 재귀 알고리즘의 속도 테스트 - by 아크마7 아크마 3060 2007.08.08
  • 사슴을 쫓는 사람은 토끼를 쳐다보지 않는다.
    - 유안
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.