Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 패미컴
- 메가드라이브
- 앙상블
- MSX
- Apple II
- ensemble
- 모빌슈트
- Game Gear
- 오블완
- 티스토리챌린지
- LMD
- fpga
- 게임보이
- 건담
- 슈퍼패미컴
- GOG
- snes
- 게임기어
- 컨트롤러
- 3DS
- 슈퍼마리오
- ps4
- 이스
- 닌텐도 스위치
- PC엔진
- PSP
- YS
- mister
- mobilesuit
- analogue
Archives
- Today
- Total
Just a Blog
Apple II (MiSTer 코어) 에서 LISA 2.5 프로그램으로 어셈블러 사용 본문
MiSTer의 Apple II 코어에서 LISA 2.5를 동작시켜 'APPLE 어셈블리' 책에 나오는 어셈블리 예제를 실행해 보았다. 느낌이 새롭다.
'APPLE 어셈블리' 책의 어셈블리 코드가 책에 함께 나온 기계어로 그대로 변환되지 않았는데, 'STA #$06'이 책에서는 '85 06'으로 변환되었으나 LISA 2.5D 버전에서는 '8D 06 00'으로 변환되었다. 6502 Instruction을 살펴보니 '8D'는 절대(absolute) 주소 $LLHH를 오퍼랜드로 하고, '85'는 제로페이지 주소 $LL를 오퍼랜드로 한다. '85'를 사용하는 것이 더 효율적인 것 같은데 어셈블러 설정을 별도로 할 수 있는 것인지 모르겠다. 기계어 코드 길이가 달라지니 직접 삽입한 서브루틴의 주소가 책의 내용과 달려져 불편했다.
LISA는 예전에 한 번도 사용해 본 적이 없는데, 기능과 편의성이 괜찮은 것 같다.
* 추가 업데이트
메뉴얼을 보니 LISA 2.x는 자동으로 zero page address와 absolute address를 구분한다고 하는데, 'EQU'로 심볼릭 레이블(이 경우 ST1, EN1 등) 정의해서 그런 것인지 모르겠다. 메뉴얼에 따르면 'EQU'는 레이블을 16비트 값으로 정의하는 것 같다. 'EQU' 대신 'EPZ'를 사용하여 레이블을 정의하니 'STA'에 '85' 값의 인스트럭션을 사용한다.
Comments