새로나온 소프트웨어
- 출처
- 컴퓨터학습
- 잡지
- 컴퓨터학습1985년 11월 (제25호)
- 페이지
- 123p
- 카테고리
- CS 뉴스 코너
- 비고
[동향 소식 p.123–124] 대우전자 아이큐 1000용 SUPER ASSEMBLER
대우전자 아이큐 1000용 SUPER ASSEMBLERp.123–124
SUPER ASSEMBLER는 ASSEMBLER PROGRAM를 작성할 수 있는 S/W로 PROGRAM를 DUMP 시키거나 DISASSEMBLE 하여 다른 기계어 프로그램을 수정하여 실행해 볼 수도 있읍니다.
1. 개요
SUPER ASSEMBLER을 사용할 수 있는 MSX의 사양은 CPU는 Z-80A를 사용하며, ROM32K, RAM 64K 이상일 경우에만 사용이 가능하다. RAM이 16K~32K일때도 사용할 수는 있는데 이때는 CARTRIDGE를 사용하였을 경우이다.
본 SUPER ASSEMBLER는 EDITOR부분, ASSEMBLER부분, MONITOR부분, DISASSEMBLER 부분으로 나누어져 있다.
2. MEMORY MAP
MEMORY MAP은 MEMORY 영역의 어떤 번지가 어떻게 사용하는가를 표시하는 것이다.
TEXT AREA(8100H~): 이 영역은 EDITOR에 의해 입력한 ASSEMBLY가 입력되는 곳으로 81H번지부터 사용된다.
LABEL TABEL(~DFFFH): ASSEMBLE했을 때 LABEL을 등록하기 위하여 사용된다. 이 테이블은 TEXT AREA에 사용된 최후의 번지에 계속해서 사용되는데, TEXT AREA의 사용 상황에 의해서 LABEL TABEL의 개시번지가 변한다.
FREE AREA(E000H~EDFFH): MSX SYSTEM과 SUPER ASSEMBLER의 영향을 전혀 받지 않는다. 자신의 프로그램을 실제로 넣어서 수행시키기 위해서 사용된다.
WORK AREA(EC00H~FFFFH): SUPER ASSEMBLER와 MSX SYSTEM에서 사용하는 영역으로, 결정되어진 MEMORY의 내용을 변경해서는 안된다.
3. SUPER ASSEMBLER의 명령들
3-1. 프로그램 편집명령
1) NEW: TEXT AREA의 내용을 지운다.
2) AUTO: 행 번호가 자동으로 발생되는 명령으로 BASIC의 AUTO와 동일하다.
3) LIST와 LLIST: TEXT 영역의 프로그램을 화면 또는 화면에 표시한다.
4) RENUM: 행 번호를 바꾼다. BASIC의 RENUM과 동일
5) DELETE: TEXT AREA의 행단위 소거를 한다.
3-2. 문자열 조작 명령
1) SEARCH와 LSEARCH: TEXT AREA에서 문자열을 검색한다. 검색하면 화면 또는 프린터로 표시된다. CTRL+STOP KEY로 중단하며, SPACE KEY로 일시 중단이 가능하다.
2) CHANGE: 문자열을 교환한다.
예) CHANGE ○ 문자열1 ○ 문자열2
구문자로 문자열1에 포함하지 않는 문자면 모두 가능 문자열1을문자열2로 바꾼다.
3-3. 명령어
SUPER ASSEM의 EDITOR는 카세트 테이프에 SOURCE PROGRAM을 기록할 수 있으며, 카세트 테이프에 보존은 SAVE명령으로 하며, 다시 읽어들일 때는 MERGE를 사용한다.
1) SAVE: TEXT AREA의 프로그램을 카세트 테이프에 보존한다. FILE NAME 16자까지 가능
2) MERGE: 카세트 테이프의 SOURCE PROGRAM을 TEXT영역의 프로그램과 합성한다.
3-4. CONTROL 명령어
1) A: ASSEMBLER를 기동시킨다.
2) BA: 베이직 상태로 돌아온다.
3-5. 영역 확인 명령어
TEXT AREA가 어느 번지를 사용하고 있는가를 표시한다.
예) >MAP
3-6. ASSEMBLER
ASSEMBLER는 EDITOR로 작성한 SOURCE PROGRAM을 2PASS형식으로 ASSEMBLE한다.
형식: >A 파라미터열
파라미터열
① U: UNLIST 리스트는 출력하지 않고 ERROR행 행을 표시하여 준다.
② P: PRINT 리스트를 PRINTER에 출력한다. U와 조합하여 사용하면 ERROR 행을 PRINTER에 출력한다.
③ D: ORDER LABEL을 등록순으로 출력한다.
④ S: SORT LABEL을 SORT하여 출력한다.
⑤ R: REFFERENCE CROSS REFFERENCE 리스트를 출력한다.
⑥ H: HARD COPY D, S, R의 내용을 PRINTER에 출력한다.
⑦ I: OBJECT 프로그램을 카세트 테이프에 출력한다.
⑧ O: OBJECT OBJECT PROGRAM을 메모리에 작성한다.
⑨ A: ASSEMBLE 리스트를 표시
4. MONITOR
① D개시번지, 종료번지: 개시번지부터 종료번지까지의 MEMORY내용과 해당하는 CHARACTCTER를 화면에 표시한다.
② V개시번지, 종료번지: D와 같으나 이것은 VIDEO RAM DUMP용이다.
③ P개시번지, 종료번지: DUMP한 결과를 PRINTER로 출력한다.
④ M번지: 지정한 번지로 DATA를 SET 한다.
⑤ S번지: 지정한 번지로 SOFT WARE 16진 KEY DATA를 SET
⑥ F시작번지, 종료번지, 데이타: 시작번지부터 종료번지 까지의 내용을 지정한 값으로 매꾼다.
⑦ T개시번지, 종료번지, 전송번지: 개시번지부터 종료번지까지의 내용을 전송번지에서 지정한 번지로 같은 양만큼을 옮겨준다.
⑧ X: 레지스터의 내용을 표시 변경한다.
⑨ G: 기계어 프로그램을 실행한다.
⑩ R: ASSEMBLER의 파라미타 1로 녹음한 테이프에 저장된 내용을 읽어들인다.
5. DISASSEMBLER
OBJECT CODE로 변환된 기계어 코드를 역 ASSEMBLE한다.
① L개시번지, 종료번지, 슬로트번호: 결과를 모니터로 출력한다.
② LP개시번지, 종료번지, 슬로트번호: 결과를 프린터로 출력한다.
6. SUPER ASSEMBLER의 에러메시지
1) OVERFLOW: RENUN, AUTO로 행번호가65535를 초과했을 경우 발생한다.
2) OUT OF MEMORY: SOURCE PROGRAM의 길이가 TEXT 영역을 초과하거나, ASSEMBLER 사용시에 ORG로 FREE 영역 이외를 지정한 SOURCE PROGRAM을 직접 OBJECT CODE로 바꾸고자 할 경우 발생한다.
3) ?: 잘못된 명령을 입력했을 때 발생
4) LABEL FULL ERROR: LABEL TABEL의 영역이 충분하지 못한 경우에 발생하며, 이때는 다음의 2가지 일을 생각할 수있다.
① 정의한 LABEL이 많을 때
② CROSS REFFERENCE의 워크에어리어가 부족할 때
5) SOURCE PROGRAM의 ERROR
① F: 문법에 있지 않은 기술이었을 때
② O: OPERAND의 지정이 부적합
③ Q: 존재하지 않는 명령을 사용한 경우
④ D: DISPLACEMENT가 범위를 초월했다.
⑤ M: 동일한 LABEL을 여러 장소에서 사용한 경우
지난호에 소개한 SUPER-BASIC과 SUPER ASSEMBLER는 디스크용으로 11월초에 대우전자에서 시판될 계획이다.