KR960004060B1 - Bank choosing pre-assembling method of multi-memory bank system - Google Patents

Bank choosing pre-assembling method of multi-memory bank system Download PDF

Info

Publication number
KR960004060B1
KR960004060B1 KR1019910021280A KR910021280A KR960004060B1 KR 960004060 B1 KR960004060 B1 KR 960004060B1 KR 1019910021280 A KR1019910021280 A KR 1019910021280A KR 910021280 A KR910021280 A KR 910021280A KR 960004060 B1 KR960004060 B1 KR 960004060B1
Authority
KR
South Korea
Prior art keywords
bank
subroutine
call
program
rom
Prior art date
Application number
KR1019910021280A
Other languages
Korean (ko)
Other versions
KR930010731A (en
Inventor
김재호
Original Assignee
삼성전자주식회사
정용문
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 정용문 filed Critical 삼성전자주식회사
Priority to KR1019910021280A priority Critical patent/KR960004060B1/en
Publication of KR930010731A publication Critical patent/KR930010731A/en
Application granted granted Critical
Publication of KR960004060B1 publication Critical patent/KR960004060B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

Abstract

The memory bank is selected according to the subroutine call data of an assembler program. The method comprises the steps of: (A) storing bank positions of subroutines on a bank table; (B) checking the end of a source code; (C) checking the starting line of a subroutine; (D) storing the name of the subroutine and checking the subroutine call request; (E) transmitting the data stored in an input buffer to an output buffer when no subroutine call request is detected and otherwise, checking that the called subroutine is in a specific bank; and (F) generating an intermediate program according to result of the step (E) .

Description

다중 메모리 뱅크 구조를 가지는 시스템의 뱅크 선택 프리 어셈블링 방법Bank-selection preassembly method for systems with multiple memory bank structures

제 1 도는 일반적인 메모리 뱅크 구조도.1 is a general memory bank structure diagram.

제 2 도는 제 1 도의 메모리 뱅크를 선택하는 시시템의 블럭도.2 is a block diagram of a system for selecting the memory bank of FIG.

제 3 도는 종래의 프로그램 작성 흐름도.3 is a flowchart of a conventional program creation.

제 4 도는 제 3 도의 작성 흐름에 의해 작성된 메모리 뱅크의 프로그램.4 is a program of a memory bank created by the creation flow of FIG.

제 5 도는 본 발명에 따른 프로그램 작성 흐름도.5 is a flow chart of programming according to the present invention.

제 6 도는 본 발명에 따른 링크 정보 테이블.6 is a link information table according to the present invention.

제 7 도는 본 발명에 따른 프리 어셈블러의 제어 흐름도.7 is a control flowchart of a preassembler according to the present invention.

제 8 도는 제 7 도의 프리 어셈블러에 의해 작성된 중간 프로그램.8 is an intermediate program written by the preassembler of FIG.

본 발명은 마이크로 컴퓨터를 이용하는 시스템의 메모리 뱅크 제어 방법에 관한 것으로, 특히 다중 메모리 뱅크(Multi-Memory Bank) 구조를 가지는 마이크로 컴퓨터를 위한 프리 어셈블링 방법에 관한 것이다.The present invention relates to a method of controlling a memory bank of a system using a microcomputer, and more particularly, to a preassembly method for a microcomputer having a multi-memory bank structure.

통상적으로 어드레싱 스페이스(Addressign Space)가 넓지 않은 중앙처리장치(Central Processing Unit; Micro-processor)를 이용하는 시스템에서 메모리의 어드레스 영역을 확장할 때에는 뱅크 선택 제어회로(Bank Control Circult)를 일반적으로 사용한다.In general, a bank control circuit is generally used to expand an address area of a memory in a system using a central processing unit (Micro-processor) having a small addressing space.

예를들면 16비트(Central Processing Unit)의 경우 64Kbyte 크기의 메모리는 억세스할 수 있다. 이때 CPU를 교체하지 않고 메모리의 크기를 확장하는 방법은 이미 주지된 바와 같이 메모리 뱅크를 이용하는 것이다.For example, in the case of 16 bits (Central Processing Unit), 64Kbyte of memory can be accessed. At this time, a method of expanding the size of the memory without replacing the CPU is to use a memory bank, as is well known.

메모리 뱅크는 제 1 도에 공지된 바와 같이 CPU 어드레스를 OOOOH-FFFFH라 할 때 제 1 램(RAM)과 제 1 롬(ROM)을 제 1 뱅크로 하고, 상기 제 1 롬(ROM)에 병렬로 제 2 롬(ROM)을 접속하여 제 2 뱅크로 하여 제 1 뱅크와 제 2 뱅크를 선택하도록 한다.As is known from FIG. 1, when the CPU address is OOOOH-FFFFH, the memory bank has a first RAM and a first ROM as a first bank, and is parallel to the first ROM. The second ROM is connected to select the first bank and the second bank as the second bank.

상기 제 1 도에 도시된 바와 같은 메모리 맵으로 메모리 뱅크를 구성할 경우 CPU로부터 출력되는 I/O(Input/Output)신호를 디코딩하여 뱅크를 선택하는 회로를 구성하여야 한다.When configuring a memory bank with a memory map as shown in FIG. 1, a circuit for selecting a bank by decoding an input / output (I / O) signal output from a CPU should be configured.

제 2 도는 제 1 도의 메모리 뱅크를 선택하기 위한 공지의 시스템 블럭도로서 10은 CPU, 12는 I/O디코더, 14는 뱅크 레지스터, 16은 메모리 디코더, 20,22는 제 1, 제 2 롬, 18은 제 1 램이다.2 is a well-known system block diagram for selecting a memory bank of FIG. 1, where 10 is a CPU, 12 is an I / O decoder, 14 is a bank register, 16 is a memory decoder, 20 and 22 are first and second ROMs; 18 is the first RAM.

상기 제 1 도와 같은 뱅크를 선택하기 위해서는 뱅크라는 I/O비트를 한 개 또는 한 개 이상을 할당하여 제 2 도와 같이 메모리 디코더(16)로서 뱅크 선택 신호를 발생하여야 한다(제 2 도의 구성에서는 설명이 편의를 위해서 한 개의 비트 A15를 할당한 예를 도시함).In order to select the same bank as the first diagram, a bank selection signal must be generated as the memory decoder 16 as shown in the second diagram by allocating one or more I / O bits called banks. Shows an example of allocating one bit A15 for this convenience).

