JPH103385A - Icカード及びアプリケーション・プログラム導入方法 - Google Patents
Icカード及びアプリケーション・プログラム導入方法Info
- Publication number
- JPH103385A JPH103385A JP8156626A JP15662696A JPH103385A JP H103385 A JPH103385 A JP H103385A JP 8156626 A JP8156626 A JP 8156626A JP 15662696 A JP15662696 A JP 15662696A JP H103385 A JPH103385 A JP H103385A
- Authority
- JP
- Japan
- Prior art keywords
- address
- application program
- program
- card
- cpu
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
(57)【要約】
【課題】 格納されるメモリ領域の絶対アドレスをあら
かじめ確認する必要なく、アプリケーション・プログラ
ムを導入可能なICカード等を提供する。 【解決手段】 CPU(18)と、前記CPUが実行可
能な汎用プログラムを格納する読み出し専用メモリ(1
2)と、前記CPUが実行可能な1又は2以上のアプリ
ケーション・プログラムを必要に応じて格納される書き
換え可能な不揮発性メモリ(16)とを備えるICカー
ドにおいて、前記汎用プログラムは、前記アプリケーシ
ョン・プログラムに含まれる再配置可能なCPU命令コ
ードを、前記アプリケーション・プログラムが格納され
る又は格納された領域のアドレスに対応させて書き換え
るアドレス変換プログラムを含む。
かじめ確認する必要なく、アプリケーション・プログラ
ムを導入可能なICカード等を提供する。 【解決手段】 CPU(18)と、前記CPUが実行可
能な汎用プログラムを格納する読み出し専用メモリ(1
2)と、前記CPUが実行可能な1又は2以上のアプリ
ケーション・プログラムを必要に応じて格納される書き
換え可能な不揮発性メモリ(16)とを備えるICカー
ドにおいて、前記汎用プログラムは、前記アプリケーシ
ョン・プログラムに含まれる再配置可能なCPU命令コ
ードを、前記アプリケーション・プログラムが格納され
る又は格納された領域のアドレスに対応させて書き換え
るアドレス変換プログラムを含む。
Description
【0001】
【発明の属する技術分野】本発明は、CPUが実行可能
な1又は2以上のアプリケーション・プログラムを書き
換え可能な不揮発性メモリに格納することが可能なIC
カード及びそのICカードへのアプリケーション・プロ
グラム導入方法に関するものである。
な1又は2以上のアプリケーション・プログラムを書き
換え可能な不揮発性メモリに格納することが可能なIC
カード及びそのICカードへのアプリケーション・プロ
グラム導入方法に関するものである。
【0002】
【従来の技術】ICカードは、磁気カードに代わる新し
い情報記憶媒体として、近年注目を集めている。特に、
CPUを内蔵したICカードは、高度なセキュリティを
実現できることから、高度情報化社会の種々の分野にお
いて利用されることが期待されている。
い情報記憶媒体として、近年注目を集めている。特に、
CPUを内蔵したICカードは、高度なセキュリティを
実現できることから、高度情報化社会の種々の分野にお
いて利用されることが期待されている。
【0003】一般にICカードは、ROM、RAM、E
EPROMの3種類のメモリと、それらメモリにアクセ
スするCPUとを備えている。EEPROMは、書換え
可能な不揮発性メモリであり、ICカードユーザの個人
情報等のデータが保存される。RAMは、CPUがプロ
グラムを実行するときに作業領域として使用される揮発
性のメモリである。ROMは、読み出し専用メモリであ
り、CPUが実行すべきプログラムが格納されている。
EPROMの3種類のメモリと、それらメモリにアクセ
スするCPUとを備えている。EEPROMは、書換え
可能な不揮発性メモリであり、ICカードユーザの個人
情報等のデータが保存される。RAMは、CPUがプロ
グラムを実行するときに作業領域として使用される揮発
性のメモリである。ROMは、読み出し専用メモリであ
り、CPUが実行すべきプログラムが格納されている。
【0004】ROMが格納するプログラムは、ICカー
ドの用途ごとに異なる。したがって、ICカードの用途
が多種多様化すると、それだけ多くの種類のROMを用
意することとなる。しかし、一般にROMは、その開発
に多大の費用を必要とする。このために、ICカードの
用途の多様化に合わせ、ROMを多品種少量生産するこ
ととすれば、ROMの単価が上がり、ICカードの製造
原価が増大する。
ドの用途ごとに異なる。したがって、ICカードの用途
が多種多様化すると、それだけ多くの種類のROMを用
意することとなる。しかし、一般にROMは、その開発
に多大の費用を必要とする。このために、ICカードの
用途の多様化に合わせ、ROMを多品種少量生産するこ
ととすれば、ROMの単価が上がり、ICカードの製造
原価が増大する。
【0005】上記の問題に対し、従来ROMに格納され
ていたプログラムを2種類に大別し、一方をROMに、
他方をEEPROMに格納するICカードが提案されて
いる。ここで、2種類のプログラムの一方は、ICカー
ドの用途によらず汎用的に使用できるプログラム(以下
「汎用プログラム」という)である。また、他方は、I
Cカードの各種用途固有の処理を行うプログラム(以下
「アプリケーション・プログラム」という)である。
ていたプログラムを2種類に大別し、一方をROMに、
他方をEEPROMに格納するICカードが提案されて
いる。ここで、2種類のプログラムの一方は、ICカー
ドの用途によらず汎用的に使用できるプログラム(以下
「汎用プログラム」という)である。また、他方は、I
Cカードの各種用途固有の処理を行うプログラム(以下
「アプリケーション・プログラム」という)である。
【0006】上記のICカードでは、全用途のICカー
ドについて、同一のROMを使用することとなるので、
安価なROMを用いた安価なICカードが生産される。
一方、ICカードのEEPROMには、各用途に対応し
たアプリケーション・プログラムが書き込まれることか
ら、用途に応じた木目細かい処理を行うICカードの提
供が可能である。
ドについて、同一のROMを使用することとなるので、
安価なROMを用いた安価なICカードが生産される。
一方、ICカードのEEPROMには、各用途に対応し
たアプリケーション・プログラムが書き込まれることか
ら、用途に応じた木目細かい処理を行うICカードの提
供が可能である。
【0007】アプリケーション・プログラムを作成する
場合には、まずCPUに対応したソース・コードが、ア
センブラ言語等によって作成される。作成されたソース
・コードは、ICメーカーが用意したコンパイル用のソ
フトウェアツールを用いてオブジェクト・コードに変換
される。このオブジェクト・コードには、未確定なアド
レスを有するいわゆる再配置可能なCPU命令コードが
含まれている。未確定なアドレスとは、例えばCPUの
コントロールをジャンプさせる先のアドレスである。こ
のようなアドレスは、EEPROMが格納される領域の
絶対アドレスが確定しなければ決定することができな
い。このために、再配置可能なCPU命令コードには、
将来正規のアドレスが確定したときに、その正規のアド
レスと書き換えられる暫定的なアドレスが与えられてい
る。
場合には、まずCPUに対応したソース・コードが、ア
センブラ言語等によって作成される。作成されたソース
・コードは、ICメーカーが用意したコンパイル用のソ
フトウェアツールを用いてオブジェクト・コードに変換
される。このオブジェクト・コードには、未確定なアド
レスを有するいわゆる再配置可能なCPU命令コードが
含まれている。未確定なアドレスとは、例えばCPUの
コントロールをジャンプさせる先のアドレスである。こ
のようなアドレスは、EEPROMが格納される領域の
絶対アドレスが確定しなければ決定することができな
い。このために、再配置可能なCPU命令コードには、
将来正規のアドレスが確定したときに、その正規のアド
レスと書き換えられる暫定的なアドレスが与えられてい
る。
【0008】次に、ICメーカーが用意した上記とは異
なるソフトウェアツールを用いて、オブジェクト・コー
ドに対するリンク処理が行われ、実行形式のCPU命令
コードによるアプリケーション・プログラムが生成され
る。リンク処理とは、アプリケーション・プログラムが
格納されるメモリ領域のアドレスに基づき、再配置可能
なCPU命令コードに与えるべき絶対アドレスを確定
し、この絶対アドレスを用いてそのCPU命令コードを
書き換える処理をいう。つまり、リンク処理により、再
配置可能なCPU命令コードは、絶対アドレス形式のC
PU命令コードに書き換えられるのである。
なるソフトウェアツールを用いて、オブジェクト・コー
ドに対するリンク処理が行われ、実行形式のCPU命令
コードによるアプリケーション・プログラムが生成され
る。リンク処理とは、アプリケーション・プログラムが
格納されるメモリ領域のアドレスに基づき、再配置可能
なCPU命令コードに与えるべき絶対アドレスを確定
し、この絶対アドレスを用いてそのCPU命令コードを
書き換える処理をいう。つまり、リンク処理により、再
配置可能なCPU命令コードは、絶対アドレス形式のC
PU命令コードに書き換えられるのである。
【0009】
【発明が解決しようとする課題】従来のICカードで
は、上記の一連の処理を経て取得された実行形式のアプ
リケーション・プログラムをEEPROMに格納するこ
とにより、ICカードを各種用途へ適切に対応させるこ
とを可能としていた。しかし、ICカードに対するユー
ザーの要求は年々高度化・複雑化し、多種多様の機能を
ユーザー側で任意に選択・実行できる、柔軟性の高いI
Cカードが望まれるようになっている。このような要求
に応える一つの方法として、EEPROMに2個以上の
のアプリケーション・プログラムを格納することが考え
られる。
は、上記の一連の処理を経て取得された実行形式のアプ
リケーション・プログラムをEEPROMに格納するこ
とにより、ICカードを各種用途へ適切に対応させるこ
とを可能としていた。しかし、ICカードに対するユー
ザーの要求は年々高度化・複雑化し、多種多様の機能を
ユーザー側で任意に選択・実行できる、柔軟性の高いI
Cカードが望まれるようになっている。このような要求
に応える一つの方法として、EEPROMに2個以上の
のアプリケーション・プログラムを格納することが考え
られる。
【0010】しかし、アプリケーション・プログラム
は、各種用途に合わせて任意に製作されるものであり、
このために各アプリケーション・プログラムの長さ(バ
イト数)はまちまちである。したがって、EEPROM
に2個以上のアプリケーション・プログラムを格納しよ
うとする場合には、先に格納されたプログラムにより占
有されているメモリ領域が一定でないために、次のアプ
リケーション・プログラムを格納すべきメモリ領域(絶
対アドレス)を特定することができない。この結果、第
2番目以降のアプリケーション・プログラムをEEPR
OMに導入しようとした場合に、当該プログラムのリン
ク処理を適切に行うことができず、実行形式のアプリケ
ーション・プログラムを生成できないという問題があっ
た。
は、各種用途に合わせて任意に製作されるものであり、
このために各アプリケーション・プログラムの長さ(バ
イト数)はまちまちである。したがって、EEPROM
に2個以上のアプリケーション・プログラムを格納しよ
うとする場合には、先に格納されたプログラムにより占
有されているメモリ領域が一定でないために、次のアプ
リケーション・プログラムを格納すべきメモリ領域(絶
対アドレス)を特定することができない。この結果、第
2番目以降のアプリケーション・プログラムをEEPR
OMに導入しようとした場合に、当該プログラムのリン
ク処理を適切に行うことができず、実行形式のアプリケ
ーション・プログラムを生成できないという問題があっ
た。
【0011】一方、上記の問題に対し、ICカードから
リンク処理を行う外部装置へ、アプリケーション・プロ
グラムが格納されるべきアドレスを通知し、それにより
リンク処理の実行を可能とすることが考えれれる。しか
しながら、この場合に外部装置は、実行形式のアプリケ
ーション・プログラムを生成するための一連の処理に加
え、さらに、ICカードから必要なアドレスを取得する
ための通信処理とを実行しなければならない。このため
に、ICカードにアプリケーション・プログラムを導入
するための処理時間が大となるという問題があった。
リンク処理を行う外部装置へ、アプリケーション・プロ
グラムが格納されるべきアドレスを通知し、それにより
リンク処理の実行を可能とすることが考えれれる。しか
しながら、この場合に外部装置は、実行形式のアプリケ
ーション・プログラムを生成するための一連の処理に加
え、さらに、ICカードから必要なアドレスを取得する
ための通信処理とを実行しなければならない。このため
に、ICカードにアプリケーション・プログラムを導入
するための処理時間が大となるという問題があった。
【0012】そこで、本発明の課題は、格納されるメモ
リ領域の絶対アドレスをあらかじめ確認する必要なく、
アプリケーション・プログラムを不揮発性メモリに導入
することが可能なICカード及びアプリケーション・プ
ログラム導入方法を提供することである。
リ領域の絶対アドレスをあらかじめ確認する必要なく、
アプリケーション・プログラムを不揮発性メモリに導入
することが可能なICカード及びアプリケーション・プ
ログラム導入方法を提供することである。
【0013】
【課題を解決するための手段】前記課題を解決するため
に、請求項1に係る発明は、CPU(18)と、前記C
PUが実行可能な汎用プログラムを格納する読み出し専
用メモリ(12)と、前記CPUが実行可能な1又は2
以上のアプリケーション・プログラムを必要に応じて格
納される書き換え可能な不揮発性メモリ(16)とを備
えるICカードにおいて、前記汎用プログラムは、前記
アプリケーション・プログラムに含まれる再配置可能な
CPU命令コードを、前記アプリケーション・プログラ
ムが格納される又は格納された領域のアドレスに対応さ
せて書き換えるアドレス変換プログラムを含むことを特
徴とする。
に、請求項1に係る発明は、CPU(18)と、前記C
PUが実行可能な汎用プログラムを格納する読み出し専
用メモリ(12)と、前記CPUが実行可能な1又は2
以上のアプリケーション・プログラムを必要に応じて格
納される書き換え可能な不揮発性メモリ(16)とを備
えるICカードにおいて、前記汎用プログラムは、前記
アプリケーション・プログラムに含まれる再配置可能な
CPU命令コードを、前記アプリケーション・プログラ
ムが格納される又は格納された領域のアドレスに対応さ
せて書き換えるアドレス変換プログラムを含むことを特
徴とする。
【0014】請求項2に係る発明は、請求項1に記載の
ICカードにおいて、前記汎用プログラムは、前記アプ
リケーション・プログラムが格納可能である又は格納さ
れた領域の先頭アドレスを特定する先頭アドレス特定プ
ログラムを含み、前記アプリケーション・プログラムに
含まれる再配置可能なCPU命令コードは、所定の基準
値に対し相対的に定められたアドレスを有し、前記アド
レス変換プログラムは、前記基準値と、前記先頭アドレ
ス特定プログラムが特定した先頭アドレスの値との差を
再配置可能な前記CPU命令コードが有するアドレスに
加算又は減算することにより再配置可能な前記CPU命
令コードを書き換えることを特徴としている。
ICカードにおいて、前記汎用プログラムは、前記アプ
リケーション・プログラムが格納可能である又は格納さ
れた領域の先頭アドレスを特定する先頭アドレス特定プ
ログラムを含み、前記アプリケーション・プログラムに
含まれる再配置可能なCPU命令コードは、所定の基準
値に対し相対的に定められたアドレスを有し、前記アド
レス変換プログラムは、前記基準値と、前記先頭アドレ
ス特定プログラムが特定した先頭アドレスの値との差を
再配置可能な前記CPU命令コードが有するアドレスに
加算又は減算することにより再配置可能な前記CPU命
令コードを書き換えることを特徴としている。
【0015】請求項3に係る発明は、CPU(18)が
実行可能な1又は2以上のアプリケーション・プログラ
ムを書き換え可能な不揮発性メモリ(16)に格納する
ことが可能なICカードへのアプリケーション・プログ
ラム導入方法において、前記ICカードの外部において
作成された、再配置可能なCPU命令コードを含む前記
アプリケーション・プログラムを前記ICカード内部へ
導入し、前記ICカード内部において、前記アプリケー
ション・プログラムが格納される又は格納された領域の
アドレスに対応させて、再配置可能な前記CPU命令コ
ードを書き換えることを特徴とする。
実行可能な1又は2以上のアプリケーション・プログラ
ムを書き換え可能な不揮発性メモリ(16)に格納する
ことが可能なICカードへのアプリケーション・プログ
ラム導入方法において、前記ICカードの外部において
作成された、再配置可能なCPU命令コードを含む前記
アプリケーション・プログラムを前記ICカード内部へ
導入し、前記ICカード内部において、前記アプリケー
ション・プログラムが格納される又は格納された領域の
アドレスに対応させて、再配置可能な前記CPU命令コ
ードを書き換えることを特徴とする。
【0016】
【発明の実施の形態】以下、図面等を参照して、本発明
に係る実施形態について、さらに詳しく説明する。図1
は、本発明に係るICカードの構成を示す図である。図
1に示されるように、ICカード10は、読み出し専用
メモリであるROM12、揮発性メモリであるRAM1
4、随時書換え可能な不揮発性メモリのEEPROM1
6及びそれらメモリにアクセスするCPU18を備えて
いる。
に係る実施形態について、さらに詳しく説明する。図1
は、本発明に係るICカードの構成を示す図である。図
1に示されるように、ICカード10は、読み出し専用
メモリであるROM12、揮発性メモリであるRAM1
4、随時書換え可能な不揮発性メモリのEEPROM1
6及びそれらメモリにアクセスするCPU18を備えて
いる。
【0017】また、ICカード10は、リーダ・ライタ
(不図示)と電気信号等の授受を行うための複数の接点
(Vcc〜GND)を備えている。ICカードをリーダ
・ライタに挿入すると、リーダ・ライタの接点がこのI
Cカードの接点と接続され、電気信号の授受が行われ
る。各接点には、それぞれ異なる電気信号が割り付けら
れている。例えば、VccはICが動作するために必要
な電源電圧の供給を受けるための接点であり、I/0
は、CPUがリーダ・ライタと通信を行うための接点
(シリアルポート)である。
(不図示)と電気信号等の授受を行うための複数の接点
(Vcc〜GND)を備えている。ICカードをリーダ
・ライタに挿入すると、リーダ・ライタの接点がこのI
Cカードの接点と接続され、電気信号の授受が行われ
る。各接点には、それぞれ異なる電気信号が割り付けら
れている。例えば、VccはICが動作するために必要
な電源電圧の供給を受けるための接点であり、I/0
は、CPUがリーダ・ライタと通信を行うための接点
(シリアルポート)である。
【0018】CPU18は、上記接点を介してリーダ・
ライタからコマンドを付与され、そのコマンドに従いR
OM12又はEEPROM16に格納されているプログ
ラムを実行し、その結果、EEPROM16へのデータ
の書き込み、読み出し等を行う。なお、本実施形態で
は、CPU18が実行すべきコマンドを前述した汎用プ
ログラムとアプリケーション・プログラムとに分割し、
汎用プログラムをROM12に、アプリケーション・プ
ログラムをEEPROM16に格納している。
ライタからコマンドを付与され、そのコマンドに従いR
OM12又はEEPROM16に格納されているプログ
ラムを実行し、その結果、EEPROM16へのデータ
の書き込み、読み出し等を行う。なお、本実施形態で
は、CPU18が実行すべきコマンドを前述した汎用プ
ログラムとアプリケーション・プログラムとに分割し、
汎用プログラムをROM12に、アプリケーション・プ
ログラムをEEPROM16に格納している。
【0019】図2は、本実施形態の各メモリーに割り付
けられているアドレスの一例を示す図である。本実施形
態では、例えばROM12にH’0000〜H’27F
F、RAM14にH’4000〜H’40FF、EEP
ROM16にH’6000〜H’7FFFなるアドレス
を割り当てている。なお、本明細書において数値の前に
付されている「H’」は、その数値が16進数に基づい
て表記されていることを意味する。
けられているアドレスの一例を示す図である。本実施形
態では、例えばROM12にH’0000〜H’27F
F、RAM14にH’4000〜H’40FF、EEP
ROM16にH’6000〜H’7FFFなるアドレス
を割り当てている。なお、本明細書において数値の前に
付されている「H’」は、その数値が16進数に基づい
て表記されていることを意味する。
【0020】図3は、EEPROM16のメモリ・マッ
プを示す図である。本実施形態では、EEPROM16
の先頭の領域、すなわちH’6000からH’600F
をシステムエリアとして確保している。システムエリア
の先頭アドレスH’6000には、変数NOAが格納さ
れている。NOAは、EEPROM16に格納(登録)
されているアプリケーション・プログラムの個数を示す
変数である。NOAは、0に初期設定され、後述するよ
うに1のアプリケーション・プログラムがEEPROM
16に格納されるごとにその値を1ずつ加算される。ア
ドレスH’6001〜H’600Fまでの領域(RF
U)は、将来ICカードの仕様を変更したときに、その
仕様において必要とされる各種パラメータ等を格納する
ための予備的な空白領域である。
プを示す図である。本実施形態では、EEPROM16
の先頭の領域、すなわちH’6000からH’600F
をシステムエリアとして確保している。システムエリア
の先頭アドレスH’6000には、変数NOAが格納さ
れている。NOAは、EEPROM16に格納(登録)
されているアプリケーション・プログラムの個数を示す
変数である。NOAは、0に初期設定され、後述するよ
うに1のアプリケーション・プログラムがEEPROM
16に格納されるごとにその値を1ずつ加算される。ア
ドレスH’6001〜H’600Fまでの領域(RF
U)は、将来ICカードの仕様を変更したときに、その
仕様において必要とされる各種パラメータ等を格納する
ための予備的な空白領域である。
【0021】アドレスH’6010以降は、アプリケー
ション・プログラムを格納することが可能な領域であ
る。図3には、一例として、2つのアプリケーション・
プログラムが格納されている状態が示されている。第1
のアプリケーション・プログラムはH’6010〜H’
607Fの領域に、第2のアプリケーション・プログラ
ムは、H’6080〜H’60DBの領域にそれぞれ格
納されている。このように本実施形態では、2以上のア
プリケーション・プログラムを格納する場合は、後のプ
ログラムを先のプログラムの直後に格納し、それらの間
に未使用のメモリ領域が存在しないようにしている。す
なわち、本実施形態では、限られたメモリ資源を最大限
有効に活用できるよう、アプリケーション・プログラム
をEEPROM16に格納しているのである。なお、ア
プリケーション・プログラムの具体的な格納方法につい
ては、図9等において詳細に説明する。
ション・プログラムを格納することが可能な領域であ
る。図3には、一例として、2つのアプリケーション・
プログラムが格納されている状態が示されている。第1
のアプリケーション・プログラムはH’6010〜H’
607Fの領域に、第2のアプリケーション・プログラ
ムは、H’6080〜H’60DBの領域にそれぞれ格
納されている。このように本実施形態では、2以上のア
プリケーション・プログラムを格納する場合は、後のプ
ログラムを先のプログラムの直後に格納し、それらの間
に未使用のメモリ領域が存在しないようにしている。す
なわち、本実施形態では、限られたメモリ資源を最大限
有効に活用できるよう、アプリケーション・プログラム
をEEPROM16に格納しているのである。なお、ア
プリケーション・プログラムの具体的な格納方法につい
ては、図9等において詳細に説明する。
【0022】EEPROM16に格納されているアプリ
ケーション・プログラムは、an_1からapplication
program までの5つの情報から構成されている。an_
1及びapplication _nameは、アプリケーション・プロ
グラムを識別するための情報である。すなわち、applic
ation _nameは、当該アプリケーション・プログラムの
名前であり、an_1は、application _nameの長さ
(バイト数)を示す1バイトのデータである。
ケーション・プログラムは、an_1からapplication
program までの5つの情報から構成されている。an_
1及びapplication _nameは、アプリケーション・プロ
グラムを識別するための情報である。すなわち、applic
ation _nameは、当該アプリケーション・プログラムの
名前であり、an_1は、application _nameの長さ
(バイト数)を示す1バイトのデータである。
【0023】NA_ADDは、当該アプリケーション・
プログラムの次に格納されている、又は、格納されるべ
きアプリケーション・プログラムの先頭アドレスを示す
2バイトのデータである。図3の例では、第1のアプリ
ケーション・プログラムが有するNA_ADDは、第2
番目のアプリケーション・プログラムの先頭アドレス
H’6080を示している。また、第2番目のアプリケ
ーション・プログラムが有するNA_ADDは、将来第
3番目のアプリケーション・プログラムが格納されるべ
き領域の先頭アドレスH’60DCを示している。な
お、本実施形態では、NA_ADDは、必ずapplicatio
n _nameの次の領域に格納される。
プログラムの次に格納されている、又は、格納されるべ
きアプリケーション・プログラムの先頭アドレスを示す
2バイトのデータである。図3の例では、第1のアプリ
ケーション・プログラムが有するNA_ADDは、第2
番目のアプリケーション・プログラムの先頭アドレス
H’6080を示している。また、第2番目のアプリケ
ーション・プログラムが有するNA_ADDは、将来第
3番目のアプリケーション・プログラムが格納されるべ
き領域の先頭アドレスH’60DCを示している。な
お、本実施形態では、NA_ADDは、必ずapplicatio
n _nameの次の領域に格納される。
【0024】apl_1は、NA_ADDの次に格納さ
れている2バイトのデータであり、その直後に格納され
ているapplication program の長さ(バイト数)を示し
ている。application program は、アプリケーション・
プログラムのCPU命令コード、及びプログラム実行時
に参照されるべきデータ等の集合である。
れている2バイトのデータであり、その直後に格納され
ているapplication program の長さ(バイト数)を示し
ている。application program は、アプリケーション・
プログラムのCPU命令コード、及びプログラム実行時
に参照されるべきデータ等の集合である。
【0025】図4は、本実施形態において、アプリケー
ション・プログラムの作成に使用するアセンブラ言語の
一部の命令のフォーマットを示す図である。各命令は、
全て4バイトより構成されている。各命令の意味内容
は、図中上段より順に、イコールの場合にコントロール
をジャンプする(BEQ)、無条件にコントロールをジ
ャンプする(BRA)、2つのパラメータを比較する
(CMP)、第3及び第4バイトの情報(abs)によ
り指定されるサブルーチンにジャンプする(JSR)、
データを移動する(MOV)、コントロールをリターン
する(RTS)である。
ション・プログラムの作成に使用するアセンブラ言語の
一部の命令のフォーマットを示す図である。各命令は、
全て4バイトより構成されている。各命令の意味内容
は、図中上段より順に、イコールの場合にコントロール
をジャンプする(BEQ)、無条件にコントロールをジ
ャンプする(BRA)、2つのパラメータを比較する
(CMP)、第3及び第4バイトの情報(abs)によ
り指定されるサブルーチンにジャンプする(JSR)、
データを移動する(MOV)、コントロールをリターン
する(RTS)である。
【0026】図5は、図4に示すアセンブラ言語により
作成されたアプリケーション・プログラムのソース・コ
ードの一例を示す図である。図中、第6行目に記載され
ている「JSR COMP DATA」は、COMP
_DATA識別コードを有するサブルーチン、すなわ
ち、第8行目より記述されているサブルーチンを実行す
べきことを意味している。なお、他の行の意味内容につ
いては、図中に注釈が記載されているので、ここでは説
明を省略する。
作成されたアプリケーション・プログラムのソース・コ
ードの一例を示す図である。図中、第6行目に記載され
ている「JSR COMP DATA」は、COMP
_DATA識別コードを有するサブルーチン、すなわ
ち、第8行目より記述されているサブルーチンを実行す
べきことを意味している。なお、他の行の意味内容につ
いては、図中に注釈が記載されているので、ここでは説
明を省略する。
【0027】図6は、図5に示すソース・コードをコン
パイルした結果取得された再配置可能な(リロケータブ
ル)形式に変換されたオブジェクト・コードである。本
実施形態のコンパイル処理では、プログラムの格納され
る先頭アドレスを暫定的に「0000」に設定して、こ
の基準値に基づき図5に示す各行を機械語に変換してい
る。この結果、サブルーチンCOMP_DATAの先頭
の行は、アドレス「0012」に割り当てられている。
また、これに対応して、ソース・コードの第6行目の命
令JSRは、その第3及び第4バイトに有する情報を
「0012」に変換され、コントロールを相対アドレス
「0012」にジャンプすべきことを表している(オブ
ジェクト・コード「000C」行目参照)。
パイルした結果取得された再配置可能な(リロケータブ
ル)形式に変換されたオブジェクト・コードである。本
実施形態のコンパイル処理では、プログラムの格納され
る先頭アドレスを暫定的に「0000」に設定して、こ
の基準値に基づき図5に示す各行を機械語に変換してい
る。この結果、サブルーチンCOMP_DATAの先頭
の行は、アドレス「0012」に割り当てられている。
また、これに対応して、ソース・コードの第6行目の命
令JSRは、その第3及び第4バイトに有する情報を
「0012」に変換され、コントロールを相対アドレス
「0012」にジャンプすべきことを表している(オブ
ジェクト・コード「000C」行目参照)。
【0028】図7は、図6に示すオブジェクト・コード
をEEPROM16のアドレス「H’7000」より格
納すべくリンク処理を行い、その結果取得された実行形
式のCPU命令コードによるアプリケーション・プログ
ラムを示す図である。図に示されるように、プログラム
の第1番目のCPU命令コードには、アドレス「700
0」が割り当てられており、また、サブルーチンCOM
P_DATAの先頭行には、アドレス「7012」が割
り当てられている。さらに、絶対アドレス「700C」
に割り当てられている命令JSRは、その第3及び第4
バイトを相対アドレス「0012」から絶対アドレス
「7012」に書き換えられている。このように、リン
ク処理により命令JSRの第3バイト、第4バイトが適
切な絶対アドレスに書き換えられ、アプリケーション・
プログラムは実行可能な形式のプログラムに変換されて
いる。
をEEPROM16のアドレス「H’7000」より格
納すべくリンク処理を行い、その結果取得された実行形
式のCPU命令コードによるアプリケーション・プログ
ラムを示す図である。図に示されるように、プログラム
の第1番目のCPU命令コードには、アドレス「700
0」が割り当てられており、また、サブルーチンCOM
P_DATAの先頭行には、アドレス「7012」が割
り当てられている。さらに、絶対アドレス「700C」
に割り当てられている命令JSRは、その第3及び第4
バイトを相対アドレス「0012」から絶対アドレス
「7012」に書き換えられている。このように、リン
ク処理により命令JSRの第3バイト、第4バイトが適
切な絶対アドレスに書き換えられ、アプリケーション・
プログラムは実行可能な形式のプログラムに変換されて
いる。
【0029】前述したように、従来、アプリケーション
・プログラムは、ICカードの外部においてソース・コ
ードからオブジェクト・コードへ、さらにオブジェクト
・コードから実行形式のCPU命令コードに変換され、
その後にICカード内へ導入されていた。これに対し、
本実施形態では、ソース・コードをコンパイルしてオブ
ジェクト・コードを取得するまでの処理については、従
来通りICカードの外部において行う。しかし、得られ
たオブジェクト・コードは、さらに実行形式のCPU命
令コードに変換する前に直接ICカードに導入し、IC
カード内においてROM12に格納されているリンカを
使用して実行形式のCPU命令コードに変換する。以
下、本実施形態におけるアプリケーション・プログラム
の導入方法について詳細に説明する。
・プログラムは、ICカードの外部においてソース・コ
ードからオブジェクト・コードへ、さらにオブジェクト
・コードから実行形式のCPU命令コードに変換され、
その後にICカード内へ導入されていた。これに対し、
本実施形態では、ソース・コードをコンパイルしてオブ
ジェクト・コードを取得するまでの処理については、従
来通りICカードの外部において行う。しかし、得られ
たオブジェクト・コードは、さらに実行形式のCPU命
令コードに変換する前に直接ICカードに導入し、IC
カード内においてROM12に格納されているリンカを
使用して実行形式のCPU命令コードに変換する。以
下、本実施形態におけるアプリケーション・プログラム
の導入方法について詳細に説明する。
【0030】図8は、本実施形態において使用する2つ
のコマンド、Application Loadコマンド及びSelectコマ
ンドのフォーマットを示す図である。Application Load
コマンドは、アプリケーション・プログラムのオブジェ
クト・コードをICカードに導入するためのコマンドで
ある。一方、Selectコマンドは、EEPROM16に格
納されている特定のアプリケーション・プログラムを実
行するためのコマンドである。
のコマンド、Application Loadコマンド及びSelectコマ
ンドのフォーマットを示す図である。Application Load
コマンドは、アプリケーション・プログラムのオブジェ
クト・コードをICカードに導入するためのコマンドで
ある。一方、Selectコマンドは、EEPROM16に格
納されている特定のアプリケーション・プログラムを実
行するためのコマンドである。
【0031】図に示されるように、Application Loadコ
マンドは、5種類の情報より構成されている。第1バイ
ト目であるINSは、このコマンド識別するための1バ
イトからなる種別コードである。本実施形態では、Appl
ication Loadコマンドの種別コードとして例えば「H’
F0」を割り当てている。また、Application Loadコマ
ンドの第2バイト目以降には、順に、格納すべきアプリ
ケーション・プログラムに関するan_1、applicatio
n _name、apl_1、及びrelocatable application
program codeが配置されている。relocatable applicat
ion program codeは、図6にその一例を示したアプリケ
ーション・プログラムのオブジェクト・コードである。
マンドは、5種類の情報より構成されている。第1バイ
ト目であるINSは、このコマンド識別するための1バ
イトからなる種別コードである。本実施形態では、Appl
ication Loadコマンドの種別コードとして例えば「H’
F0」を割り当てている。また、Application Loadコマ
ンドの第2バイト目以降には、順に、格納すべきアプリ
ケーション・プログラムに関するan_1、applicatio
n _name、apl_1、及びrelocatable application
program codeが配置されている。relocatable applicat
ion program codeは、図6にその一例を示したアプリケ
ーション・プログラムのオブジェクト・コードである。
【0032】一方、Selectコマンドは、3種類の情報か
ら構成されている。第1バイト目は、Application Load
と同様にINSが配置されている。本実施形態では、Se
lectコマンドのINSとして、例えば「H’A4」なる
コードを割り当てている。また、Selectコマンドの第2
バイト目以降には、実行すべきアプリケーション・プロ
グラムのan_1とapplication _nameとが順に配置さ
れている。
ら構成されている。第1バイト目は、Application Load
と同様にINSが配置されている。本実施形態では、Se
lectコマンドのINSとして、例えば「H’A4」なる
コードを割り当てている。また、Selectコマンドの第2
バイト目以降には、実行すべきアプリケーション・プロ
グラムのan_1とapplication _nameとが順に配置さ
れている。
【0033】図9は、ROM12に格納されている汎用
プログラムの流れ図である。以下、図9に基づき、IC
カード10の動作の概要について説明する。ICカード
10とリーダ・ライタとが接続され、リーダ・ライタに
よりICカードがリセット(活性化)されると、CPU
18は、まず初期応答情報(ATR)をレスポンスとし
て出力する(S902)。次に、CPU18は、リーダ
・ライタからのコマンド待ち状態となる(S904、S
906)。
プログラムの流れ図である。以下、図9に基づき、IC
カード10の動作の概要について説明する。ICカード
10とリーダ・ライタとが接続され、リーダ・ライタに
よりICカードがリセット(活性化)されると、CPU
18は、まず初期応答情報(ATR)をレスポンスとし
て出力する(S902)。次に、CPU18は、リーダ
・ライタからのコマンド待ち状態となる(S904、S
906)。
【0034】リーダ・ライタからのコマンドを受信する
と(S906:Yes)、CPU18は、そのコマンド
の第1バイト目であるINSを確認する(S908)。
ここでINSの内容が「H’F0」であると、本実施形
態では、コマンドがApplication Loadコマンドであると
判断され、アプリケーション・プログラムをEEPRO
M16へ格納するための処理が実行される(S91
0)。
と(S906:Yes)、CPU18は、そのコマンド
の第1バイト目であるINSを確認する(S908)。
ここでINSの内容が「H’F0」であると、本実施形
態では、コマンドがApplication Loadコマンドであると
判断され、アプリケーション・プログラムをEEPRO
M16へ格納するための処理が実行される(S91
0)。
【0035】一方、ステップ908において、INSの
内容が「H’A4」である場合には、コマンドがSelect
コマンドであると判断される。この結果、Selectコマン
ドが指定するアプリケーション・プログラムの、EEP
ROM16におけるアドレスを特定するための処理が実
行される(S912)。
内容が「H’A4」である場合には、コマンドがSelect
コマンドであると判断される。この結果、Selectコマン
ドが指定するアプリケーション・プログラムの、EEP
ROM16におけるアドレスを特定するための処理が実
行される(S912)。
【0036】ステップ908において、INSの内容が
「H’F0」又は「H’A4」のいずれでもない場合に
は、CPU18は、ステップ914へ進む。ステップ9
14では、すでにSelectコマンドが処理され、所定のア
プリケーション・プログラムが選択済みであるか否かが
判断される。具体的には、RAM14の所定領域に、Se
lectコマンドを処理することにより特定された、アプリ
ケーション・プログラムのアドレスが存在するか否かが
判断される。
「H’F0」又は「H’A4」のいずれでもない場合に
は、CPU18は、ステップ914へ進む。ステップ9
14では、すでにSelectコマンドが処理され、所定のア
プリケーション・プログラムが選択済みであるか否かが
判断される。具体的には、RAM14の所定領域に、Se
lectコマンドを処理することにより特定された、アプリ
ケーション・プログラムのアドレスが存在するか否かが
判断される。
【0037】ステップ914において、アプリケーショ
ンが選択済みであると判断されると、受信されたコマン
ドのパラメータに基づいて、当該アプリケーション・プ
ログラムが実行される(S916)。一方、ステップ9
14において、アプリケーションが選択されていないと
判断されると、コマンド・エラー・ステータスがRAM
14の所定領域にレスポンス情報として編集される(S
918)。
ンが選択済みであると判断されると、受信されたコマン
ドのパラメータに基づいて、当該アプリケーション・プ
ログラムが実行される(S916)。一方、ステップ9
14において、アプリケーションが選択されていないと
判断されると、コマンド・エラー・ステータスがRAM
14の所定領域にレスポンス情報として編集される(S
918)。
【0038】次に、ステップ910、912、916又
は918のいずれかの処理が終了すると、RAM14の
所定領域に編集されたレスポンス情報が、リーダ・ライ
タに送信される(S920)。レンスポンス情報が送信
された後は、再びステップ904に戻り、ステップ92
0までの処理が繰り返される。
は918のいずれかの処理が終了すると、RAM14の
所定領域に編集されたレスポンス情報が、リーダ・ライ
タに送信される(S920)。レンスポンス情報が送信
された後は、再びステップ904に戻り、ステップ92
0までの処理が繰り返される。
【0039】次に、ステップ910、912、及び91
6のそれぞれにおいてなされる処理について説明する。
図10は、ステップ910の処理内容、つまり、Applic
ation Loadコマンドが受信された場合にCPU18が実
行する処理内容を示す流れ図である。CPU18は、Ap
plication Loadコマンドが受信されると、まずシステム
エリアのアドレスH’6000を参照し、NOAのデー
タを読み出す(S1002)。次に、CPU18は、2
つの変数search_address 及びcounter を初期設定す
る。search_address は、アプリケーション・プログラ
ムを格納する領域の先頭アドレスH’6010に初期設
定される(S1004)。また、counter は、ステップ
1002において取得されたNOAの値に初期設定され
る(S1006)。
6のそれぞれにおいてなされる処理について説明する。
図10は、ステップ910の処理内容、つまり、Applic
ation Loadコマンドが受信された場合にCPU18が実
行する処理内容を示す流れ図である。CPU18は、Ap
plication Loadコマンドが受信されると、まずシステム
エリアのアドレスH’6000を参照し、NOAのデー
タを読み出す(S1002)。次に、CPU18は、2
つの変数search_address 及びcounter を初期設定す
る。search_address は、アプリケーション・プログラ
ムを格納する領域の先頭アドレスH’6010に初期設
定される(S1004)。また、counter は、ステップ
1002において取得されたNOAの値に初期設定され
る(S1006)。
【0040】次に、アプリケーション・プログラムを新
たに格納することが可能なEEPROM16上の領域の
先頭アドレスが特定される(S1008〜S101
2)。具体的には、search_address にNA_ADDの
内容を代入し、counter の値を1だけデクリメントする
一連の処理(S1010、S1012)が、counterの
値が0となるまで(S1008:Yes)繰り返され
る。なお、ステップ1010におけるNA_ADDは、
ステップ1008においてsearch_address が示すアド
レス以降に現れる最初のNA_ADD、すなわち、sear
ch_address によって特定されるアプリケーション・プ
ログラムが有するNA_ADDである。
たに格納することが可能なEEPROM16上の領域の
先頭アドレスが特定される(S1008〜S101
2)。具体的には、search_address にNA_ADDの
内容を代入し、counter の値を1だけデクリメントする
一連の処理(S1010、S1012)が、counterの
値が0となるまで(S1008:Yes)繰り返され
る。なお、ステップ1010におけるNA_ADDは、
ステップ1008においてsearch_address が示すアド
レス以降に現れる最初のNA_ADD、すなわち、sear
ch_address によって特定されるアプリケーション・プ
ログラムが有するNA_ADDである。
【0041】ステップ1008から1012間での処理
は、例えば、図3に示した例では、2回繰り返されて行
われる。すなわち、search_address の内容は、1回目
の処理により、第2番目のアプリケーション・プログラ
ムの先頭アドレスであるH’6080に更新される。ま
た、2回目の処理では、第3番目のアプリケーション・
プログラムを格納することが可能である領域の先頭アド
レス、H’60DCに更新される。
は、例えば、図3に示した例では、2回繰り返されて行
われる。すなわち、search_address の内容は、1回目
の処理により、第2番目のアプリケーション・プログラ
ムの先頭アドレスであるH’6080に更新される。ま
た、2回目の処理では、第3番目のアプリケーション・
プログラムを格納することが可能である領域の先頭アド
レス、H’60DCに更新される。
【0042】次に、上記処理により特定されたアドレス
以降に、アプリケーション・プログラムを書き込む処理
が実行される(S1014〜S1034)。まず、変数
write _address にsearch_address の値が代入され
(S1014)、そのwrite _address が示すアドレス
にApplication Loadコマンドのan_1が書き込まれる
(S1016)。書込が終了すると、write _address
は、an_1の長さ(バイト数)を加算することにより
更新される(S1018)。
以降に、アプリケーション・プログラムを書き込む処理
が実行される(S1014〜S1034)。まず、変数
write _address にsearch_address の値が代入され
(S1014)、そのwrite _address が示すアドレス
にApplication Loadコマンドのan_1が書き込まれる
(S1016)。書込が終了すると、write _address
は、an_1の長さ(バイト数)を加算することにより
更新される(S1018)。
【0043】次に、更新されたwrite _address が示す
アドレスよりApplication Loadコマンドのapplication
_nameの内容が書き込まれる(S1020)。書込が終
了すると、write _address は、an_1の示す値だ
け、すなわち、書き込んだapplication _nameの長さ
(バイト数)を加算することにより再び更新される(S
1024)。次に、後にNA_ADDを上記applicatio
n _nameの直後に書き込むための処理が行われる。すな
わち、更新されたwrite _address の値は、変数NA_AD
D _address に代入され(S1024)、その後に、N
A_ADDの長さ(2バイト)がwrite _address に加
算される(S1026)。
アドレスよりApplication Loadコマンドのapplication
_nameの内容が書き込まれる(S1020)。書込が終
了すると、write _address は、an_1の示す値だ
け、すなわち、書き込んだapplication _nameの長さ
(バイト数)を加算することにより再び更新される(S
1024)。次に、後にNA_ADDを上記applicatio
n _nameの直後に書き込むための処理が行われる。すな
わち、更新されたwrite _address の値は、変数NA_AD
D _address に代入され(S1024)、その後に、N
A_ADDの長さ(2バイト)がwrite _address に加
算される(S1026)。
【0044】次に、write _address が示すアドレス
に、Application Loadコマンドのapl_1の内容が書
き込まれる(S1028)。apl_1の書き込みが終
了すると、write _address にapl_1の長さが加算
され、また、変数start _addにwrite _address の値
が代入される(S1030)。さらに、write _addres
s が示すアドレスに、relocatable application progra
m codeが実行可能な絶対アドレス形式のCPU命令コー
ドに変換されて格納される(S1032)。なお、ステ
ップ1032において行われる処理内容については、図
11においてさらに詳細に説明する。
に、Application Loadコマンドのapl_1の内容が書
き込まれる(S1028)。apl_1の書き込みが終
了すると、write _address にapl_1の長さが加算
され、また、変数start _addにwrite _address の値
が代入される(S1030)。さらに、write _addres
s が示すアドレスに、relocatable application progra
m codeが実行可能な絶対アドレス形式のCPU命令コー
ドに変換されて格納される(S1032)。なお、ステ
ップ1032において行われる処理内容については、図
11においてさらに詳細に説明する。
【0045】次に、write _address の値は、NA_ADD
_address が示すアドレスに書き込まれる(S103
4)。また、システム・エリアのNOAが1だけ加算さ
れ、EEPROM16に格納されているアプリケーショ
ン・プログラムが1つ増えたことが記録される(S10
36)。最後に、アプリケーション・プログラムが正常
に終了した旨のステータスが、RAM14の所定領域に
レスポンス情報として編集され(S1038)、Applic
ation Loadコマンド処理が終了される。
_address が示すアドレスに書き込まれる(S103
4)。また、システム・エリアのNOAが1だけ加算さ
れ、EEPROM16に格納されているアプリケーショ
ン・プログラムが1つ増えたことが記録される(S10
36)。最後に、アプリケーション・プログラムが正常
に終了した旨のステータスが、RAM14の所定領域に
レスポンス情報として編集され(S1038)、Applic
ation Loadコマンド処理が終了される。
【0046】図11は、図10のステップ1032にお
いて実行される処理内容をさらに詳細に説明する流れ図
である。本実施形態では、ICカード内において図11
に示す処理を実行することにより、図6に示したオブジ
ェクト・コードを図7に示した実行形式のCPU命令コ
ードに変換する。以下、図11の処理手順について順に
説明する。はじめに、Application Loadコマンドのrelo
catable application program codeの最初の4バイト、
すなわち最初の命令コードが取り出される(S110
2)。次に、取り出した命令コードの第1バイトが「0
4」であるか否か、すなわちそれが再配置可能な命令コ
ードであるJSRであるか否かが判断される。この結
果、「04」でなかった場合には、その命令コードは再
配置可能な命令コードでないと判断され、ステップ11
08の処理へ移行する。
いて実行される処理内容をさらに詳細に説明する流れ図
である。本実施形態では、ICカード内において図11
に示す処理を実行することにより、図6に示したオブジ
ェクト・コードを図7に示した実行形式のCPU命令コ
ードに変換する。以下、図11の処理手順について順に
説明する。はじめに、Application Loadコマンドのrelo
catable application program codeの最初の4バイト、
すなわち最初の命令コードが取り出される(S110
2)。次に、取り出した命令コードの第1バイトが「0
4」であるか否か、すなわちそれが再配置可能な命令コ
ードであるJSRであるか否かが判断される。この結
果、「04」でなかった場合には、その命令コードは再
配置可能な命令コードでないと判断され、ステップ11
08の処理へ移行する。
【0047】一方、取り出した命令コードの第1バイト
目が「04」であった場合には、その命令コードが再配
置可能な命令コードであると判断され、ステップS11
06の処理へ移行する。ステップ1106では、当該命
令コードの第3、第4バイトが示す再配置可能なアドレ
ス(リロケータブルアドレス、abs)にstart _add
の値を加算する。これにより、当該命令コードは、再配
置可能な(リロケータブル形式の)命令コードから実行
形式(絶対アドレス形式)のCPU命令コードに変換さ
れる。
目が「04」であった場合には、その命令コードが再配
置可能な命令コードであると判断され、ステップS11
06の処理へ移行する。ステップ1106では、当該命
令コードの第3、第4バイトが示す再配置可能なアドレ
ス(リロケータブルアドレス、abs)にstart _add
の値を加算する。これにより、当該命令コードは、再配
置可能な(リロケータブル形式の)命令コードから実行
形式(絶対アドレス形式)のCPU命令コードに変換さ
れる。
【0048】次に、relocatable application program
codeから取り出した4バイトの情報(ステップ1106
において実行形式のCPU命令コードに変換された場合
には、その変換後の4バイトの情報)は、write _addr
ess が示すアドレスへ書き込まれる(S1108)。書
き込みが終了すると、write _address に4バイトを加
算することによりwrite _address の値が更新される
(S1110)。
codeから取り出した4バイトの情報(ステップ1106
において実行形式のCPU命令コードに変換された場合
には、その変換後の4バイトの情報)は、write _addr
ess が示すアドレスへ書き込まれる(S1108)。書
き込みが終了すると、write _address に4バイトを加
算することによりwrite _address の値が更新される
(S1110)。
【0049】次に、relocatable application progaram
code にさらに4バイトの情報が存在するか否かが判断
される。その結果、情報が存在する場合は、relocatabl
e application progaram code より次の4バイトの情報
が取り出され(S1114)、ステップ1104からス
テップ1112の処理が繰り返される。一方、ステップ
1112において、次の4バイトの情報が存在しないと
判断されると、EEPROM16へのCPU命令コード
の書き込み処理は終了し、処理は図10のステップ10
34へ移行する。
code にさらに4バイトの情報が存在するか否かが判断
される。その結果、情報が存在する場合は、relocatabl
e application progaram code より次の4バイトの情報
が取り出され(S1114)、ステップ1104からス
テップ1112の処理が繰り返される。一方、ステップ
1112において、次の4バイトの情報が存在しないと
判断されると、EEPROM16へのCPU命令コード
の書き込み処理は終了し、処理は図10のステップ10
34へ移行する。
【0050】図12は、ステップ912の処理内容、つ
まり、Selectコマンドが受信された場合にCPU18が
実行する処理内容を示す流れ図である。ステップ912
において、CPU18は、はじめに変数seach _addres
s をアプリケーション・プログラムが格納されている領
域の先頭アドレスに初期設定する(S1202)。本実
施形態の場合には、search_address は、H’6010
に設定される。
まり、Selectコマンドが受信された場合にCPU18が
実行する処理内容を示す流れ図である。ステップ912
において、CPU18は、はじめに変数seach _addres
s をアプリケーション・プログラムが格納されている領
域の先頭アドレスに初期設定する(S1202)。本実
施形態の場合には、search_address は、H’6010
に設定される。
【0051】次に、CPU18は、EEPROM16の
システムエリアよりNOAの値を読み出し(S120
4)、その値をもって変数counter を設定する。例えば
図3に示すようにEEPROM16が2つのアプリケー
ション・プログラムを格納している場合には、counter
は2に初期設定される。
システムエリアよりNOAの値を読み出し(S120
4)、その値をもって変数counter を設定する。例えば
図3に示すようにEEPROM16が2つのアプリケー
ション・プログラムを格納している場合には、counter
は2に初期設定される。
【0052】次に、CPU18は、Selectコマンドに指
定されたアプリケーション・プログラムと同一のものが
あるか否かについて、EEPROM16に格納されてい
るアプリケーション・プログラムを順次検索する(S1
208〜S1216)。具体的には、search_address
が示すアドレスのan_1及びそのan_1に続くappl
ication _nameと、Selectコマンドのan_1及びappl
ication _nameとが比較される(S1210)。比較の
結果、一致しない場合には、counter の値を1だけデク
リメントするとともに、search_address にNA_AD
Dの内容を代入する(S1214、S1216)。ここ
で、ステップ716におけるNA_ADDは、ステップ
1210においてsearch_address が示したアドレス以
降に現れる最初のNA_ADDである。ステップ121
6においてsearch_address の内容を更新することによ
り、search_address は、次に格納されているアプリケ
ーション・プログラムの先頭アドレスを示すこととな
る。
定されたアプリケーション・プログラムと同一のものが
あるか否かについて、EEPROM16に格納されてい
るアプリケーション・プログラムを順次検索する(S1
208〜S1216)。具体的には、search_address
が示すアドレスのan_1及びそのan_1に続くappl
ication _nameと、Selectコマンドのan_1及びappl
ication _nameとが比較される(S1210)。比較の
結果、一致しない場合には、counter の値を1だけデク
リメントするとともに、search_address にNA_AD
Dの内容を代入する(S1214、S1216)。ここ
で、ステップ716におけるNA_ADDは、ステップ
1210においてsearch_address が示したアドレス以
降に現れる最初のNA_ADDである。ステップ121
6においてsearch_address の内容を更新することによ
り、search_address は、次に格納されているアプリケ
ーション・プログラムの先頭アドレスを示すこととな
る。
【0053】ステップ1210から1216までの処理
は、ステップ1212において比較されたデータが一致
するまで、又は、ステップ1208においてcounter の
値が0となるまで継続される。ステップ1212におい
て、比較されたデータが一致した場合(S1212:Y
es)には、Selectコマンドによって指定されたアプリ
ケーション・プログラムが発見され、search_address
はその先頭アドレスを示していることが意味される。そ
こで、CPU18は、search_address にan_1の長
さ(バイト数)及びan_1が示す値、すなわちapplic
ation _nameの長さ(バイト数)、NA_ADDの長
さ、さらにはapl_1の長さを順次加算し、これを変
数selected_address に代入する(S1218)。
は、ステップ1212において比較されたデータが一致
するまで、又は、ステップ1208においてcounter の
値が0となるまで継続される。ステップ1212におい
て、比較されたデータが一致した場合(S1212:Y
es)には、Selectコマンドによって指定されたアプリ
ケーション・プログラムが発見され、search_address
はその先頭アドレスを示していることが意味される。そ
こで、CPU18は、search_address にan_1の長
さ(バイト数)及びan_1が示す値、すなわちapplic
ation _nameの長さ(バイト数)、NA_ADDの長
さ、さらにはapl_1の長さを順次加算し、これを変
数selected_address に代入する(S1218)。
【0054】この結果、search_address は当該アプリ
ケーション・プログラムにおけるapplication program
の先頭アドレスを示すこととなる。CPU18は、この
search_address の内容をRAM14上の所定領域に格
納する(S1220)。そして、Searchコマンドの処理
が正常に終了した旨のステータスをRAM14の所定領
域にレスポンス情報として格納し(S1222)、処理
を終了する。
ケーション・プログラムにおけるapplication program
の先頭アドレスを示すこととなる。CPU18は、この
search_address の内容をRAM14上の所定領域に格
納する(S1220)。そして、Searchコマンドの処理
が正常に終了した旨のステータスをRAM14の所定領
域にレスポンス情報として格納し(S1222)、処理
を終了する。
【0055】一方、ステップ1208において、counte
r の値が0となった場合(S1208:Yes)には、
EEPROM16に格納されているいずれのアプリケー
ション・プログラムもSelectコマンドが指定するものに
該当しなかったことが意味される。この場合には、CP
U18は、該当するアプリケーション・プログラムがな
かった旨のエラーステータスをRAM14の所定領域に
レスポンス情報として格納し(S1224)、処理を終
了する。
r の値が0となった場合(S1208:Yes)には、
EEPROM16に格納されているいずれのアプリケー
ション・プログラムもSelectコマンドが指定するものに
該当しなかったことが意味される。この場合には、CP
U18は、該当するアプリケーション・プログラムがな
かった旨のエラーステータスをRAM14の所定領域に
レスポンス情報として格納し(S1224)、処理を終
了する。
【0056】図13は、図9のステップ916において
CPU18が実行する処理内容を示す流れ図である。図
9のステップ914において、アプリケーションが選択
済みであると判断されると、CPU18は、図12のス
テップ1222においてRAM14に格納されたsearch
_address の内容を取得し、それに示されるアドレスを
サブルーチンコールする(S1302)。これにより、
Selectコマンドにより選択されたアプリケーション・プ
ログラムが実行される。
CPU18が実行する処理内容を示す流れ図である。図
9のステップ914において、アプリケーションが選択
済みであると判断されると、CPU18は、図12のス
テップ1222においてRAM14に格納されたsearch
_address の内容を取得し、それに示されるアドレスを
サブルーチンコールする(S1302)。これにより、
Selectコマンドにより選択されたアプリケーション・プ
ログラムが実行される。
【0057】以上説明したように、本実施形態では、R
OM12に格納されている汎用プログラムが、新たに導
入されるアプリケーション・プログラムを格納すべきE
EPROM16内の絶対アドレスを特定する機能と、特
定されたそのアドレスを用いて、当該アプリケーション
・プログラムのオブジェクト・コードを絶対アドレス形
式のCPU命令コードに変換する機能とを備えている。
そして、アプリケーション・プログラムは、ICカード
の外部においてオブジェクト・コードに変換された段階
でICカードに導入される。導入されたアプリケーショ
ン・プログラムは、ICカード内で、上記汎用プログラ
ムを用いて絶対アドレス形式のCPU命令コードに変換
され、EEPROM16に格納される。つまり、本実施
形態では、アプリケーション・プログラムをICカード
の外部においてそれを絶対アドレス形式のCPU命令コ
ードに変換することを回避している。したがって、IC
カードに新たなアプリケーション・プログラムを導入す
る場合には、当該プログラムがEEPROM16のいず
れのアドレスに格納されるかをあらかじめ確認する必要
はない。この結果、本実施形態では、例えば2以上のア
プリケーション・プログラムが格納されるICカードに
おいて、先に格納されているアプリケーション・プログ
ラムが占有しているメモリ領域が不明であるために、次
に導入するアプリケーション・プログラムが格納される
メモリ領域のアドレスが特定できない場合であっても、
問題なくアプリケーション・プログラムを導入すること
が可能である。
OM12に格納されている汎用プログラムが、新たに導
入されるアプリケーション・プログラムを格納すべきE
EPROM16内の絶対アドレスを特定する機能と、特
定されたそのアドレスを用いて、当該アプリケーション
・プログラムのオブジェクト・コードを絶対アドレス形
式のCPU命令コードに変換する機能とを備えている。
そして、アプリケーション・プログラムは、ICカード
の外部においてオブジェクト・コードに変換された段階
でICカードに導入される。導入されたアプリケーショ
ン・プログラムは、ICカード内で、上記汎用プログラ
ムを用いて絶対アドレス形式のCPU命令コードに変換
され、EEPROM16に格納される。つまり、本実施
形態では、アプリケーション・プログラムをICカード
の外部においてそれを絶対アドレス形式のCPU命令コ
ードに変換することを回避している。したがって、IC
カードに新たなアプリケーション・プログラムを導入す
る場合には、当該プログラムがEEPROM16のいず
れのアドレスに格納されるかをあらかじめ確認する必要
はない。この結果、本実施形態では、例えば2以上のア
プリケーション・プログラムが格納されるICカードに
おいて、先に格納されているアプリケーション・プログ
ラムが占有しているメモリ領域が不明であるために、次
に導入するアプリケーション・プログラムが格納される
メモリ領域のアドレスが特定できない場合であっても、
問題なくアプリケーション・プログラムを導入すること
が可能である。
【0058】また、本実施形態では、先頭アドレスを
「0000」とする相対アドレスに従い記述されたオブ
ジェクト・コードをICカードに導入する。そして、当
該アプリケーション・プログラムが格納される領域の先
頭アドレスの値をオブジェクト・コードが有する再配置
可能なアドレスに加算することとにより、当該オブジェ
クト・コードを絶対アドレス形式のCPU命令コードに
変換することとしている。さらに、本実施形態では、変
数NA_ADDをEEPROM16内のアプリケーショ
ン・プログラムに設け、これを用いて新たなアプリケー
ション・プログラムを格納すべき領域の先頭アドレスを
特定することとしている。この結果、本実施形態では、
比較的簡単な処理内容で、迅速にオブジェクト・コード
を絶対アドレス形式のCPU命令コードに変換すること
が可能となっている。
「0000」とする相対アドレスに従い記述されたオブ
ジェクト・コードをICカードに導入する。そして、当
該アプリケーション・プログラムが格納される領域の先
頭アドレスの値をオブジェクト・コードが有する再配置
可能なアドレスに加算することとにより、当該オブジェ
クト・コードを絶対アドレス形式のCPU命令コードに
変換することとしている。さらに、本実施形態では、変
数NA_ADDをEEPROM16内のアプリケーショ
ン・プログラムに設け、これを用いて新たなアプリケー
ション・プログラムを格納すべき領域の先頭アドレスを
特定することとしている。この結果、本実施形態では、
比較的簡単な処理内容で、迅速にオブジェクト・コード
を絶対アドレス形式のCPU命令コードに変換すること
が可能となっている。
【0059】(その他の実施形態)なお、本発明は、上
記実施形態に限定されるものではない。上記実施形態
は、例示であり、本発明の特許請求の範囲に記載された
技術的思想と実質的に同一な構成を有し、同様な作用効
果を奏するものは、いかなるものであっても本発明の技
術的範囲に包含される。
記実施形態に限定されるものではない。上記実施形態
は、例示であり、本発明の特許請求の範囲に記載された
技術的思想と実質的に同一な構成を有し、同様な作用効
果を奏するものは、いかなるものであっても本発明の技
術的範囲に包含される。
【0060】例えば、上記実施形態では、ICカードに
導入されたオブジェクト・コードを絶対アドレス形式の
CPU命令コードに変換した後にEEPROM16の所
定領域に格納することとしているが、これは、導入され
たオブジェクト・コードを直接EEPROM16に格納
し、その後それを絶対アドレス形式のCPU命令コード
に変換することであってもよい。
導入されたオブジェクト・コードを絶対アドレス形式の
CPU命令コードに変換した後にEEPROM16の所
定領域に格納することとしているが、これは、導入され
たオブジェクト・コードを直接EEPROM16に格納
し、その後それを絶対アドレス形式のCPU命令コード
に変換することであってもよい。
【0061】また、上記実施形態では、ICカード外部
でオブジェクト・コードを生成し、それをICカードに
導入する場合を例に説明をしたが、これは、アプリケー
ション・プログラムのソース・コードを直接ICカード
に導入し、ICカード内において、ソース・コードを実
行可能な絶対アドレス形式のCPU命令コードに変換す
ることであってもよい。
でオブジェクト・コードを生成し、それをICカードに
導入する場合を例に説明をしたが、これは、アプリケー
ション・プログラムのソース・コードを直接ICカード
に導入し、ICカード内において、ソース・コードを実
行可能な絶対アドレス形式のCPU命令コードに変換す
ることであってもよい。
【0062】さらに、上記実施形態では、複数のアプリ
ケーション・プログラムをICカードに導入する場合を
例に説明をしているが、本発明の技術的思想は、EEP
ROMにアプリケーション・プログラムを1つのみ格納
するICカードにももちろん適用可能である。
ケーション・プログラムをICカードに導入する場合を
例に説明をしているが、本発明の技術的思想は、EEP
ROMにアプリケーション・プログラムを1つのみ格納
するICカードにももちろん適用可能である。
【0063】なお、本明細書において、「ICカード」
とは、CPUと、このCPUによってアクセスされるメ
モリとを備え、CPUは、そのメモリに格納されている
プログラムにしたがい動作する携帯可能な情報記録媒体
を意味する。したがって、「ICカード」は、例えばそ
の形状が平面的かつ四角形であるいわゆるカード状に限
定されるものではなく、コイン形状等の媒体にCPU及
びメモリを備えたものであってもよい。
とは、CPUと、このCPUによってアクセスされるメ
モリとを備え、CPUは、そのメモリに格納されている
プログラムにしたがい動作する携帯可能な情報記録媒体
を意味する。したがって、「ICカード」は、例えばそ
の形状が平面的かつ四角形であるいわゆるカード状に限
定されるものではなく、コイン形状等の媒体にCPU及
びメモリを備えたものであってもよい。
【0064】
【発明の効果】以上詳しく説明したように、請求項1に
係る発明によれば、汎用プログラムは、アプリケーショ
ン・プログラムに含まれる再配置可能なCPU命令コー
ドを、アプリケーション・プログラムが格納される又は
格納された領域のアドレスに対応させて書き換えるアド
レス変換プログラムを含むこととしたので、格納される
メモリ領域の絶対アドレスをあらかじめ確認する必要な
く、アプリケーション・プログラムを不揮発性メモリに
導入することが可能なICカードを提供することが可能
となった。
係る発明によれば、汎用プログラムは、アプリケーショ
ン・プログラムに含まれる再配置可能なCPU命令コー
ドを、アプリケーション・プログラムが格納される又は
格納された領域のアドレスに対応させて書き換えるアド
レス変換プログラムを含むこととしたので、格納される
メモリ領域の絶対アドレスをあらかじめ確認する必要な
く、アプリケーション・プログラムを不揮発性メモリに
導入することが可能なICカードを提供することが可能
となった。
【0065】請求項2に係る発明によれば、再配置可能
なCPU命令コードは、所定の基準値に対し相対的に定
められたアドレスを有し、アドレス変換プログラムは、
基準値と、先頭アドレス特定プログラムが特定した先頭
アドレスの値との差を再配置可能なCPU命令コードが
有するアドレスに加算又は減算することにより再配置可
能なCPU命令コードを書き換えることとしたので、比
較的簡単な処理内容により、迅速にオブジェクト・コー
ドを絶対アドレス形式のCPU命令コードに変換するこ
とを可能としている。
なCPU命令コードは、所定の基準値に対し相対的に定
められたアドレスを有し、アドレス変換プログラムは、
基準値と、先頭アドレス特定プログラムが特定した先頭
アドレスの値との差を再配置可能なCPU命令コードが
有するアドレスに加算又は減算することにより再配置可
能なCPU命令コードを書き換えることとしたので、比
較的簡単な処理内容により、迅速にオブジェクト・コー
ドを絶対アドレス形式のCPU命令コードに変換するこ
とを可能としている。
【0066】請求項3に係る発明によれば、ICカード
の外部において、作成された再配置可能なCPU命令コ
ードを含む前記アプリケーション・プログラムを前記I
Cカード内部へ導入し、ICカード内部において、アプ
リケーション・プログラムが格納される又は格納された
領域のアドレスに対応させて、再配置可能な前記CPU
命令コードを書き換えることとしたので、格納されるメ
モリ領域の絶対アドレスをあらかじめ確認する必要な
く、複数のアプリケーション・プログラムを不揮発性メ
モリに導入できるアプリケーション・プログラム導入方
法を提供することが可能となった。
の外部において、作成された再配置可能なCPU命令コ
ードを含む前記アプリケーション・プログラムを前記I
Cカード内部へ導入し、ICカード内部において、アプ
リケーション・プログラムが格納される又は格納された
領域のアドレスに対応させて、再配置可能な前記CPU
命令コードを書き換えることとしたので、格納されるメ
モリ領域の絶対アドレスをあらかじめ確認する必要な
く、複数のアプリケーション・プログラムを不揮発性メ
モリに導入できるアプリケーション・プログラム導入方
法を提供することが可能となった。
【図1】本発明に係るICカードの構成を示す図であ
る。
る。
【図2】本発明に係るICカードの各メモリーに割り付
けられているアドレスの一例を示す図である。
けられているアドレスの一例を示す図である。
【図3】EEPROM16のメモリ・マップを示す図で
ある。
ある。
【図4】アプリケーション・プログラムの作成に使用す
るアセンブラ言語の一部の命令のフォーマットを示す図
である。
るアセンブラ言語の一部の命令のフォーマットを示す図
である。
【図5】図4に示すアセンブラ言語により作成されたア
プリケーション・プログラムのソース・コードの一例を
示す図である。
プリケーション・プログラムのソース・コードの一例を
示す図である。
【図6】図5に示すソース・コードをコンパイルした結
果取得された再配置可能な(リロケータブル)形式に変
換されたオブジェクト・コードを示す図である。
果取得された再配置可能な(リロケータブル)形式に変
換されたオブジェクト・コードを示す図である。
【図7】図6に示すオブジェクト・コードに対しリンク
処理を施して取得された実行形式のCPU命令コードを
示す図である。
処理を施して取得された実行形式のCPU命令コードを
示す図である。
【図8】Application Loadコマンド、及びSelectコマン
ドのフォーマットを示す図である。
ドのフォーマットを示す図である。
【図9】ROM12に格納されている汎用プログラムの
流れ図である。
流れ図である。
【図10】Application Loadコマンドが受信された場合
にCPU18が実行する処理内容を示す流れ図である。
にCPU18が実行する処理内容を示す流れ図である。
【図11】図10のステップ1032において実行され
る処理内容をさらに詳細に説明する流れ図である。
る処理内容をさらに詳細に説明する流れ図である。
【図12】Selectコマンドが受信された場合にCPU1
8が実行する処理内容を示す流れ図である。
8が実行する処理内容を示す流れ図である。
【図13】図9のステップ916においてCPU18が
実行する処理内容を示す流れ図である。
実行する処理内容を示す流れ図である。
10 ICカード 12 ROM 14 RAM 16 EEPROM 18 CPU
Claims (3)
- 【請求項1】 CPUと、 前記CPUが実行可能な汎用プログラムを格納する読み
出し専用メモリと、 前記CPUが実行可能な1又は2以上のアプリケーショ
ン・プログラムを必要に応じて格納される書き換え可能
な不揮発性メモリとを備えるICカードにおいて、 前記汎用プログラムは、前記アプリケーション・プログ
ラムに含まれる再配置可能なCPU命令コードを、前記
アプリケーション・プログラムが格納される又は格納さ
れた領域のアドレスに対応させて書き換えるアドレス変
換プログラムを含むことを特徴とするICカード。 - 【請求項2】 請求項1に記載のICカードにおいて、 前記汎用プログラムは、前記アプリケーション・プログ
ラムが格納可能である又は格納された領域の先頭アドレ
スを特定する先頭アドレス特定プログラムを含み、 前記アプリケーション・プログラムに含まれる再配置可
能なCPU命令コードは、所定の基準値に対し相対的に
定められたアドレスを有し、 前記アドレス変換プログラムは、前記基準値と、前記先
頭アドレス特定プログラムが特定した先頭アドレスの値
との差を再配置可能な前記CPU命令コードが有するア
ドレスに加算又は減算することにより再配置可能な前記
CPU命令コードを書き換えることを特徴とするICカ
ード。 - 【請求項3】 CPUが実行可能な1又は2以上のアプ
リケーション・プログラムを書き換え可能な不揮発性メ
モリに格納することが可能なICカードへのアプリケー
ション・プログラム導入方法において、 前記ICカードの外部において作成された、再配置可能
なCPU命令コードを含む前記アプリケーション・プロ
グラムを前記ICカード内部へ導入し、 前記ICカード内部において、前記アプリケーション・
プログラムが格納される又は格納された領域のアドレス
に対応させて、再配置可能な前記CPU命令コードを書
き換えることを特徴とするアプリケーション・プログラ
ム導入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8156626A JPH103385A (ja) | 1996-06-18 | 1996-06-18 | Icカード及びアプリケーション・プログラム導入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8156626A JPH103385A (ja) | 1996-06-18 | 1996-06-18 | Icカード及びアプリケーション・プログラム導入方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH103385A true JPH103385A (ja) | 1998-01-06 |
Family
ID=15631819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8156626A Pending JPH103385A (ja) | 1996-06-18 | 1996-06-18 | Icカード及びアプリケーション・プログラム導入方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH103385A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002008896A1 (fr) * | 2000-07-26 | 2002-01-31 | Fujitsu Limited | Procede pour telecharger sur un support d'enregistrement de type carte, dispositif terminal et support d'enregistrement de type carte presentant une fonction de traitement |
JP2010198139A (ja) * | 2009-02-23 | 2010-09-09 | Dainippon Printing Co Ltd | プラットフォーム完全性検証システム及び方法,並びに,セキュリティトークン |
JP2011123639A (ja) * | 2009-12-10 | 2011-06-23 | Toppan Printing Co Ltd | ネイティブ型icカード、icカードos、及び方法 |
JP2018511132A (ja) * | 2015-12-25 | 2018-04-19 | バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド | アプリケーションロード方法及び装置 |
-
1996
- 1996-06-18 JP JP8156626A patent/JPH103385A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002008896A1 (fr) * | 2000-07-26 | 2002-01-31 | Fujitsu Limited | Procede pour telecharger sur un support d'enregistrement de type carte, dispositif terminal et support d'enregistrement de type carte presentant une fonction de traitement |
JP2010198139A (ja) * | 2009-02-23 | 2010-09-09 | Dainippon Printing Co Ltd | プラットフォーム完全性検証システム及び方法,並びに,セキュリティトークン |
JP2011123639A (ja) * | 2009-12-10 | 2011-06-23 | Toppan Printing Co Ltd | ネイティブ型icカード、icカードos、及び方法 |
JP2018511132A (ja) * | 2015-12-25 | 2018-04-19 | バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド | アプリケーションロード方法及び装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5136709A (en) | Method for generating an operating system by a static link-editor | |
US5684742A (en) | Device and method for the simplified generation of tools for the initialization and personalization of and communication with a chip card | |
US7703086B2 (en) | Method and apparatus for sharing data files among runtime environment applets in an integrated circuit card | |
CN1343431B (zh) | 用于独立下载特征程序到无线通信装置中一组存储单元的系统和方法 | |
KR20000052759A (ko) | 마이크로컨트롤러를 이용한 고급 프로그래밍 언어 사용 | |
JP2002536743A (ja) | リソース制約デバイスのためのオブジェクト指向命令セット | |
US7467376B2 (en) | Semantic analysis based compression of interpreted code by replacing object instruction groups with special instruction specifying a register representing the object | |
US20010034818A1 (en) | Method for linking program modules reloaded into a main memory of a processor on a smart card | |
JPH103385A (ja) | Icカード及びアプリケーション・プログラム導入方法 | |
JPS6122817B2 (ja) | ||
US8844827B2 (en) | Chip card, and method for the software-based modification of a chip card | |
JP4742469B2 (ja) | 複数のosを用いるicカード、icカード処理装置および処理方法 | |
JP3718564B2 (ja) | Icカード | |
JP4590201B2 (ja) | データキャリア及びデータキャリアのプログラム | |
US7014119B2 (en) | Method of manufacturing smart cards | |
CN112650702A (zh) | 一种多口usb设备的端口绑定方法及系统 | |
JP3231467B2 (ja) | Cpuを内蔵した情報記録媒体 | |
JP4203165B2 (ja) | Icカード | |
JPH1040350A (ja) | Icカード及びコマンド実行方法 | |
JPH103526A (ja) | Icカード | |
JP3764206B2 (ja) | Icカード、プログラム導入方法及びプログラム実行方法 | |
JPH103525A (ja) | Icカード、命令コード格納方法及び命令コード実行方法 | |
JP4071377B2 (ja) | Icカード | |
JP4176889B2 (ja) | Icカード | |
JP7397402B2 (ja) | 電子情報記憶媒体、データ送信方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060307 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060704 |