게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
어셈블 코드 질문드립니다.
게시물ID : programmer_16594짧은주소 복사하기
작성자 : 전벙글이예요
추천 : 0
조회수 : 304회
댓글수 : 3개
등록시간 : 2016/04/07 21:44:44
옵션
  • 본인삭제금지

OFFSET  EQU  30H

SEGMNT  EQU  31H

;

  ORG  0000H  ; 프로그램 시작

  JMP  START

;

START:  MOV  OFFSET,#02H  ; OFFSET2로 지정

  CALL  LOOKUP  ; 룩업 테이블 호출

  SJMP  $

;

LOOKUP:  MOV  DPTR,#TABLE

  MOV  A,OFFSET

  MOVC  A,@A+DPTR

  MOV  SEGMNT,A

  RET

;

TABLE:  DB  03H  ; "0" 데이터

  DB  9FH  ; "1" 데이터

  DB  25H  ; "2" 데이터

  DB  0DH  ; "3" 데이터

  DB  99H  ; "4" 데이터

  DB  49H  ; "5" 데이터

  DB  41H  ; "6" 데이터

  DB  1FH  ; "7" 데이터

  DB  01H  ; "8" 데이터

  DB  09H  ; "9" 데이터

  END  ; 프로그램 끝


=================

#TABLE의 DB들은 7-세그먼트에 대한 코드입니다.

제가 궁금한것은 EQU가 C에서는 define 역할을 하는 것으로 알고있는데

왜 START루프로 들어가서 OFFSET을 왜 갑자기 2로 지정해주는지..

LOOKUP으로 들어가서 DPTR에 #TABLE을 넣어주는데 #TABLE은 뭐가들어가는지..(아니면 제가 지정하던지)

그리고 마지막 SJMP에서 $는 무엇인지..

어셈블을 다시 C로 바꿔야하는데 코드 분석에서 막혀버렸습니다 ㅠㅠ

꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호