상기 제 2 도와 같은 시스템에서 제 1 롬(20)과 제 1 램(18)을 사용할 경우 Bank= 0(A15)로 만들어 메모리 디코더(16) 회로에 의해 제 1 롬(20)이 선택되도록 한다. 이때 제 2 롬(22)은 선택되지 않는다. 제 1 롬(20)을 사용하다가 제 2 롬(22)을 사용해야 할 경우 Bank= 0(A15) 으로 만들어 제 2 도의 메모리 디코더 회로(16)에 의해 제 2 롬(22)이 선택되도록 한다. 이때 제 1 롬 (20) 은 선택되지 않는다. 뱅크를 이용할 경우 위와 같이 제 1 롬(20) 제 2 롬(22)을 배타적으로 하나씩 밖에 사용하지 못한다.When the first ROM 20 and the first RAM 18 are used in the same system as the second diagram, Bank = 0 (A15) is used to select the first ROM 20 by the memory decoder 16 circuit. At this time, the second ROM 22 is not selected. If the second ROM 22 is to be used while the first ROM 20 is used, Bank = 0 (A15) is used to select the second ROM 22 by the memory decoder circuit 16 of FIG. At this time, the first ROM 20 is not selected. In the case of using the bank, only the first ROM 20 and the second ROM 22 may be used exclusively as described above.

상기 제 2 도와 같이 뱅크 선택 시스템을 구성한 경우 제 1램(18)에서 제 1 롬(20) 또는 제 2 롬(22)의 어느곳에 있는 서브 루틴을 콜(Call)하더라도 미리 원하는 뱅(Bank)를 선택하여 준다면 아무런 문제없이 사용할 수가 있다. 그러나 제 1 롬(20)이 프로그램에서 제 2 롬(22)의 (Subroutine)을 호출 (Calll)할 수는 없다.In the case of configuring the bank selection system as shown in the second diagram, even if a subroutine in any of the first ROM 20 or the second ROM 22 is called from the first RAM 18, the desired bank is previously selected. If you choose it, you can use it without any problem. However, the first ROM 20 cannot call (Subroutine) of the second ROM 22 in the program.

왜냐하면 제 1 롬(20)에서 제 2 롬(22)으 서브 루틴을 호출(Call)하기 전에 제 1 뱅크에서 제 2 뱅크를 선택해주어야 하는데 뱅크가 바뀌어 버리면 제 1 롬(20)내의 다음 명령어 CPU(10)를 더 이상 수행할 수가 없기 때문이다.This is because the second bank must be selected from the first bank before calling the subroutine from the first ROM 20 to the second ROM 22. If the bank is changed, the next instruction CPU in the first ROM 20 ( 10) can no longer be performed.

일반적으로 프로그램을 작성하는 프로그래머는 이것을 고려하여 제 1 롬(20)과 제 2 롬(22)사이에 직접 서브 루틴을 호출하지 않도록 소프트웨어를 설계한다. 그렇지 않고, 이를 해결하기 위해서는 양쪽 제 1, 제 2 롬(20)(22)의 같은 번지에 같은 명령어를 만들어 놓고 뱅크를 선택하게 하면 된다. 그러나 일반적인 프로그램의 작성은 제 3 도와 같은 작성 흐름에 의해 개발하여 나가기 때문에 상기와 같은 상황을 고려하여 모든 프로그램을 작성한다는 것은 대단히 어렵다. 즉 프로그램 사이즈(Size)가 큰 프로그램을 개발할 경우 매우 복잡하며, 거의 개발 완료 상태에서 서브 루틴들의 뱅크 위치를 바꾸어야 될 필요가 있을 경우 프로그램을 고치는데 많은 노력이 든다.In general, a programmer who writes a program considers this and designs software so as not to call a subroutine directly between the first ROM 20 and the second ROM 22. Otherwise, in order to solve this problem, the same instruction may be made at the same address of both the first and second ROMs 20 and 22 and the bank may be selected. However, it is very difficult to write all programs in consideration of the above situation because general program is developed by the same writing flow as the third diagram. That is, when developing a program having a large program size, it is very complicated, and when it is necessary to change the bank positions of subroutines in the near-developed state, much effort is required to fix the program.

따라서 본 발명의 목적은 각 프로그램의 루틴에서 서브 루틴의 호출위치 정보에 따라 프로그래머가 작성한 프로그램 데이터를 변형시키어 메모리 뱅크 선택 제어를 자동적으로 수행할 수 있도록 하는 프리 어셈블러(Pre-Assembler)를 제공함에 있다.Accordingly, an object of the present invention is to provide a pre-assembler for automatically performing memory bank selection control by transforming program data written by a programmer according to call position information of a subroutine in each program routine. .

본 발명은 다른 목적은 링크 정보 테이블로서 중간 프로그램(Inter mediate program)을 자동으로 생성하여 메모리 뱅크를 자동으로 선택하는 프리 어셈블링 방법을 제공합에 있다.Another object of the present invention is to provide a pre-assembly method of automatically generating an intermediate program as an link information table and automatically selecting a memory bank.

이하 본 발명을 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

제 4 도는 제 1 도와 같은 뱅크 회로에 작성된 프로그램의 일예를 나타낸 것으로 이는 본 발명의 동작예를 보다 손쉽게 하기 위해 나타낸 것이다.4 shows an example of a program written in the same bank circuit as in FIG. 1, which is shown to make the operation of the present invention easier.

(a)는 메인 프로그램으로서 서브 프로그램 SUB1을 호출하는 콤멘드(Command ; Routine)를 가지고 있으며 이는 제 1 램(18)에 저장되어 있다고 가정한다.It is assumed that (a) has a command (Command; Routine) for calling the subprogram SUB1 as a main program, which is stored in the first RAM 18.

(b)는 서브 프로그램 SUB1으로서 서브 프로그램 SUB2를 호출하기 위한 콤멘드(Command ; Routine)가 프로그램되어 있으며 이는 제 1 롬(20)내에 위치하며, (c)는 서브 프로그램 SUB2로서 제 2 롬(22)에 프로그램이 된다. 이때 제 1 롬(20)은 제 1 뱅크(BANK0), 제 2 롬(22)은 제 2 뱅크(BANK1)이다.(b) has a command (Command; Routine) programmed to call the subprogram SUB2 as the subprogram SUB1, which is located in the first ROM 20, and (c) the second ROM 22 as the subprogram SUB2. ) Is a program. In this case, the first ROM 20 is the first bank BANK0 and the second ROM 22 is the second bank BANK1.

제 5 도는 본 발명에 따른 프로그램 작성 흐름도로서, 소스 프로그램의 링크 정보 테이블로서 중간 프로그램(Intermediate Program)을 생성하고, 상기 중간 프로그램으로서 목적 코드(Object Code)를 생성하고, 링크 정보를 이용하여 링크한다.5 is a flow chart for creating a program according to the present invention, which generates an intermediate program as a link information table of a source program, generates an object code as the intermediate program, and links using the link information. .

제 6 도는 본 발명에 따른 링크 정보 테이블로서, 이는 전술한 제 1 도 및 제 2 도에서 제 1 램 (18)과 제 1 롬(20)이 제 1 뱅크(BANK0)이고, 제 2 롬(22)이 제 2 뱅크(BANK1)이라 가정하였을 때의 링크 테이블이다.6 is a link information table according to the present invention, in which the first RAM 18 and the first ROM 20 are the first bank BANK0 and the second ROM 22 in FIGS. 1 and 2 described above. ) Is a link table when it is assumed that the second bank BANK1 is.

제 7 도는 본 발명에 따른 프리 어셈블러의 흐름도이다.7 is a flowchart of a pre-assembler according to the present invention.

제 8 도는 제 7 도에 의해 서로 다른 뱅크를 호출(Call)할 수 있도록 작성된 중간 프로그램이다.FIG. 8 is an intermediate program written to call different banks by FIG.

이하 본 발명에 따른 프리 어셈블링의 동작을 상세히 설명한다.Hereinafter, the operation of preassembly according to the present invention will be described in detail.

지금 제 4 도와 같은 소스 프로그램 제 1 도의 메모리 제 1 램(18)과 제 1, 제 2 롬(ROM)(20)(22)에 저장되어 있는 상태에서 제 2 도의 시스템이 동작되면 CPU(10)는 제 7 도 7a 과정에서 제 6 도와 같은 링크 정보 테이블을 읽어 각 서브 루틴의 뱅크 위치를 내부 메모리 영역에 설정된 뱅크 테이블에 기록한다. 그리고 7b 과정에서 제 4 도 (a)(b)(c)와 같은 소스 프로그램중(a)의 소스 프로그램의 1라인 데이터를 읽어 소스 프로그램의 끝인가를 우선 검색하고, 끝이 아닐때에는 읽어들인 소스 프로그램 1라인을 입력 버퍼에 저장한다.If the system of FIG. 2 is operated while being stored in the first RAM 18 and the first and second ROMs 20 and 22 of the source program FIG. In FIG. 7A, the link information table as shown in FIG. 6 is read, and the bank position of each subroutine is recorded in the bank table set in the internal memory area. Then, in step 7b, the first line data of the source program of (a) of the source program as shown in Fig. 4 (a), (b), (c) is read first to find out whether it is the end of the source program. Store one line of the program in the input buffer.

상기 7d과정후 7e과정에서 서브 루틴의 시작인가를 검색하여, 시작이면 7f과정에서 서브 루틴의 이름을 버퍼(C-sub-name; Call-sub Routine Name Buffer)에 저장하고 7g과정에서 입력 버퍼가 호출 명령어를 가지고 있는가를 검색한다.In step 7d, it is checked whether the subroutine is started. In step 7f, the name of the subroutine is stored in a buffer (C-sub-name; Call-sub Routine Name Buffer). Check if you have a call command.

만약 상기 7g과정의 검색에서 서브 루틴의 호출 명령어를 가지고 있다면 7i 과정에서 호출할 서브 루틴이 C-Sub-name에 저장된 뱅크에 들어있는가를 검색한다. 이때 상기 제 4 도 (a)의 서브 루틴으 호출 명령(Call SUB)은 같은 뱅크에 들어 있으므로 전술한 7b과정으로 반복 수행하게 된다.If the subroutine call instruction is performed in step 7g, the subroutine to be called in step 7i is searched for in the bank stored in the C-Sub-name. At this time, since the subroutine call command (Call SUB) of FIG. 4 (a) is included in the same bank, the above-described process is repeated in step 7b.

한편 상기한 7e과정에서 서브 루틴의 시작이 아니고, 7g과정에서 서브 루틴의 명령을 가지고 있지 않다면 CPU(10) 는 7h과정에서 입력 버퍼의 내용을 출력 호일에 기록한후 전술한 7b과정부터 반복 동작한다.On the other hand, if it is not the start of the subroutine in step 7e and does not have the instruction of the subroutine in step 7g, the CPU 10 repeats the above-described step 7b after recording the contents of the input buffer in the output foil in step 7h. .

상기와 같은 과정의 반복 수행에 의해 제 4 도 (b)의 서브 루틴(5a)(Call SUB2)가 검출되면 전술한 7e과정에서 서브 루틴의 시작을 검출하게 되고, 7f과정에서 서브 루틴의 이름을 C-Sub-name 버퍼에 저장한다.When the subroutine 5a (Call SUB2) of FIG. 4 (b) is detected by repeating the above process, the start of the subroutine is detected in step 7e and the name of the subroutine is checked in step 7f. Store in the C-Sub-name buffer.

그리고 7g과정을 수행하여 호출(Call) 명령어를 가지고 있느지 검색한후 호출 명령이면 7i과정에서 호출할 서브 루틴이 C-Sub-name과 같은 뱅크에 있는가를 검색한다.In step 7g, it is checked whether the call instruction is included. If the call instruction is executed, it is checked whether the subroutine to be called in step 7i is in the same bank as the C-Sub-name.

이때 상기 서브 루틴 SUB1의 뱅크는 제 1 뱅크(BANK0)이고 서브 루틴 SUB2는 제 2 뱅크(BANK1)임으로 다르다고 판단(제 6 도의 뱅크 정보 테이블 참조)하고, 7j과정에서 중간 프로그램을 생성한다.At this time, it is determined that the bank of the subroutine SUB1 is the first bank BANK0 and the subroutine SUB2 is the second bank BANK1 (see the bank information table of FIG. 6), and generates an intermediate program in step 7j.

7j과정에서 CPU는 출력 파일에 다음 4가지의 명령을 삽입한다.In step 7j, the CPU inserts the following four commands into the output file:

1. mem1에 갈 곳의 뱅크 비트 정보 즉 제 2 뱅크(BANK1)의 비트 정보를 기록하고,1. Record the bank bit information of the place to go to mem1, that is, the bit information of the second bank BANK1,

2. mem2에 갈곳의 어드레스 정보인 제 2 롬(22)의 스타트 어드레스를 기록하고,2. Write the start address of the second ROM 22, which is the address information of the location to mem2,

3. mem3에 돌아올 뱅크 비트 정보를 기록하며,3. Record the bank bit information to return to mem3,

4. 호출전환(Call Switcher)정보를 세트하여 제 8 도(D)와 같이 출력 파일을 생성한다.4. Set the call switcher information to generate the output file as shown in FIG.

이후 제 7 도 7b과정으로 점프하여 반복 수행함으로서 뱅크가 다른 서브 루틴에 대한 중간 프로그램을 작성한다.Thereafter, the process jumps to the process shown in FIG. 7B to be repeated to create an intermediate program for another subroutine.

상기 제 7 도와 같은 프리 어셈블러(Pre- assembler)에 의해 제 4 도 (a)(b)(c)와 같은 소스 프로그램을 제 8 도와 같은 흐름을 가진 프로그램으로 변경된다. 결과적으로 볼 때 제 8 도 (d)와 같은 중간 프로그램인 스위치터 루틴이 새로 들어 갔으며(이 스위치터 루틴은 뱅크에 상관없이 사용 가능한 RAM 영역에 할당된다) 몇 개의 명령어로 바뀌었다. 바뀐 프로그램의 메인(Main)(Main은 뱅크에 관계없이 항상 사용 가능하게 되어 있음)에서 서브 프로그램(SUB1)(SUB1은 제 1 롬(20) 즉 BANK0에 들어 있음)을 호출 (Call)할때는 그대로 별 문제 없이 수행되나, 서브 프로그램(SUB1)에서 서브 프로그램(SUB2)(SUB2는 제 2 롬(22) 즉 BANK1에 들어 있음)를 호출(Call)할 때 서로 다른 뱅크를 호출하는 것이므로 일단 서브 프로그램 SUB2를 부르기 전에 가고자 하는 SUB2의 BANK1과 돌아올 BANK0을 각각 mem1, mem3에 저장하고, SUB2의 어드레스(Address)를 mem2에 저장하고 스위치터(switcher)를 호출하게 된다. 거기에서는 앞서 저장된 mem1의 뱅크를 선택 제 2 롬 (22)을 선택한 다음 서브 프로그램(SUB2)을 호출하고 서브 프로그램(SUB2)의 수행을 마친 다음 리턴(Return)되면 본래의 서브 프로그램(SUB1)로 돌아오기 위해 mem3에 저장된 뱅크를 선택 (제 1 롬(20)을 선택)하고 리턴(Return) 동작이 일어난다. 이렇게 하여 SUB1 서브 프로그램(SUB2)에서 서브 프로그램으로 돌아오게 된다.A pre-assembler as shown in FIG. 7 converts a source program as shown in FIG. 4 (a) (b) (c) into a program having the same flow as in FIG. As a result, a new switcher routine, an intermediate program as shown in FIG. 8 (d), is newly entered (this switcher routine is allocated to the available RAM area regardless of the bank) and replaced with a few instructions. When calling the subprogram SUB1 (SUB1 is included in the first ROM 20 or BANK0) from the main of the changed program (Main is always available regardless of the bank), it is still different. This can be done without any problem, but the subprogram SUB2 is called when the subprogram SUB2 (SUB2 is in the second ROM 22 or BANK1) is called in a different bank. Before calling, it saves BANK1 of SUB2 and BANK0 to return to mem1 and mem3 respectively, saves address of SUB2 to mem2 and calls the switcher. There, select the bank of mem1 previously stored, select the second ROM 22, then call the subprogram SUB2, finish execution of the subprogram SUB2, and return to the original subprogram SUB1 when returned. To return, select the bank stored in mem3 (select the first ROM 20) and a Return operation takes place. In this way, the SUB1 subprogram SUB2 returns to the subprogram.

Claims (2)

서브 루틴을 호출하는 프로그램 데이터가 저장된 제 1 뱅크와, 상기 제 1 뱅크의 서브 루틴의 호출 명령에 의해 개시되는 서브 루틴의 프로그램이 저장되어 제 2 뱅크롸 상기 제 1, 제 2 뱅크중 하나를 선택하여 시스템을 동작시키는 제어부를 가지는 다중 뱅크 구조를 가지는 시스템의 뱅크 선택 프리 어셈블링 방법에 있어서, 링크 정보를 읽어 각 서브 루틴들의 뱅크 위치를 뱅크 테이블에 저장하는 제 1 과정과, 소스의 1라인의 정보를 리이드하여 소스의 끝인가를 검색하는 제 2 과정과, 상기 제 2 과정이 검색결과 소스의 끝일시 종료하고 끝이 아닐시에 읽어들인 소스 프로그램의 한줄을 입력 버퍼에 저장하여 서브 루틴이 시작인가를 검색하는 제 3 과정과, 상기 제 3 과정의 검색결과 서브 루틴의 시작이라 판단시에 서브 루팅의 이름을 내부 버퍼에 저장한 후 호출 명령이 있는가를 검색하며, 서브 루틴이 시작이 아닐수 바로 호출 명령이 있는가를 검색하는 제 4 과정과, 상기 제 4 과정의 검색결과 호출 명령이 없다고 판단시 입력 버퍼의 내용을 바로 출력 버퍼에 기록하고, 호출 명령이 있다고 판단시 호출한 서브 루틴이 내부 버퍼와 같은 뱅크에 있는가를 검색하는 제 5 과정과, 상기 제 5 과정의 검색결과 같은 뱅크가 아니라고 판단시 상기 제 2 과정으로 리턴하고, 같은 뱅크라고 판단시 뱅크 스위칭을 중간 프로그램을 생성하는 제 6 과정으로 이루어짐을 특징으로 하는 방법.A first bank in which program data for calling a subroutine is stored; and a program of a subroutine initiated by a call instruction of a subroutine of the first bank is stored to select one of the first bank and the second bank; A method of pre-assembling a bank of a system having a multi-bank structure having a control unit for operating the system, the method comprising: a first process of reading link information and storing a bank position of each subroutine in a bank table; A second step of reading information at the end of the source by reading information, and storing the first line of the source program read in the input buffer when the second step ends and ends the search result source and starts the subroutine. Storing the name of the subrouting in an internal buffer when it is determined that the third process of searching for authorization is the start of the search result subroutine of the third process; Search for whether there is a call command, and if the subroutine is not the start, immediately detects whether there is a call command, and if it is determined that there is no call result call command of the fourth process, the contents of the input buffer are immediately written to the output buffer. And a fifth step of searching whether the called subroutine is in the same bank as the internal buffer when determining that there is a call instruction, and returning to the second step when determining that the call is not the same bank as the search result of the fifth step, And a sixth step of generating an intermediate program when switching to the bank. 제 1 항에 있어서, 제 5 과정은 서브 루틴을 호출할 명령어가 있는 루틴의 뱅크로부터 호출할 서브 루틴의 뱅크로의 뱅크 비트 정보 및 어드레스 정보와 되돌아올 뱅크 비트 및 호출전환 비트를 내부 소정 영역에 기록하는 과정임을 특징으로 하는 방법.The method of claim 1, wherein the fifth process includes the bank bit information and the address information from the bank of the routine having the instruction to call the subroutine to the bank of the subroutine to be called, and the bank bit and the call change bit to be returned to an internal predetermined area. The process of recording.
KR1019910021280A 1991-11-26 1991-11-26 Bank choosing pre-assembling method of multi-memory bank system KR960004060B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019910021280A KR960004060B1 (en) 1991-11-26 1991-11-26 Bank choosing pre-assembling method of multi-memory bank system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019910021280A KR960004060B1 (en) 1991-11-26 1991-11-26 Bank choosing pre-assembling method of multi-memory bank system

Publications (2)

Publication Number Publication Date
KR930010731A KR930010731A (en) 1993-06-23
KR960004060B1 true KR960004060B1 (en) 1996-03-26

Family

ID=19323530

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019910021280A KR960004060B1 (en) 1991-11-26 1991-11-26 Bank choosing pre-assembling method of multi-memory bank system

Country Status (1)

Country Link
KR (1) KR960004060B1 (en)

Also Published As

Publication number Publication date
KR930010731A (en) 1993-06-23

Similar Documents

Publication Publication Date Title
US5182807A (en) Assembler system for determining when to compile source code modules
KR920004962A (en) Virtual long command memory device for digital signal processing device and method of generating the command
JPS6363938B2 (en)
US4999770A (en) Command controlled multi-storage space protection key pretesting system permitting access regardless of test result if selected key is predetermined value
JPH0346850B2 (en)
US5623640A (en) Data memory system that exchanges data in data locations with other data locations based on the number of writes to the memory
JPH05165718A (en) Processing system
JPS6122817B2 (en)
KR960004060B1 (en) Bank choosing pre-assembling method of multi-memory bank system
IE61306B1 (en) Method and device to execute two instruction sequences in an order determined in advance
KR0155178B1 (en) Imformation processing system
US5896505A (en) Data transfer system and method for dividing an original data read instruction into individual read demands for each data element
US5148531A (en) System for executing a conditional statement without reading program data part that does not satisfy the conditional clause
JP2002319292A (en) Memory device and read-out method for the memory device
JP2503634B2 (en) Micro program controller
JP2570407B2 (en) Programmable controller
JPS6327795B2 (en)
KR19990037395A (en) System and method for executing two word instructions in a single cycle
JP2000066966A (en) I/o log recording circuit
JPH06101017B2 (en) Data-based access mode dynamic change method
JPS6144339B2 (en)
JPH07334353A (en) Microcomputer system
JPH05189212A (en) Linking method
JPS6235146B2 (en)
JPH0823823B2 (en) Language processing program processing method

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20000225

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee