CN1183449C - 用微控制器使用高级程序设计语言 - Google Patents
用微控制器使用高级程序设计语言 Download PDFInfo
- Publication number
- CN1183449C CN1183449C CNB971810370A CN97181037A CN1183449C CN 1183449 C CN1183449 C CN 1183449C CN B971810370 A CNB971810370 A CN B971810370A CN 97181037 A CN97181037 A CN 97181037A CN 1183449 C CN1183449 C CN 1183449C
- Authority
- CN
- China
- Prior art keywords
- byte
- microcontroller
- card
- code
- class
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44557—Code layout in executable memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/355—Personalisation of cards for use
- G06Q20/3552—Downloading or loading of personalisation data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/356—Aspects of software for card payments
- G06Q20/3563—Software being resident on card
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/357—Cards having a plurality of specified features
- G06Q20/3574—Multiple applications on card
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/10—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
- G07F7/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/03—Protecting confidentiality, e.g. by encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
- H04W12/062—Pre-authentication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2153—Using hardware token as a secondary aspect
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Business, Economics & Management (AREA)
- Signal Processing (AREA)
- General Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Strategic Management (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Devices For Executing Special Programs (AREA)
- Microcomputers (AREA)
- Storage Device Security (AREA)
- Electrophonic Musical Instruments (AREA)
- Credit Cards Or The Like (AREA)
Abstract
Description
| 存取控制列表 | 虚拟机 | 加密 | |
| 数据保护 | 操作前的存取控制 | 只访问自己的名字空间 | 去向另一个程序的数据被加密 |
| 程序保护 | 执行前的存取控制 | 只对正确的类型执行 | 数据在程序的名字空间中加密 |
| 通信保护 | 通道上的存取控制 | 在自己的名字空间中的通道控制 | 只有互相验证的各方才能通信 |
CONSTANT_FieldrefInfo{
u1 tag;
u2 class_index;
u2 name_sig_index;
}
CONSTANT_MethodrefInfo{
u1 tag;
u2 class_index;
u2 name_sig_index;
}
<dp n="d30"/>
CONSTANT_InterfaceMethodrefInfo{
u1 tag;
u2 class_index;
u2 name_sig_index;
}
ClassInfo{
u2 name_index;
u1 max_field;
u1 max_sfield;
u1 max_method;
u1 max_interface;
u2 superclass;
<dp n="d31"/>
u2 access_flags
FieldInfo field[max_field+max_sfield];
InterfaceInfo interface[max_interface];
MethodInfo method[max_method];
}
MethodInfo{
u2 name_index;
u2 signature_index;
u1 max_local;
u1 max_arg;
u1 max_stack;
u1 access_flags;
u2 code_length
u2 exception_length;
u1 code[code_length];
{u2 start_pc;
u2 end_pc;
u2 handler_pc;
u2 catch_type;
}einfo[exception_length];
}
AALOAD AASTORE ACONST_NULL ALOAD ALOAD_0 ALOAD_1 ALOAD_2 ALOAD_3 ARETURN ARRAYLENGTH ASTORE ASTORE_0 ASTORE_1 ASTORE_2 ASTORE_3 ATHROW BALOAD BASTORE CHECKCAST DUP DUP2 DUP2_X1 DUP2_X2 DUP_X1 DUP_X2 GETFIELD GETSTATIC GOTO IADD IALOAD IAND IASTORE ICONST_0 ICONST_1 ICONST_2 ICONST_3 ICONST_4 ICONST_5 ICONST_M1 IDIV IFEQ IFGE IFGT IFLE IFLT IFNE IFNONNULL IFNULL IF_ACMPEQ IF_ACMPNE IF_ICMPEQ IF_ICMPGE IF_ICMPGT IF_ICMPLE IF_ICMPLT IF_ICMPNE IINC ILOAD ILOAD_0 ILOAD_1 ILOAD_2 ILOAD_3 IMUL INEG INSTANCEOF INT2BYTE INT2CHAR INT2SHORT INVOKEINTERFACE INVOKENONVIRTUAL INVOKESTATIC INVOKEVIRTUAL IOR IREM IRETURN ISHL ISHR ISTORE ISTORE_0 ISTORE_1 ISTORE_2 ISTORE_3 ISUB IUSHR IXOR JSR LDC1 LDC2 LOOKUPSWITCH NEW NEWARRAY NOP POP POP2 PUTFIELD PUTSTATIC RET RETURN SALOAD SASTORE SIPUSH SWAP TABLESWITCH BIPUSH
package util;
/*
* 由该JVM处理的实际Java字节代码的列表
* 参见Lindohlm和Yellin的文章。
*
* 版权属于美国的Schlumberger Austin Products Center,
* Schlumberger,Austin,Texas,1996。
*/
public interface BytecodeDefn{
public static final byte j_NOP=(byte)0;
public static final byte ACONST_NULL=(byte)1;
public static final byte ICONST_M1=(byte)2;
public static final byte ICONST_0=(byte)3;
public static final byte ICONST_1=(byte)4;
public static final byte ICONST_2=(byte)5;
public static final byte ICONST_3=(byte)6;
public static final byte ICONST_4=(byte)7;
public static final byte ICONST_5=(byte)8;
public static final byte BIPUSH=(byte)16;
public static final byte SIPUSH=(byte)17;
public static final byte LDC1=(byte)18;
public static final byte LDC2=(byte)19;
public static final byte ILOAD=(byte)21;
public static final byte ALOAD=(byte)25;
public static final byte ILOAD_0=(byte)26;
public static final byte ILOAD_1=(byte)27;
public static final byte ILOAD_2=(byte)28;
public static final byte ILOAD_3=(byte)29;
public static final byte ALOAD_0=(byte)42;
public static final byte ALOAD_1=(byte)43;
<dp n="d42"/>
public static final byte ALOAD_2=(byte)44;
public static final byte ALOAD_3=(byte)45;
public static final byte IALOAD=(byte)46;
public static final byte AALOAD=(byte)50;
public static final byte BALOAD=(byte)51;
public static final byte CALOAD=(byte)52;
public static final byte ISTORE=(byte)54;
public static final byte ASTORE=(byte)58;
public static final byte ISTORE_0=(byte)59;
public static final byte ISTORE_1=(byte)60;
public static final byte ISTORE_2=(byte)61;
public static final byte ISTORE_3=(byte)62;
public static final byte ASTORE_0=(byte)75;
public static final byte ASTORE_1=(byte)76;
public static final byte ASTORE_2=(byte)77;
public static final byte ASTORE_3=(byte)78;
public static final byte IASTORE=(byte)79;
public static final byte AASTORE=(byte)83;
public static final byte BASTORE=(byte)84;
public static final byte CASTORE=(byte)85;
public static final byte POP=(byte)87;
public static final byte POP2=(byte)88;
public static final byte DUP=(byte)89;
public static final byte DUP_X1=(byte)90;
public static final byte DUP_X2=(byte)91;
public static final byte DUP2=(byte)92;
public static final byte DUP2_X1=(byte)93;
public static final byte DUP2_X2=(byte)94;
public static final byte SWAP=(byte)95;
public static final byte IADD=(byte)96;
public static final byte ISUB=(byte)100;
public static final byte IMUL=(byte)104;
public static final byte IDIV=(byte)108;
public static final byte IREM=(byte)112;
public static final byte INEG=(byte)116;
<dp n="d43"/>
public static final byte ISHL=(byte)120;
public static final byte ISHR=(byte)122;
public static final byte IUSHR=(byte)124;
public static final byte IAND=(byte)126;
public static final byte IOR=(byte)128;
public static final byte IXOR=(byte)130;
public static final byte IINC=(byte)132;
public static final byte INT2BYTE=(byte)145;
public static final byte INT2CHAR=(byte)146;
public static final byte INT2SHORT=(byte)147;
public static final byte IFEQ=(byte)153;
public static final byte IFNE=(byte)154;
public static final byte IFLT=(byte)155;
public static final byte IFGE=(byte)156;
public static final byte IFGT=(byte)157;
public static final byte IFLE=(byte)158;
public static final byte IF_ICMPEQ=(byte)159;
public static final byte IF_ICMPNE=(byte)160;
public static final byte IF_ICMPLT=(byte)161;
public static final byte IF_ICMPGE=(byte)162;
public static final byte IF_ICMPGT=(byte)163;
public static final byte IF_ICMPLE=(byte)164;
public static final byte IF_ACMPEQ=(byte)165;
public static final byte IF_ACMPNE=(byte)166;
public static final byte GOTO=(byte)167;
public static final byte j_JSR=(byte)168;
public static final byte RET=(byte)169;
public static final byte TABLESWITCH=(byte)170;
public static final byte LOOKUPSWITCH=(byte)171;
public static final byte IRETURN=(byte)172;
public static final byte ARETURN=(byte)176;
public static final byte RETURN=(byte)177;
public static final byte GETSTATIC=(byte)178;
public static final byte PUTSTATIC=(byte)179;
public static final byte GETFIELD=(byte)180;
<dp n="d44"/>
public static final byte PUTFIELD=(byte)181;
public static final byte INVOKEVIRTUAL=(byte)182;
public static final byte INVOKENONVIRTUAL=(byte)183;
public static final byte INVOKESTATIC=(byte)184;
public static final byte INVOKEINTERFACE=(byte)185;
public static final byte NEW=(byte)187;
public static final byte NEWARRAY=(byte)188;
public static final byte ARRAYLENGTH=(byte)190;
public static final byte ATHROW=(byte)191;
public static final byte CHECKCAST=(byte)192;
public static final byte INSTANCEOF=(byte)193;
public static final byte IFNULL=(byte)198;
public static final byte IFNONNULL=(byte)199;
/*
*再处理代码块
*/
static
void
reprocessMethod(iMethod*imeth)
{
int pc;
int npc;
int align;
bytecode*code;
int codelen;
int i;
int opad;
int npad;
int apc;
int high;
int low;
/*Codeinfo表跟踪有效Java字节代码及其对应
* 的翻译
*/
code=imeth->external->code;
codelen=imeth->external->code_length;
jumpPos=0;
align=0;
/* 扫描不支持的操作码 */
for(pc=0;pc<codelen;pc=npc){
if(codeinfo[code[pc]].valid==0){
error(″Unsupported opcode%d″,code[pc]);
<dp n="d46"/>
}
npc=nextPC(pc,code);
}
/* 扫描跳转指令并插入跳转表 */
for(pc=0;pc<codelen;pc=npc){
npc=nextPC(pc,code);
if(codeinfo[code[pc]].valid==3){
insertJump(pc+1,pc,(int16)((code[pc+1]<<8)|code[pc+2]));
}
eise if(codeinfo[code[pc]].valid==4){
apc=pc & -4;
low=(code[apc+8]<<24)|(code[apc+9]<<16)
|(code[apc+10]<<8)|code[apc+11];
high=(code[apc+12]<<24)|(code[apc+13]<<16)
|(code[apc+14]<<8)|code[apc+15];
for(i=0;i<high-low+1;i++){
insertJump(apc+(i*4)+18,pc,
(int16)((code[apc+(i*4)+18]<<8)|code[apc+(i*4)+19]));
}
insertJump(apc+6,pc,(int16)((code[apc+6]<<8)|code[apc+7]));
}
else if(codeinfo[code[pc]].valid==5){
apc=pc & -4;
low=(code[apc+8]<<24)|(code[apc+9]<<16)
|(code[apc+10]<<8)|code[apc+11];
for(i=0;i<low;i++){
insertJump(aPc+(i*8)+18,pc,
(int16)((code[apc+(i*8)+18]<<8)|code[apc+(i*8)+19]));
}
insertJump(apc+6,pc,(int16)((code[apc+6]<<8)|code[apc+7]));
}
}
<dp n="d47"/>
#ifdef TRANSLATE_BYTECODE
/* 翻译专用操作的以生成通用操作码 */
for(pc=0;pc<codelen;pc=npc){
/* 这是一个翻译代码 */
if(codeinfo[code[pc]].valid==2){
switch(code[pc]){
case ILOAD_0:
case ILOAD_1:
case ILOAD_2:
case ILOAD_3:
insertSpace(code,&codelen,pc,1);
align+=1;
code[pc+1]=code[pc]-ILOAD_0;
code[pc+0]=ILOAD;
break:
case ALOAD_0:
case ALOAD_1:
case ALOAD_2:
case ALOAD_3:
insertSpace(code,&codelen,pc,1);
align+=1;
code[pc+1]=code[pc]-ALOAD_0;
code[pc+0]=ALOAD;
break;
case ISTORE_0:
case ISTORE_1:
case ISTORE_2:
case ISTORE_3:
insertSpace(code,&codelen,pc,1);
align+=1;
code[pc+1]=code[pc]-ISTORE_0;
code[pc+0]=ISTORE;
<dp n="d48"/>
break;
case ASTORE_0:
case ASTORE_1:
case ASTORE_2:
case ASTORE_3:
insertSpace(code,&codelen,pc,1);
align+=1;
code[pc+1]=code[pc]-ASTORE_0;
code[pc+0]=ASTORE;
break;
case ICONST_M1:
insertSpace(code,&codelan,pc,2);
align+=2;
code[pc+2]=255;
code[pc+1]=255;
code[pc+0]=SIPUSH;
break;
case ICONST_0:
case ICONST_1:
case ICONST_2:
case ICONST_3:
case ICONST_4:
case ICONST_5:
insertSpace(code,&codelen ,pc,2);
align+=2;
code[pc+2]=code[pc]-ICONST_0;
code[pc+1]=0;
code[pc+0]=SIPUSH;
break;
case LDC1:
insertSpace(code,&codelen,pc,1);
<dp n="d49"/>
align+=1;
code[pc+1]=0;
code[pc+0]=LDC2;
break;
<dp n="d50"/>
case BIPUSH:
insertSpace(code,&codelen,pc,1);
align+=1;
if((int8)code[pc+2]>=0){
code[pc+1]=0;
}
else{
code[pc+1]=255;
}
code[pc+0]=SIPUSH;
break;
case INT2SHORT:
removeSpace(code,&codelen,pc,1);
align-=1;
npc=pc;
continue;
}
}
elseif(codeinfo[code[c]].valid==4‖codeinfo[code[pc]].valid==5){
/* 切换被对齐到4字节的边界。由于我们在插入,删除字节代码,
* 这会改变切换指令的对齐。
* 因此我们必须重新调整切换中的填充来加以补偿。
*/
opad=(4-(((pc+1)-align)%4))%4;/*当前切换填充 */
npad=(4-((pc+1)%4))%4; /*新切换填充 */
if(npad>opad){
insertSpace(code,&codelen,pc+1,npad-opad);
align+=(npad-opad);
}
else if(npad<opad){
removeSpace(code,&codelen,pc+1,opad-npad);
align-=(opad-npad);
}
<dp n="d51"/>
}
npc=nextPC(pc,code);
}
#endif
/*重链接常量 */
for(pc=0;pc<codelen;pc=npc){
npc=nextPC(pc,code);
i=(uint16)((code[pc+1]<<8)+code[pc+2]);
switch(code[pc]){
case LDC2:
/*′i′==通用变址*/
switch(cltem(i).type){
case CONSTANT_lnteger.
i=cltem(i).v.tint;
code[pc]=SIPUSH;
break;
case CONSTANT_String:
i=buildStringlndex(i);
break;
default:
error(″Unsupported loading of constant type″);
break;
}
break;
case NEW:
case INSTANCEOF:
case CHECKCAST:
/*′i′==类变址 */
<dp n="d52"/>
i=buildClasslndex(i);
break;
case GETFIELD:
case PUTFIELD:
/*′i′==域变址 */
/*i=buildFieldSignaturelndex(i);*/
i=buildStaticFieldSignaturelndex(i);
break;
case GETSTATIC:
case PUTSTATIC:
/*′i′==域变址 */
i=buildStaticFieldSignaturelndex(i);
break;
case INVOKEVIRTUAL:
case INVOKENONVIRTUAL:
case INVOKESTATIC:
case INVOKEINTERFACE:
/*′i′==过程签名变址 */
i=buildSignaturelndex(i);
break;
}
/*插入应用程序的常量引用 */
code[pc+1]=(i>>8)& 0×FF;
code[pc+2]=i & 0×FF;
}
#ifdef MODIFY_BYTECODE
/*翻译代码 */
for(pc=0;pc<codelen;pc=npc){
npc=nextPC(pc,code);
<dp n="d53"/>
code[pc]=codeinfo[code[pc]].translation;
}
#endif
/*重链接跳转*/
for(i=0;i<jumpPos;i++){
apc=jumpTable[i].at;
pc=jumpTable[i].from;
npc=jumpTable[i].to-pc;
code[apc+0]=(npc>>8)& 0×FF;
code[apc+1]=npc & 0×FF;
}
/*固定长度 */
imeth->external->code_length=codelen;
imeth->esize=(SIZEOFMETHOD+codelen+3)&-4;
}
public class Bootstrap{
∥整个程序所使用的常量
static final byte BUFFER_LENGTH =32;
static final byte ACK_SIZE =(byte)1;
static final byte ACK_CODE =(byte)0;
static final byte OS_HEADER_SIZE =(byte)0×10;
static final byte GPOS_CREATE_FILE =(byte)0×E0;
static final byte ST_INVALID_CLASS =(byte)0×C0;
static final byte ST_INVALID_PARAMETER =(byte)0×A0;
static final byte ST_INS_NOT_SUPPORTED =(byte)0×B0;
static final byte ST_SUCCESS =(byte)0×00;
static final byte ISO_COMMAND_LENGTH =(byte)5;
static final byte ISO_READ_BINARY =(byte)0×B0;
static final byte ISO_UPDATE_BINARY =(byte)0×D6;
static final byte ISO_INIT_APPLICATION =(byte)0×F2;
static final byte ISO_VERIFY_KEY =(byte)0×2A;
static final byte ISO_SELECT_FILE =(byte)0×A4;
static final byte ISO_CLASS =(byte)0×C0;
static final byte ISO_APP_CLASS =(byte)0×F0;
publc static void main(){
byte pbuffer[]=new byte[ISO_COMMAND_LENGTH];
byte dbuffer[]=new byte[BUFFER_LENGTH];
byte ackByte[]=new byte[ACK_SIZE];
∥short fileld;
short offset;
<dp n="d55"/>
byte bRetumStatus;
∥初始化通信
_OS.SendATR();
do{
∥提取命令首部
_OS.GetMessage(pbuffer,ISO_COMMAND_LENGTH,ACK_CODE);
∥检验报文的类-仅ISO和应用程序
if((pbuffer[0]!=ISO_APP_CLASS)
&&(pbuffer[0]!=ISO_CLASS)){
_OS.SendStatus(ST_INVALID_CLASS);
}
else{
∥通过切换
∥发送应答代码
∥检验数据长度是否太大
if(pbuffer[4]>BUFFER_LENGTH){
bReturnStatus=ST_INVALID_PARAMETER;
}
else
{
switch(pbuffer[1]){
case ISO_SELECT_FILE:
∥假定长度总是2
if(pbuffer[4]!=2){
bRetumStatus=ST_INVALID_PARAMETER;
}
else
{
∥读取数据缓冲器中的field(offset)
_OS.GetMessage(dbuffer,(byte)2,pbuffer[1]);
∥将dbuffer[0..1]变换成短整数
<dp n="d56"/>
offset=(short)((dbuffer[0]<<8)|(dbuffer[1]&0×00FF));
bReturnStatus=_OS.SelectFile(offset);
}
break;
case ISO_VERIFY_KEY:
∥从终端取得密钥
_OS.GetMessage(dbuffer,pbuffer[4],pbuffer[1]);
bReturnStatus=_OS.VerifyKey(pbuffer[3],
dbuffer,
pbuffer[4]);
break;
case ISO_INIT_APPLICATION:
∥应发送有效程序文件的ID
_OS.GetMessage(dbuffer,(byte)1,pbuffer[1]);
∥通过变换从pbuffer[2..3]计算fileld(offset)
offset=(short)((pbuffer[2]<<8)|(pbuffer[3]&0×00FF));
bReturnStatus=_OS.Execute(offset,
dbuffer[0]);
break;
case GPOS_CREATE_FILE:
if(pbuffer[4]=OS_HEADER_SIZE){
bReturnStatus=ST_INVALID_PARAMETER;
break;
}
∥接收数据
_OS.GetMessage(dbuffer,pbuffer[4],pbuffer[1]);
bReturnStatus=_OS.CreateFile(dbuffer);
break;
case ISO_UPDATE_BINARY:
_OS.GetMessage(dbuffer,pbuffer[4],pbuffer[1]);
∥通过变换从pbuffer[2..3]计算偏移
<dp n="d57"/>
offset=(short)((pbuffer[2]<<8)|(pbuffer[3]&0×00FF));
∥假定有文件已被选择
bReturnStatus=_OS.WriteBinaryFile(offset,
pbuffer[4],
dbuffer);
break;
case ISO_READ_BINARY:
∥通过变换从pbuffer[2..3]计算偏移
offset=(short)((pbuffer[2]<<8)|(pbuffer[3]&0×00FF));
∥假定某文件已经被选择
bReturnStatus=_OS.ReadBinaryFile(offset,
pbuffer[4],
dbuffer);
∥如果成功则发送数据
ackByte[0]=pbuffer[1];
if(bReturnStatus==ST_SUCCESS){
_OS.SendMessage(ackByte,ACK_SIZE);
_OS.SendMessage(dbuffer,pbuffer[4]);
}
break;
default:
bReturnStatus=ST_INS_NOT_SUPPORTED;
}
}
_OS.SendStatus(bReturnStatus);
}
}
while(true);
}
}
public class_OS{
static native byte SelecfFile (short file_id);
static native byte SelectParent ();
static native byte SelectCD ();
static native byte SelectRoot ();
static native byte CreateFile (byte file_hdr[]);
static native byte DeleteFile (short file_id);
∥一般文件操作
static native byte ResetFile ();
static native byte ReadByte (byte offset);
static native short ReadWord (byte offset);
∥首部操作
static native byte GetFileInfo (byte file_hdr[]);
∥二进制文件支持
static native byte ReadBinaryFile (short offset,
byte data_length,
byte buffer[]);
static native byte WriteBinary File (short offset,
byte data_length,
byte buffer[]);
∥记录文件支持
static native byte SelectRecord (byte record_nb,
byte mode);
static native byte NextRecord ();
staric native byte PreviousRecord ();
<dp n="d59"/>
static native byte ReadRecord (byte record_data[],
byte record_nb,
byte offset,
byte length);
static native byte WriteRecord (byte buffer[],
byte record_nb,
byte offset,
byte length);
∥循环文件支持
static native byte LastUpdatedRec ();
∥报文传递功能
static native byte GetMessage (byte buffer[],
byte expected_length,
byte ack_code);
static native byte SendMessage (byte buffer[],
byte data_length);
static native byte SetSpeed (byte speed);
∥身份管理
static native byte CheckAccess (byte ac_action);
static native byte VerifyKey (byte key_number,
byte key_buffer[],
byte key_length);
static native byte VerifyCHV (byte CHV_number,
byte CHV_buffer[],
byte unblock_flag);
static native byte ModifyCHV (byte CHV_number,
byte old_CHV_buffe[],
byte new_CHV_buffer[],
byte unblock_flag);
<dp n="d60"/>
static native byte GetFileStatus ();
static native byte SetFileStatus (byte file_status);
static native byte GrantSupervisorMode ();
static native byte RevokeSupervisorMode();
static native byte SetFileACL (byte file_acl[]);
static native byte GetFileACL (byte file_acl[]);
∥文件上下文操作
static native void Init FileStatus ();
static native void Backup FileStatus ();
static native void RestoreFileStatus ();
∥实用程序
static native byte CompareBuffer (byte pattern_length,
byte buffer_1[],
byte buffer_2[]);
static native short AvailableMemory ();
static native void ResetCard (byte mode);
static native byte SendATR ();
static native byte SetDefaultATR (byte buffer[],
byte length);
static native byte Execute (short file_id,
byte flag);
∥全局状态变量函数
static native byte Getldentity ();
static native byte GetRecordNb ();
static native short GetApplicationld ();
static native byte GetRecordLength ();
static native byte GetFileType ();
static natiye short GetFileLength ();
static native void SendStatus (byte status);
<dp n="d61"/>
}
/*
*字节代码译码信息表。该表内容是字节代码类型和
*字节代码长度。当前支持代码0-201的所有
*标准字节代码(共202个代码)
*/
#define T_ 0
#define T3 1
#define T6 2
#define T1 3
#define T2 4
#define T7 5
#define T9 6
#define T8 7
#define T12 8
#define T10 9
#define T5 10
#define T11 11
#define T16 12
#define T4 13
#define T13 14
#define T14 15
#define T15 16
#define D(T,L)
_BUILD_ITYPE_AND_ILENGTH(T,L)
#define _BUILD_ITYPE_AND_ILENGTH(T,L)
(_BUILD_ITYPE(T)|_BUILD_ILENGTH(L))
#define _BUILD_ITYPE(T) ((T)<<3)
#define _BUILD_ILENGTH(L) (L)
#define _GET_ITYPE(I) ((I)&0×F8)
#define _GET_ILENGTH(I) ((I)&0×07)
<dp n="d64"/>
const uint8_SCODE_decodeinfo[256]={
D(T4,1), /*NOP */
D(T11,1), /*ACONST_NULL */
D(T10,1), /*ICONST_M1 */
D(T10,1), /*ICONST_0 */
D(T10,1), /*ICONST_1 */
D(T10,1), /*ICONST_2 */
D(T10,1), /*ICONST_3 */
D(T10,1), /*ICONST_4 */
D(T10,1), /*ICONST_5 */
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T10,2), /*BIPUSH */
D(T10,3), /*SIPUSH */
D(T_,2), /*LDC1 */
D(T11,3), /*LDC2 */
D(T_,3),
D(T5,2), /*ILOAD */
D(T_,2),
D(T_,2),
D(T_,2),
D(T5,2), /*ALOAD */
D(T5,1), /*ILOADD_0 */
D(T5,1), /*ILOAD_1 */
D(T5,1), /*ILOAD_2 */
D(T5,1), /*ILOAD_3 */
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
<dp n="d65"/>
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T5,1), /*ALOAD_0 */
D(T5,1), /*ALOAD_1 */
D(T5,1), /*ALOAD_2 */
D(T5,1), /*ALOAD_3 */
D(T_,1), /*IALOAD */
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1), /*AALOAD */
D(T7,1), /*BALOAD */
D(T_,1), /*CALOAD */
D(T7,1), /*SALOAD */
D(T2,2), /*ISTORE */
D(T_,2),
D(T_,2),
D(T_,2),
D(T8,2), /*ASTORE */
D(T2,1), /*ISTORE_0 */
D(T2,1), /*ISTORE_1 */
D(T2,1), /*ISTORE_2 */
D(T2,1), /*ISTORE_3 */
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
<dp n="d66"/>
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T8,1), /*ASTORE_0 */
D(T8,1), /*ASTORE_1 */
D(T8,1), /*ASTORE_2 */
D(T8,1), /*ASTORE_3 */
D(T_,1), /*IASTORE*/
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1), /*AASTORE */
D(T6,1), /*BASTORE */
D(T_,1), /*CASTORE */
D(T6,1), /*SASTORE */
D(T2,1), /*POP */
D(T3,1), /*POP2 */
D(T13,1), /*DUP */
D(T13,1), /*DUP_X1 */
D(T13,1), /*DUP_X2 */
D(T13,1), /*DUP2 */
D(T13,1), /*DUP2_X1 */
D(T13,1), /*DUP2_X2 */
D(T13,1), /*SWAP */
D(T1,1), /*IADD */
D(T_,1),
D(T_,1),
D(T1,1),
D(T_,1), /*ISUB */
D(T_,1),
D(T_,1),
D(T_,1),
<dp n="d67"/>
D(T1,1), /*IMUL */
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1), /*IDIV */
D(T_,1),
D(T_,1),
D(T_,1),
D(T1,1), /*IREM */
D(T_,1),
D(T_,1),
D(T_,1),
D(T9,1), /*INEG */
D(T_,1),
D(T_,1),
D(T_,1),
D(T1,1), /*ISHL */
D(T_,1),
D(T1,1), /*ISHR */
D(T_,1),
D(T1,1), /*IUSHR */
D(T_,1),
D(T1,1), /*IAND */
D(T_,1),
D(T1,1), /*IOR */
D(T_,1),
D(T1,1), /*IXOR */
D(T_,1),
D(T4,3), /*IINC */
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
<dp n="d68"/>
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T9,1), /*INT2BYTE */
D(T9,1), /*INT2CHAR */
D(T_,1), /*INT2SHORT */
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T2,3), /*IFEQ */
D(T2,3), /*IFNE */
D(T2,3), /*IFLT */
D(T2,3), /*IFGE */
D(T2,3), /*IFGT */
D(T2,3), /*IFLT */
D(T3,3), /*IF_ICMPEQ */
D(T3,3), /*IF_ICMPNE */
D(T3,3), /*IF_ICMPLT */
D(T3,3), /*IF_ICMPGE */
D(T3,3), /*IF_ICMPGT */
D(T3,3), /*IF_ICMPLE */
D(T3,3), /*IF_ACMPEQ */
D(T3,3), /*IF_ACMPNE */
D(T4,3), /*GOTO */
D(T_,3), /*JSR */
D(T_,2), /*RET */
D(T2,0), /*TABLESWITCH */
D(T2,0), /*LOOKUPSWITCH*/
D(T2,1), /*IRETURN */
D(T_,1),
<dp n="d69"/>
D(T_,1),
D(T_,1),
D(T8,1), /*ARETURN */
D(T4,1), /*RETURN */
D(T15,3), /*GETSTATIC */
D(T15,3), /*PUTSTATIC */
D(T15,3), /*GETFIELD */
D(T15,3), /*PUTFIELD */
D(T14,3), /*INVOKEVIRTUAL */
D(T14,3), /*INVOKESPECIAL */
D(T14,3), /*INVOKESTATIC */
D(T14,5), /*INVOKEINTERFACE*/
D(T_,1),
D(T11,3), /*NEW */
D(T16,2), /*NEWARRAY */
D(T_,3),
D(T12,1), /*ARRAYLENGTH */
D(T8,1), /*ATHROW */
D(T16,3), /*CHECKCAST */
D(T12,3), /*INSTANCEOF */
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,4),
D(T8,3), /*IFNULL */
D(T8,3), /*IFNONNULL */
D(T_,5),
D(T_,5),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
<dp n="d70"/>
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
<dp n="d71"/>
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
D(T_,1),
(T_,1),
D(T_,1),
};
/* 根据指令类型来检查输入堆栈类型 */
if(itype<=ITYPE9){
if(itype<=ITYPE1}{
check_stack_int(1);
}
check_stack_int(0);
}
else if(itype<=ITYPE12){
check_stack_ref(0);
}
else if(itype<ITYPE11){
push(1);
}
/*设置输出状态 */
if(itype<=ITYPE8){
if(itype<=ITYPE6){
if(itype>=ITYPE6){
pop(1);
}
<dp n="d73"/>
pop(1);
}
pop(1);
}
else if(itype<=ITYPE10){
set_stack_int(0);
}
else if(itype>=ITYPE11 && itype<=ITYPE16){
set_stack_ref(0);
}
/*
*检查输入堆栈状态。通过对字节代码重新编号,
*如果字节代码的值(因此字节代码)属于正确的
*组,则能通过测试而进行必需的安全检查。
*/
if(insn<=TYPE9_END){
if(insn<=TYPE1_END){
check_stack_int(1);
}
check_stack_int(0);
}
else if(insn<=TYPE12_END){
check_stack_ref(0);
}
else if(insn<=TYPE11_END){
push(1)
}
/*
<dp n="d75"/>
*设置输出堆栈状态。
*/
if(insn<=TYPE8_END){
if(insn<=TYPE6_END){
if(insn>=TYPE6_START){
pop(1);
}
pop(1);
}
pop(1);
}
else if(insn<=TYPE10_END){
set_stack_int(0);
}
else if(insn>=TYPE11_START && insn<=TYPE16_END){
set_stack-ref(0);
}
/*类型3*/ #define s_POP2 0 #define s_IF_ICMPEQ 1 #define s_IF_ICMPNE 2 #define s_IF_ICMPLT 3 #define s_IF_ICMPGE 4 #define s_IF_ICMPGT 5 #define s_IF_ICMPLE 6 #define s_IF_ACMPEQ 7 #ddfine s_IF_ACMPNE 8 /*类型6*/ #define TYPE6_START 9 #define s_SASTORE 9 #define s_AASTORE 10 #define s_BASTORE 11 #define TYPE6_END 12 /*类型1*/ #define s_IADD 13 #define s_ISUB 14 #define s_IMUL 15 #define s_IDIV 16 #define s_IREM 17 #define s_ISHL 18 #define s_ISHR 19 #define s_IUSHR 20 #define s_IAND 21 <dp n="d77"/> #define s_IOR 22 #define s_IXOR 23 #define TYPE1_END 23 /*类型2*/ #define s_ISTORE 24 #define s_POP 25 #define s_IFEQ 26 #define s_IFNE 27 #define s_IFLT 28 #define s_IFGE 29 #define s_IFGT 30 #define s_IFLE 31 #define s_TABLESWITCH 32 #define s_LOOKUPSWITCH 33 #define s_IRETURN 34 /*类型7*/ #define s_SALOAD 35 #define s_AALOAD 36 #define s_BALOAD 37 /*类型9*/ #define s_INEG 39 #define s_INT2BYTE 40 #define s_INT2CHAR 41 #define TYPE9_END 41 /*类型8*/ <dp n="d78"/> #define s_ASTORE 42 #define s_ARETURN 43 #define s_ATHROW 44 #define s_IFNULL 45 #define s_IFNONNULL 46 #define TYPE8_END 46 /*类型12*/ #define s_ARRAYLENGTH 47 #define s_INSTANCEOF 48 #define TYPE12_END 48 /*类型10*/ #define s_SIPUSH 49 #define TYPE10_END 49 /*类型5*/ #define s_ILOAD 50 #define s_ALOAD 51 /*类型11*/ #define TYPE11_START 52 #define s_ACONST_NULL 52 #define s_LDC2 53 #define s_JSR 54 #define s_NEW 55 <dp n="d79"/> #define TYPE11_END 55 /*类型16*/ #define s_NEWARRAY 56 #define s_CHECKCAST 57 #define TYPE16_END 57 /*类型13*/ #define s_DUP 58 #define s_DUP_X1 59 #define s_DUP_X2 60 #define s_DUP2 61 #define s_DUP2_X1 62 #define s_DUP2_X2 63 #define s_SWAP 64 /*类型14*/ #define s_INVOKEVIRTUAL 65/*01000001*/ #define s_INVOKENONVIRTUAL 66/*01000010*/ #define s_INVOKESTATIC 67/*01000011*/ #define s_INVOKEINTERFACE 68/*01000100*/ /*类型15*/ #define s_GETSTATIC 69 #define s_PUTSTATIC 70 #define s_GETFIELD 71 #define s_PUTFIELD 72 /*类型4*/ <dp n="d80"/> #define s_NOP 73 #define s_IINC 74 #define s_GOTO 75 #define s_RET 76 #define s_RETURN 77
Claims (29)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US2905796P | 1996-10-25 | 1996-10-25 | |
| US60/029,057 | 1996-10-25 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1242086A CN1242086A (zh) | 2000-01-19 |
| CN1183449C true CN1183449C (zh) | 2005-01-05 |
Family
ID=21846980
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNB971810370A Expired - Lifetime CN1183449C (zh) | 1996-10-25 | 1997-10-22 | 用微控制器使用高级程序设计语言 |
Country Status (14)
| Country | Link |
|---|---|
| US (7) | US6308317B1 (zh) |
| EP (1) | EP0932865B1 (zh) |
| JP (2) | JP2000514584A (zh) |
| KR (1) | KR100329063B1 (zh) |
| CN (1) | CN1183449C (zh) |
| AU (1) | AU722463B2 (zh) |
| BR (1) | BR9713267A (zh) |
| DE (1) | DE69714752C5 (zh) |
| ES (1) | ES2184066T3 (zh) |
| MY (1) | MY126363A (zh) |
| PT (1) | PT932865E (zh) |
| TW (1) | TW476914B (zh) |
| WO (1) | WO1998019237A1 (zh) |
| ZA (1) | ZA979479B (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104182267A (zh) * | 2013-05-21 | 2014-12-03 | 中兴通讯股份有限公司 | 编译方法、解释方法、装置及用户设备 |
Families Citing this family (293)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| ES2153455T3 (es) | 1995-08-04 | 2001-03-01 | Belle Gate Invest B V | Sistema de intercambio de datos que incluye unidades portatiles de procesamiento de datos. |
| US6385645B1 (en) | 1995-08-04 | 2002-05-07 | Belle Gate Investments B.V. | Data exchange system comprising portable data processing units |
| EP0825506B1 (en) | 1996-08-20 | 2013-03-06 | Invensys Systems, Inc. | Methods and apparatus for remote process control |
| EP0932865B1 (en) | 1996-10-25 | 2002-08-14 | SCHLUMBERGER Systèmes | Using a high level programming language with a microcontroller |
| US6934945B1 (en) * | 1997-03-14 | 2005-08-23 | Cardsoft, Inc. | Method and apparatus for controlling communications |
| ES2180142T3 (es) | 1997-06-27 | 2003-02-01 | Swisscom Mobile Ag | Procedimiento de transaccion con un elemento de identificacion portatil. |
| US6157966A (en) * | 1997-06-30 | 2000-12-05 | Schlumberger Malco, Inc. | System and method for an ISO7816 complaint smart card to become master over a terminal |
| US6230006B1 (en) | 1997-09-08 | 2001-05-08 | Acterna, Llc | Test system for remotely testing switches within a telecommunications network |
| US6564995B1 (en) | 1997-09-19 | 2003-05-20 | Schlumberger Malco, Inc. | Smart card application-selection |
| US6736325B1 (en) * | 1998-01-22 | 2004-05-18 | Mondex International Limited | Codelets |
| US6308270B1 (en) | 1998-02-13 | 2001-10-23 | Schlumberger Technologies, Inc. | Validating and certifying execution of a software program with a smart card |
| DE69814174T2 (de) * | 1998-03-23 | 2004-03-04 | International Business Machines Corp. | Java laufzeitsystem mit veränderter sammlung von konstanten |
| FR2779018B1 (fr) | 1998-05-22 | 2000-08-18 | Activcard | Terminal et systeme pour la mise en oeuvre de transactions electroniques securisees |
| US6808111B2 (en) | 1998-08-06 | 2004-10-26 | Visa International Service Association | Terminal software architecture for use with smart cards |
| US7020441B2 (en) * | 1998-09-03 | 2006-03-28 | Casabyte, Inc. | Test system for remotely testing switches within a telecommunications network |
| CA2345794A1 (en) | 1998-09-29 | 2000-04-06 | Sun Microsystems, Inc. | Superposition of data over voice |
| US6591229B1 (en) * | 1998-10-09 | 2003-07-08 | Schlumberger Industries, Sa | Metrology device with programmable smart card |
| US7139915B2 (en) * | 1998-10-26 | 2006-11-21 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
| US20050060549A1 (en) * | 1998-10-26 | 2005-03-17 | Microsoft Corporation | Controlling access to content based on certificates and access predicates |
| US7174457B1 (en) | 1999-03-10 | 2007-02-06 | Microsoft Corporation | System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party |
| US6609199B1 (en) * | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
| US7194092B1 (en) | 1998-10-26 | 2007-03-20 | Microsoft Corporation | Key-based secure storage |
| DE69923352T2 (de) * | 1998-11-03 | 2006-04-27 | Thomson Licensing S.A., Boulogne | Verfahren und gerät zur rechnerkodeaktualisierung unter verwendung einer schnittstelle zu einer integrierten schaltung |
| FR2785695B1 (fr) * | 1998-11-06 | 2003-01-31 | Bull Cp8 | Procede de compactage d'un programme de type code objet intermediaire executable dans un systeme embarque muni de ressources de traitement de donnees, systeme compacteur et systeme embarque multi-applications correspondants |
| JP3749798B2 (ja) * | 1998-12-01 | 2006-03-01 | 株式会社東芝 | Icカードにおけるデータ書込方法およびicカードにおけるデータ読込方法 |
| US6581206B2 (en) * | 1999-11-12 | 2003-06-17 | Sun Microsystems, Inc. | Computer program language subset validation |
| US6633984B2 (en) * | 1999-01-22 | 2003-10-14 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier on a small footprint device using an entry point object |
| US6425003B1 (en) * | 1999-01-22 | 2002-07-23 | Cisco Technology, Inc. | Method and apparatus for DNS resolution |
| US6922835B1 (en) | 1999-01-22 | 2005-07-26 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier on a small footprint device using run time environment privileges |
| US6823520B1 (en) * | 1999-01-22 | 2004-11-23 | Sun Microsystems, Inc. | Techniques for implementing security on a small footprint device using a context barrier |
| US7093122B1 (en) * | 1999-01-22 | 2006-08-15 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier in a small footprint device using shared object interfaces |
| US6907608B1 (en) * | 1999-01-22 | 2005-06-14 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier in a small footprint device using global data structures |
| SE9900321L (sv) * | 1999-02-01 | 2000-08-02 | Mats Iderup | Sätt och anordning vid utbyte av information |
| US7200842B1 (en) * | 1999-02-02 | 2007-04-03 | Sun Microsystems, Inc. | Object-oriented instruction set for resource-constrained devices |
| US6880155B2 (en) | 1999-02-02 | 2005-04-12 | Sun Microsystems, Inc. | Token-based linking |
| US6848111B1 (en) | 1999-02-02 | 2005-01-25 | Sun Microsystems, Inc. | Zero overhead exception handling |
| AU3346400A (en) * | 1999-02-05 | 2000-08-25 | Cyrus Intersoft, Inc. | Instrumenting streamed classes |
| FR2790629A1 (fr) | 1999-02-19 | 2000-09-08 | Bull Cp8 | Procede d'activation d'applications localisees dans une carte a puce par un navigateur du type dit "web" |
| US7127605B1 (en) * | 1999-05-10 | 2006-10-24 | Axalto, Inc. | Secure sharing of application methods on a microcontroller |
| WO2000068902A1 (en) * | 1999-05-11 | 2000-11-16 | Microsoft Corporation | Method and apparatus for sharing data files among runtime environment applets in an integrated circuit card |
| US6845498B1 (en) | 1999-05-11 | 2005-01-18 | Microsoft Corporation | Method and apparatus for sharing data files among run time environment applets in an integrated circuit card |
| US6547150B1 (en) | 1999-05-11 | 2003-04-15 | Microsoft Corporation | Smart card application development system and method |
| US6938244B1 (en) | 1999-05-11 | 2005-08-30 | Microsoft Corp. | Interlaced protocol for smart card application development |
| US7089530B1 (en) | 1999-05-17 | 2006-08-08 | Invensys Systems, Inc. | Process control configuration system with connection validation and configuration |
| AU5025600A (en) | 1999-05-17 | 2000-12-05 | Foxboro Company, The | Process control configuration system with parameterized objects |
| US6668271B1 (en) | 1999-05-19 | 2003-12-23 | Richo Company, Ltd. | System for distributing, installing and running web applications (agents) |
| US6546546B1 (en) * | 1999-05-19 | 2003-04-08 | International Business Machines Corporation | Integrating operating systems and run-time systems |
| DE29908783U1 (de) * | 1999-05-19 | 1999-09-09 | Me Technology Europe GmbH, 04430 Dölzig | Eingabegerät für Geschäftsvorfälle |
| FR2794543B1 (fr) * | 1999-06-04 | 2001-08-24 | Gemplus Card Int | Migration de differents langages sources vers un support d'execution |
| EP1208434B1 (en) | 1999-06-10 | 2010-07-21 | Belle Gate Investment B.V. | Arrangements storing different versions of a set of data in separate memory areas and method for updating a set of data in a memory |
| US6788980B1 (en) * | 1999-06-11 | 2004-09-07 | Invensys Systems, Inc. | Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network |
| US6463521B1 (en) * | 1999-06-23 | 2002-10-08 | Sun Microsystems, Inc. | Opcode numbering for meta-data encoding |
| FR2795835B1 (fr) * | 1999-07-01 | 2001-10-05 | Bull Cp8 | Procede de verification de transformateurs de codes pour un systeme embarque, notamment sur une carte a puce |
| US7908216B1 (en) | 1999-07-22 | 2011-03-15 | Visa International Service Association | Internet payment, authentication and loading system using virtual smart card |
| US6684389B1 (en) * | 1999-08-05 | 2004-01-27 | Canon Kabushiki Kaisha | Compiler that decrypts encrypted source code |
| US7376583B1 (en) | 1999-08-10 | 2008-05-20 | Gofigure, L.L.C. | Device for making a transaction via a communications link |
| AU6631600A (en) * | 1999-08-11 | 2001-03-05 | Spinware, Inc. | System and method for controlling access to data stored in portable storage medium |
| FR2797963B1 (fr) * | 1999-08-23 | 2002-11-29 | Trusted Logic | Protocole de gestion, procede de verification et de transformation d'un fragment de programme telecharge et systemes correspondants |
| US6560774B1 (en) * | 1999-09-01 | 2003-05-06 | Microsoft Corporation | Verifier to check intermediate language |
| KR20010050212A (ko) * | 1999-09-13 | 2001-06-15 | 스테븐 디.피터스 | 메모리 카드에 기록된 파일에 대한 접근 제어 시스템 |
| GB9921720D0 (en) | 1999-09-14 | 1999-11-17 | Tao Group Ltd | Loading object-oriented computer programs |
| US7231411B1 (en) * | 1999-09-15 | 2007-06-12 | Koninklijke Philips Electronics N.V. | Removable card system with downloadable agent for communicating with a digital television receiver or other host device |
| AU1223901A (en) * | 1999-10-20 | 2001-04-30 | Spyrus, Inc. | Method and system for an integrated circuit card interface device with multiple modes of operation |
| GB9925227D0 (en) | 1999-10-25 | 1999-12-22 | Internet Limited | Data storage retrieval and access system |
| GB2356268B (en) | 1999-11-10 | 2004-08-18 | Mars Inc | Value transaction systems |
| US6363523B1 (en) * | 1999-11-12 | 2002-03-26 | Sun Microsystems, Inc. | Optimization of N-base typed arithmetic expressions |
| US7107581B2 (en) * | 1999-11-12 | 2006-09-12 | Sun Microsystems, Inc. | Overflow predictive arithmetic instruction optimization using chaining |
| US7207037B2 (en) * | 1999-11-12 | 2007-04-17 | Sun Microsystems, Inc. | Overflow sensitive arithmetic instruction optimization using chaining |
| US7010786B2 (en) | 1999-11-12 | 2006-03-07 | Sun Microsystems, Inc. | Predictive arithmetic overflow detection |
| US7158993B1 (en) | 1999-11-12 | 2007-01-02 | Sun Microsystems, Inc. | API representation enabling submerged hierarchy |
| US8453133B2 (en) * | 1999-11-12 | 2013-05-28 | Oracle America, Inc. | Optimization of N-base typed arithmetic instructions via rework |
| FR2801118B1 (fr) * | 1999-11-17 | 2001-12-21 | Bull Cp8 | Procede de chargement d'applications dans un systeme embarque multi-application, systeme embarque correspondant, et procede d'execution d'une application du systeme embarque |
| DE59911743D1 (de) * | 1999-11-19 | 2005-04-14 | Swisscom Mobile Ag | Anpassbare chipkarte |
| WO2001040910A1 (en) | 1999-12-06 | 2001-06-07 | De Jong, Eduard, Karel | Computer arrangement using non-refreshed dram |
| JP4824240B2 (ja) | 1999-12-07 | 2011-11-30 | オラクル・アメリカ・インコーポレイテッド | 安全な写真担持用識別装置及びこのような識別装置を認証する手段及び方法 |
| CA2393645A1 (en) | 1999-12-07 | 2001-06-14 | Sun Microsystems, Inc. | Computer-readable medium with microprocessor to control reading and computer arranged to communicate with such a medium |
| US6757824B1 (en) * | 1999-12-10 | 2004-06-29 | Microsoft Corporation | Client-side boot domains and boot rules |
| FR2802319B1 (fr) * | 1999-12-10 | 2004-10-01 | Gemplus Card Int | Controle d'acces par capacites pour des applications notamment cooperantes dans une carte a puce |
| US20010007146A1 (en) * | 1999-12-23 | 2001-07-05 | Uwe Hansmann | Method for providing a set of software components |
| FR2804819B1 (fr) | 2000-02-03 | 2002-05-03 | Gemplus Card Int | Gestion de temps au niveau communication pour entite du type carte a puce |
| FR2805062B1 (fr) * | 2000-02-10 | 2005-04-08 | Bull Cp8 | Procede de transmission de flux de donnees a haut debit sur un reseau de type internet entre un serveur et un terminal a carte a puce, notamment d'un flux de donnees multimedia |
| US6748592B1 (en) * | 2000-02-14 | 2004-06-08 | Xoucin, Inc. | Method and apparatus for protectively operating a data/information processing device |
| AU2001238541A1 (en) * | 2000-02-17 | 2001-08-27 | Interactive Video Technologies, Inc. | Incremental bootstrap class loader |
| GB0003920D0 (en) * | 2000-02-21 | 2000-04-05 | Ncipher Corp Limited | Computer system |
| US6813762B1 (en) * | 2000-02-22 | 2004-11-02 | Freescale Semiconductor, Inc. | Method for processing program files in a programming language capable of dynamic loading |
| JP4509291B2 (ja) * | 2000-03-30 | 2010-07-21 | 大日本印刷株式会社 | Icカード、icカードのプログラム更新装置、および、その方法 |
| US6883163B1 (en) | 2000-04-28 | 2005-04-19 | Sun Microsystems, Inc. | Populating resource-constrained devices with content verified using API definitions |
| US6986132B1 (en) | 2000-04-28 | 2006-01-10 | Sun Microsytems, Inc. | Remote incremental program binary compatibility verification using API definitions |
| US6651186B1 (en) | 2000-04-28 | 2003-11-18 | Sun Microsystems, Inc. | Remote incremental program verification using API definitions |
| FR2812101A1 (fr) * | 2000-07-24 | 2002-01-25 | Bull Cp8 | Protocole d'echange de messages entre applications implantees sur un systeme embarque, et systeme embarque correspondant |
| US6675338B1 (en) | 2000-08-09 | 2004-01-06 | Sun Microsystems, Inc. | Internally generated vectors for burnin system |
| US6981245B1 (en) | 2000-09-14 | 2005-12-27 | Sun Microsystems, Inc. | Populating binary compatible resource-constrained devices with content verified using API definitions |
| JP2002091762A (ja) * | 2000-09-14 | 2002-03-29 | Denso Corp | プログラム生成装置 |
| JP2002117381A (ja) * | 2000-10-05 | 2002-04-19 | Dainippon Printing Co Ltd | Icカード |
| FR2815801B1 (fr) | 2000-10-20 | 2004-10-29 | Trusted Logic | Protocole de transmission d'une pluralite de flux logiques d'echange multiple de couples de commande/reponse sur un canal physique unique d'echange entre maitre et esclave et systeme de suivi et de controle d'execution d'appliquettes |
| US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
| US7765095B1 (en) | 2000-10-26 | 2010-07-27 | Cypress Semiconductor Corporation | Conditional branching in an in-circuit emulation system |
| US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
| US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
| US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
| US20020108054A1 (en) * | 2001-02-02 | 2002-08-08 | Moore Christopher S. | Solid-state memory device storing program code and methods for use therewith |
| CN1227626C (zh) * | 2001-02-08 | 2005-11-16 | 诺基亚有限公司 | 智能读卡器 |
| US7080373B2 (en) * | 2001-03-07 | 2006-07-18 | Freescale Semiconductor, Inc. | Method and device for creating and using pre-internalized program files |
| FR2822334A1 (fr) * | 2001-03-16 | 2002-09-20 | Schlumberger Systems & Service | Module d'idente d'abonne a gestion independante et securisee d'une pluralite de commandes d'au moins une appliquette, notamment pour un equipement mobile de communication |
| AU2006200734B2 (en) * | 2001-05-17 | 2007-12-13 | Accenture Global Services Limited | Pipeline architecture for use with net-centric application program architectures |
| US6971001B1 (en) * | 2001-05-17 | 2005-11-29 | Accenture Global Services Gmbh | General and reusable components for defining net-centric application program architectures |
| US20040218762A1 (en) | 2003-04-29 | 2004-11-04 | Eric Le Saint | Universal secure messaging for cryptographic modules |
| US8209753B2 (en) * | 2001-06-15 | 2012-06-26 | Activcard, Inc. | Universal secure messaging for remote security tokens |
| MXPA04002494A (es) * | 2001-08-13 | 2004-07-30 | Qualcomm Inc | Privilegio para acceso de nivel de aplicacion en un area de almacenaje en un dispositivo de computadora. |
| US7155702B2 (en) * | 2001-09-13 | 2006-12-26 | Axalto Sa | Interface and stub generation for code distribution and synthesis |
| US7406674B1 (en) | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
| US7275260B2 (en) | 2001-10-29 | 2007-09-25 | Sun Microsystems, Inc. | Enhanced privacy protection in identification in a data communications network |
| US7085840B2 (en) | 2001-10-29 | 2006-08-01 | Sun Microsystems, Inc. | Enhanced quality of identification in a data communications network |
| US20030084302A1 (en) * | 2001-10-29 | 2003-05-01 | Sun Microsystems, Inc., A Delaware Corporation | Portability and privacy with data communications network browsing |
| US7496751B2 (en) * | 2001-10-29 | 2009-02-24 | Sun Microsystems, Inc. | Privacy and identification in a data communications network |
| JP4055393B2 (ja) * | 2001-10-30 | 2008-03-05 | ソニー株式会社 | データ処理装置およびその方法とプログラム |
| US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
| US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
| US6971004B1 (en) | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
| US8069405B1 (en) | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
| US7770113B1 (en) | 2001-11-19 | 2010-08-03 | Cypress Semiconductor Corporation | System and method for dynamically generating a configuration datasheet |
| US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
| US7774190B1 (en) | 2001-11-19 | 2010-08-10 | Cypress Semiconductor Corporation | Sleep and stall in an in-circuit emulation system |
| US7243853B1 (en) | 2001-12-04 | 2007-07-17 | Visa U.S.A. Inc. | Method and system for facilitating memory and application management on a secured token |
| EP1463992A1 (en) * | 2002-01-11 | 2004-10-06 | Sierra Wireless, Inc. | Host extensible wireless application interface |
| EP1355268B1 (en) * | 2002-02-28 | 2006-04-05 | Matsushita Electric Industrial Co., Ltd. | Memory card |
| US20100174717A1 (en) * | 2002-02-28 | 2010-07-08 | Olivier Fambon | Interative serialisation procedure for structured software objects |
| US8769517B2 (en) * | 2002-03-15 | 2014-07-01 | International Business Machines Corporation | Generating a common symbol table for symbols of independent applications |
| US7010783B2 (en) | 2002-03-18 | 2006-03-07 | Sun Microsystems, Inc. | Method and apparatus for deployment of high integrity software using reduced dynamic memory allocation |
| US7181737B2 (en) | 2002-03-18 | 2007-02-20 | Sun Microsystems, Inc. | Method and apparatus for deployment of high integrity software using static procedure return addresses |
| US6912633B2 (en) | 2002-03-18 | 2005-06-28 | Sun Microsystems, Inc. | Enhanced memory management for portable devices |
| US6996802B2 (en) | 2002-03-18 | 2006-02-07 | Sun Microsystems, Inc. | Method and apparatus for deployment of high integrity software using initialization order and calling order constraints |
| US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
| DE10216602A1 (de) * | 2002-04-15 | 2003-10-30 | Giesecke & Devrient Gmbh | Optimierung von compilergeneriertem Programmcode |
| US7890771B2 (en) | 2002-04-17 | 2011-02-15 | Microsoft Corporation | Saving and retrieving data based on public key encryption |
| US7308608B1 (en) | 2002-05-01 | 2007-12-11 | Cypress Semiconductor Corporation | Reconfigurable testing system and method |
| US7127241B2 (en) * | 2002-05-09 | 2006-10-24 | Casabyte, Inc. | Method, apparatus and article to remotely associate wireless communications devices with subscriber identities and/or proxy wireless communications devices |
| FR2840084A1 (fr) * | 2002-05-27 | 2003-11-28 | Gemplus Card Int | Procede de verification de codes pour microcircuits a ressources limitees |
| NO20023194D0 (no) * | 2002-07-01 | 2002-07-01 | Sospita As | Fremgangsmåte og apparatur for eksekvering av programvareapplikasjoner i et multiprosessormiljö |
| US20040122774A1 (en) * | 2002-08-02 | 2004-06-24 | Martin Studd | Method and system for executing applications on a mobile device |
| US7761845B1 (en) | 2002-09-09 | 2010-07-20 | Cypress Semiconductor Corporation | Method for parameterizing a user module |
| JP4504192B2 (ja) * | 2002-09-16 | 2010-07-14 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 加入モジュールへのセキュアアクセス方法 |
| DE60224391T2 (de) | 2002-09-16 | 2009-01-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Sicherer Zugang zu einem Teilnehmermodul |
| US20040139021A1 (en) | 2002-10-07 | 2004-07-15 | Visa International Service Association | Method and system for facilitating data access and management on a secure token |
| US6904591B2 (en) * | 2002-11-01 | 2005-06-07 | Oz Development, Inc. | Software development system for editable executables |
| FR2846770B1 (fr) * | 2002-11-04 | 2005-01-28 | Oberthur Card Syst Sa | Carte a microcircuit comportant des moyens de publication de ses objets informatiques |
| CN1276363C (zh) * | 2002-11-13 | 2006-09-20 | 深圳市朗科科技有限公司 | 借助半导体存储装置实现数据安全存储和算法存储的方法 |
| US20040123152A1 (en) * | 2002-12-18 | 2004-06-24 | Eric Le Saint | Uniform framework for security tokens |
| US7272830B2 (en) | 2003-01-16 | 2007-09-18 | Sun Microsystems, Inc. | Ordering program data for loading on a device |
| US7484095B2 (en) | 2003-01-16 | 2009-01-27 | Sun Microsystems, Inc. | System for communicating program data between a first device and a second device |
| US7281244B2 (en) | 2003-01-16 | 2007-10-09 | Sun Microsystems, Inc. | Using a digital fingerprint to commit loaded data in a device |
| US7165246B2 (en) | 2003-01-16 | 2007-01-16 | Sun Microsystems, Inc. | Optimized representation of data type information in program verification |
| US20040143739A1 (en) * | 2003-01-16 | 2004-07-22 | Sun Mircosystems, Inc., A Delaware Corporation | Run time code integrity checks |
| US8121955B2 (en) * | 2003-01-16 | 2012-02-21 | Oracle America, Inc. | Signing program data payload sequence in program loading |
| US7222331B2 (en) | 2003-01-16 | 2007-05-22 | Sun Microsystems, Inc. | Linking of virtual methods |
| CN100388191C (zh) | 2003-04-01 | 2008-05-14 | 松下电器产业株式会社 | 程序连接方法、装置以及终端装置 |
| US20040199787A1 (en) * | 2003-04-02 | 2004-10-07 | Sun Microsystems, Inc., A Delaware Corporation | Card device resource access control |
| US20040221174A1 (en) * | 2003-04-29 | 2004-11-04 | Eric Le Saint | Uniform modular framework for a host computer system |
| US7328432B2 (en) * | 2003-06-02 | 2008-02-05 | Sun Microsystems, Inc. | Proximity-based addressing for supporting in-place execution in virtual machines |
| US7184756B2 (en) * | 2003-06-12 | 2007-02-27 | Motorola Inc. | Wireless communication device with tamper resistant configuration settings |
| WO2005007258A1 (en) * | 2003-07-23 | 2005-01-27 | Koninklijke Philips Electronics N.V. | Device to process program codes |
| US10437964B2 (en) * | 2003-10-24 | 2019-10-08 | Microsoft Technology Licensing, Llc | Programming interface for licensing |
| CH716409B1 (de) * | 2003-11-12 | 2021-01-29 | Legic Identsystems Ag | Verfahren zum Einschreiben einer Datenorganisation in Identifikationsmedien und zum Einschreiben und Ausführen von Applikationen in der Datenorganisation. |
| DE10357257A1 (de) * | 2003-12-08 | 2005-06-30 | Giesecke & Devrient Gmbh | Java Smart Card Chip mit für globale Variablen reserviertem Speicherbereich |
| US7907935B2 (en) * | 2003-12-22 | 2011-03-15 | Activcard Ireland, Limited | Intelligent remote device |
| US20050138380A1 (en) | 2003-12-22 | 2005-06-23 | Fedronic Dominique L.J. | Entry control system |
| FR2864398A1 (fr) * | 2003-12-23 | 2005-06-24 | France Telecom | Terminal de telecommunication a deux espaces d'execution |
| US7230562B1 (en) * | 2004-02-10 | 2007-06-12 | Zilog, Inc. | Sending a script to a virtual machine for immediate interpreting |
| US7259696B1 (en) * | 2004-02-10 | 2007-08-21 | Zilog, Inc. | Interactive web-based codeset selection and development tool |
| US7227492B1 (en) * | 2004-02-10 | 2007-06-05 | Zilog, Inc. | Interpreting a common script block to output various forms of data according to a common protocol |
| US7436345B1 (en) * | 2004-02-10 | 2008-10-14 | Zilog, Inc. | Script instruction for jumping to a location, interpreting a predetermined number of instructions and then jumping back |
| US7091857B2 (en) * | 2004-02-12 | 2006-08-15 | Mi-Jack Products, Inc. | Electronic control system used in security system for cargo trailers |
| US7140549B2 (en) | 2004-02-24 | 2006-11-28 | Sun Microsystems, Inc. | Method and apparatus for selecting a desired application on a smart card |
| US7191288B2 (en) | 2004-02-24 | 2007-03-13 | Sun Microsystems, Inc. | Method and apparatus for providing an application on a smart card |
| US7374099B2 (en) | 2004-02-24 | 2008-05-20 | Sun Microsystems, Inc. | Method and apparatus for processing an application identifier from a smart card |
| US7165727B2 (en) | 2004-02-24 | 2007-01-23 | Sun Microsystems, Inc. | Method and apparatus for installing an application onto a smart card |
| WO2005086000A2 (en) * | 2004-03-04 | 2005-09-15 | Axalto Sa | A secure sharing of resources between applications in independent execution environments in a retrievable token (e.g smart card) |
| US7295049B1 (en) | 2004-03-25 | 2007-11-13 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
| US20050263596A1 (en) * | 2004-05-12 | 2005-12-01 | Solicore, Inc. | Portable charger, including portable sleeve, for an electronically readable card |
| US20060041854A1 (en) * | 2004-07-22 | 2006-02-23 | Steven Schlanger | Devices and methods for programming microcontrollers |
| US8069436B2 (en) * | 2004-08-13 | 2011-11-29 | Cypress Semiconductor Corporation | Providing hardware independence to automate code generation of processing device firmware |
| US8286125B2 (en) | 2004-08-13 | 2012-10-09 | Cypress Semiconductor Corporation | Model for a hardware device-independent method of defining embedded firmware for programmable systems |
| US7855672B1 (en) | 2004-08-19 | 2010-12-21 | Ixys Ch Gmbh | Compressed codeset database format for remote control devices |
| US20060047954A1 (en) * | 2004-08-30 | 2006-03-02 | Axalto Inc. | Data access security implementation using the public key mechanism |
| KR100597413B1 (ko) | 2004-09-24 | 2006-07-05 | 삼성전자주식회사 | 자바 바이트코드 변환 방법 및 상기 변환을 수행하는 자바인터프리터 |
| US20060080655A1 (en) * | 2004-10-09 | 2006-04-13 | Axalto Inc. | System and method for post-issuance code update employing embedded native code |
| FR2877454B1 (fr) * | 2004-11-04 | 2006-12-29 | Gemplus Sa | Procede de chargement d'un code logiciel en langage intermediaire oriente objet dans un appareil portatif |
| US7232073B1 (en) | 2004-12-21 | 2007-06-19 | Sun Microsystems, Inc. | Smart card with multiple applications |
| JP4215037B2 (ja) * | 2004-12-27 | 2009-01-28 | セイコーエプソン株式会社 | リソース管理システム、プリンタ、プリンタ用ネットワークカードおよびリソース管理プログラム、並びにリソース管理方法 |
| JP2006244451A (ja) * | 2005-02-01 | 2006-09-14 | Seiko Epson Corp | リソース管理システムおよびリソース管理プログラム、並びにリソース管理方法 |
| JP4207938B2 (ja) * | 2005-02-01 | 2009-01-14 | セイコーエプソン株式会社 | ソフトウェア認証システム、ソフトウェア認証プログラム、およびソフトウェア認証方法 |
| US7332976B1 (en) | 2005-02-04 | 2008-02-19 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
| JP4311386B2 (ja) * | 2005-02-14 | 2009-08-12 | セイコーエプソン株式会社 | ファイル操作制限システムおよびファイル操作制限プログラム、ファイル操作制限方法、電子機器並びに印刷装置 |
| US20060203733A1 (en) * | 2005-02-17 | 2006-09-14 | Casabyte, Inc. | Methods, apparatuses, and articles to remotely test communications networks using digital fingerprints of content |
| JP4232767B2 (ja) * | 2005-03-14 | 2009-03-04 | セイコーエプソン株式会社 | ソフトウェア認証システムおよびソフトウェア認証プログラム、並びにソフトウェア認証方法 |
| JP4628149B2 (ja) * | 2005-03-14 | 2011-02-09 | 株式会社エヌ・ティ・ティ・ドコモ | アクセス制御装置及びアクセス制御方法 |
| DE102005019753A1 (de) * | 2005-04-28 | 2006-11-09 | Braun Gmbh | Blutdruckmessgerät sowie Chipkarte hierfür |
| US7400183B1 (en) | 2005-05-05 | 2008-07-15 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
| US8089461B2 (en) | 2005-06-23 | 2012-01-03 | Cypress Semiconductor Corporation | Touch wake for electronic devices |
| US8887295B2 (en) * | 2005-06-27 | 2014-11-11 | Safend Ltd. | Method and system for enabling enterprises to use detachable memory devices that contain data and executable files in controlled and secure way |
| US7792289B2 (en) * | 2005-06-28 | 2010-09-07 | Mark Ellery Ogram | Encrypted communications |
| US7698703B2 (en) * | 2005-06-29 | 2010-04-13 | Gemalto Inc. | Imparting digital uniqueness to the types of a programming language using a unique digital sequence |
| US7647630B2 (en) * | 2005-12-15 | 2010-01-12 | International Business Machines Corporation | Associating security information with information objects in a data processing system |
| US20070143601A1 (en) * | 2005-12-15 | 2007-06-21 | Arroyo Diana J | System and method for authorizing information flows |
| DE102005061659A1 (de) * | 2005-12-22 | 2007-06-28 | Giesecke & Devrient Gmbh | Sicherung eines tragbaren Datenträgers gegen Angriffe |
| FR2895608B1 (fr) * | 2005-12-23 | 2008-03-21 | Trusted Logic Sa | Procede pour la realisation d'un compteur securise sur un systeme informatique embarque disposant d'une carte a puce |
| US20070192840A1 (en) * | 2006-02-10 | 2007-08-16 | Lauri Pesonen | Mobile communication terminal |
| JP4933292B2 (ja) * | 2006-02-28 | 2012-05-16 | キヤノン株式会社 | 情報処理装置、無線通信方法、記憶媒体、プログラム |
| US8067948B2 (en) | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
| US20080052770A1 (en) * | 2006-03-31 | 2008-02-28 | Axalto Inc | Method and system of providing security services using a secure device |
| US9092635B2 (en) | 2006-03-31 | 2015-07-28 | Gemalto Sa | Method and system of providing security services using a secure device |
| DE102006023436A1 (de) * | 2006-05-18 | 2007-11-22 | Giesecke & Devrient Gmbh | Authentisierung für entfernte Funktionsaufrufe |
| EP1860589B1 (en) * | 2006-05-26 | 2013-11-27 | Incard SA | Method for accessing structured data in IC Cards |
| EP1881404A1 (fr) * | 2006-07-20 | 2008-01-23 | Gemplus | Procédé de protection dynamique des données lors de l'exécution d'un code logiciel en langage intermédiaire dans un appareil numérique |
| US7817799B2 (en) * | 2006-09-07 | 2010-10-19 | International Business Machines Corporation | Maintaining encryption key integrity |
| EP1936574A1 (en) * | 2006-12-01 | 2008-06-25 | Cassis International PTE Ltd. | CAP file for the personalisation of a Java application |
| US7971061B2 (en) * | 2006-12-11 | 2011-06-28 | Pitney Bowes Inc. | E-mail system and method having certified opt-in capabilities |
| US8285329B1 (en) | 2007-04-02 | 2012-10-09 | Sprint Communications Company L.P. | Mobile device-based control of smart card operation |
| US8516025B2 (en) | 2007-04-17 | 2013-08-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
| US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
| US8040266B2 (en) | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
| US7737724B2 (en) * | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
| US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
| US8092083B2 (en) | 2007-04-17 | 2012-01-10 | Cypress Semiconductor Corporation | Temperature sensor with digital bandgap |
| US9564902B2 (en) | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
| US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
| US8266575B1 (en) | 2007-04-25 | 2012-09-11 | Cypress Semiconductor Corporation | Systems and methods for dynamically reconfiguring a programmable system on a chip |
| US8065653B1 (en) | 2007-04-25 | 2011-11-22 | Cypress Semiconductor Corporation | Configuration of programmable IC design elements |
| ITMI20070996A1 (it) | 2007-05-17 | 2008-11-18 | Incard Sa | Metodo per il controllo di esecuzione di un'applet per una ic card |
| US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
| US8249654B1 (en) * | 2007-09-27 | 2012-08-21 | Sprint Communications Company L.P. | Dynamic smart card application loading |
| US9883381B1 (en) | 2007-10-02 | 2018-01-30 | Sprint Communications Company L.P. | Providing secure access to smart card applications |
| JP5262089B2 (ja) * | 2007-11-30 | 2013-08-14 | 凸版印刷株式会社 | Icカードに実装されるコンピュータ装置及びその処理方法 |
| CN101520733B (zh) * | 2008-02-27 | 2014-04-16 | 国际商业机器公司 | 装载类的方法和装置及重组类存档文件方法 |
| CN101256612B (zh) * | 2008-04-01 | 2010-11-03 | 北京飞天诚信科技有限公司 | 基于.Net卡的程序保护方法和系统 |
| CN101419549B (zh) * | 2008-05-13 | 2012-04-18 | 飞天诚信科技股份有限公司 | 基于.Net卡查找类和函数的方法和装置 |
| CN104407518B (zh) | 2008-06-20 | 2017-05-31 | 因文西斯系统公司 | 对用于过程控制的实际和仿真设施进行交互的系统和方法 |
| US8806457B2 (en) * | 2008-12-15 | 2014-08-12 | Apple Inc. | Deferred constant pool generation |
| US20100211591A1 (en) * | 2009-02-16 | 2010-08-19 | Chuan-Hua Chang | Apparatus for processing strings simultaneously |
| US9448964B2 (en) | 2009-05-04 | 2016-09-20 | Cypress Semiconductor Corporation | Autonomous control in a programmable system |
| US8463964B2 (en) | 2009-05-29 | 2013-06-11 | Invensys Systems, Inc. | Methods and apparatus for control configuration with enhanced change-tracking |
| US8127060B2 (en) | 2009-05-29 | 2012-02-28 | Invensys Systems, Inc | Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware |
| US9384063B2 (en) * | 2009-06-18 | 2016-07-05 | Microsoft Technology Licensing, Llc | Eliding synchronization in a concurrent data structure |
| JP5449905B2 (ja) * | 2009-07-29 | 2014-03-19 | フェリカネットワークス株式会社 | 情報処理装置、プログラム、および情報処理システム |
| JP5607170B2 (ja) * | 2009-11-05 | 2014-10-15 | トラステツド・ロジツク | 安全なポータブルオブジェクト |
| KR101054596B1 (ko) * | 2009-11-18 | 2011-08-04 | 에스케이씨앤씨 주식회사 | 자바카드용 마이그레이터를 이용한 메모리 절감 방법 |
| US8276188B2 (en) * | 2009-12-03 | 2012-09-25 | Condel International Technologies Inc. | Systems and methods for managing storage devices |
| DE102010004446A1 (de) * | 2010-01-13 | 2011-07-14 | Giesecke & Devrient GmbH, 81677 | Verfahren zum Bereitstellen eines sicheren Zählers auf einem Endgerät |
| US8307134B2 (en) * | 2010-01-15 | 2012-11-06 | Apple Inc. | Multiple communication interfaces on a portable storage device |
| US8538480B2 (en) * | 2010-03-30 | 2013-09-17 | Qualcomm Incorporated | Methods and apparatus for device applet management on smart cards |
| EP2397998A1 (fr) * | 2010-06-17 | 2011-12-21 | Gemalto SA | Procédé et système de contrôle du traitement de plusieurs flux de communication radiofréquence par une carte à circuits intégrés |
| US8769518B1 (en) * | 2010-06-29 | 2014-07-01 | Ca, Inc. | Ensuring determinism during programmatic replay in a virtual machine |
| US8499299B1 (en) | 2010-06-29 | 2013-07-30 | Ca, Inc. | Ensuring deterministic thread context switching in virtual machine applications |
| US8732670B1 (en) | 2010-06-29 | 2014-05-20 | Ca, Inc. | Ensuring determinism during programmatic replay in a virtual machine |
| US8959492B2 (en) * | 2010-12-14 | 2015-02-17 | Ngmoco, Llc | Communication protocol between a high-level language and a native language |
| US8196131B1 (en) | 2010-12-17 | 2012-06-05 | Google Inc. | Payment application lifecycle management in a contactless smart card |
| US8352749B2 (en) * | 2010-12-17 | 2013-01-08 | Google Inc. | Local trusted services manager for a contactless smart card |
| US8335921B2 (en) | 2010-12-17 | 2012-12-18 | Google, Inc. | Writing application data to a secure element |
| US8533336B1 (en) * | 2011-02-04 | 2013-09-10 | Google Inc. | Automated web frontend sharding |
| JP5329602B2 (ja) * | 2011-05-12 | 2013-10-30 | 株式会社三菱東京Ufj銀行 | 端末装置およびプログラム |
| EP2535832B1 (en) * | 2011-06-17 | 2017-04-26 | Simulity Labs Ltd | A method for operating a virtual machine over a file system |
| US8255687B1 (en) | 2011-09-15 | 2012-08-28 | Google Inc. | Enabling users to select between secure service providers using a key escrow service |
| US8171525B1 (en) | 2011-09-15 | 2012-05-01 | Google Inc. | Enabling users to select between secure service providers using a central trusted service manager |
| US8313036B1 (en) | 2011-09-16 | 2012-11-20 | Google Inc. | Secure application directory |
| US9544759B2 (en) | 2011-11-01 | 2017-01-10 | Google Inc. | Systems, methods, and computer program products for managing states |
| CA2854277C (en) | 2011-11-01 | 2016-06-07 | Jvl Ventures, Llc | Systems, methods, and computer program products for managing secure elements |
| JP5818695B2 (ja) * | 2012-01-04 | 2015-11-18 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | コード変換方法、プログラム及びシステム |
| US9372985B2 (en) | 2012-01-25 | 2016-06-21 | Sony Corporation | Information processing device, information processing method, and computer program |
| US8385553B1 (en) | 2012-02-28 | 2013-02-26 | Google Inc. | Portable secure element |
| JP5953867B2 (ja) * | 2012-03-26 | 2016-07-20 | 富士ゼロックス株式会社 | プログラム、及びプログラム保護装置 |
| ITMI20120561A1 (it) * | 2012-04-05 | 2013-10-06 | St Microelectronics Srl | Metodo per proteggere un programma applicativo |
| US8429409B1 (en) | 2012-04-06 | 2013-04-23 | Google Inc. | Secure reset of personal and service provider information on mobile devices |
| US20130311382A1 (en) * | 2012-05-21 | 2013-11-21 | Klaus S. Fosmark | Obtaining information for a payment transaction |
| US9383448B2 (en) | 2012-07-05 | 2016-07-05 | Deca System Co., Ltd. | Golf GPS device with automatic hole recognition and playing hole selection |
| US8676709B2 (en) | 2012-07-31 | 2014-03-18 | Google Inc. | Merchant category codes in a proxy card transaction |
| US9479571B2 (en) | 2012-09-18 | 2016-10-25 | Google Inc. | Systems, methods, and computer program products for interfacing multiple service provider trusted service managers and secure elements |
| EP2843605A1 (en) * | 2013-08-30 | 2015-03-04 | Gemalto SA | Method for authenticating transactions |
| US9516006B2 (en) * | 2013-10-23 | 2016-12-06 | Google Inc. | Re-programmable secure cryptographic device |
| US9280339B1 (en) * | 2013-12-12 | 2016-03-08 | Amazon Technologies, Inc. | Class replacer during application installation |
| US9403046B2 (en) * | 2014-11-05 | 2016-08-02 | WWTemplar LLC | Remote control of fire suppression systems |
| US10176094B2 (en) | 2015-06-30 | 2019-01-08 | Renesas Electronics America Inc. | Common MCU self-identification information |
| US10466977B2 (en) | 2015-10-11 | 2019-11-05 | Renesas Electronics America Inc. | Data driven embedded application building and configuration |
| JP6275098B2 (ja) * | 2015-10-16 | 2018-02-07 | 三菱電機株式会社 | 制御装置およびレジスタの故障復帰方法 |
| WO2017209876A1 (en) * | 2016-05-31 | 2017-12-07 | Brocade Communications Systems, Inc. | Buffer manager |
| KR101894894B1 (ko) | 2017-06-16 | 2018-09-05 | 서울대학교산학협력단 | 바이트코드 처리 장치 및 동작 방법 |
| CN109840395A (zh) * | 2017-11-24 | 2019-06-04 | 航天信息股份有限公司 | 一种基于Java卡下载应用程序的方法和系统 |
| US10698666B2 (en) * | 2017-12-29 | 2020-06-30 | Microsoft Technology Licensing, Llc | Automatically building software projects |
| CN108966235B (zh) * | 2018-06-20 | 2021-07-02 | 融慧金科金融服务外包(北京)有限公司 | Ios用户网络身份证rhidfa的运行方法 |
| CN110059499A (zh) * | 2019-03-22 | 2019-07-26 | 华为技术有限公司 | 一种文件访问权限认证方法及电子设备 |
| US12216769B2 (en) | 2022-04-29 | 2025-02-04 | Oracle International Corporation | Secure element enforcing a security policy for device peripherals |
| US12197974B2 (en) * | 2022-06-08 | 2025-01-14 | Oracle International Corporation | Logical java card runtime environment |
| US12538130B2 (en) | 2022-09-20 | 2026-01-27 | Oracle International Corporation | Systems and methods for running multiple logical secure elements on the same secure hardware |
| EP4425328A1 (en) * | 2023-02-28 | 2024-09-04 | STMicroelectronics International N.V. | Method of executing a java card application |
Family Cites Families (106)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE408455C (de) | 1923-07-15 | 1925-01-19 | Georg Koenig | Verfahren zur fortlaufenden Bestimmung des Heizwerts von Gasgemischen |
| FR2386080A1 (fr) | 1977-03-31 | 1978-10-27 | Cii Honeywell Bull | Systeme de comptabilisation d'unites homogenes predeterminees |
| US4650975A (en) * | 1984-08-30 | 1987-03-17 | Casio Computer Co., Ltd. | IC card and an identification system thereof |
| US4667290A (en) | 1984-09-10 | 1987-05-19 | 501 Philon, Inc. | Compilers using a universal intermediate language |
| JPS61204741A (ja) | 1985-03-06 | 1986-09-10 | Nec Corp | ソ−スプログラムの圧縮方法 |
| JPH0635227B2 (ja) | 1985-07-31 | 1994-05-11 | トツパン・ム−ア株式会社 | 更新情報と履歴情報の読出し手段を有するicカ−ド |
| US4905138A (en) | 1985-10-17 | 1990-02-27 | Westinghouse Electric Corp. | Meta-interpreter |
| US4874935A (en) | 1986-03-10 | 1989-10-17 | Data Card Coprporation | Smart card apparatus and method of programming same |
| GB2191029B (en) | 1986-05-29 | 1990-12-12 | Almex Systems Ltd | Electronic pass |
| JPH07104891B2 (ja) | 1986-08-05 | 1995-11-13 | 沖電気工業株式会社 | 取引処理装置 |
| US5133072A (en) | 1986-11-13 | 1992-07-21 | Hewlett-Packard Company | Method for improved code generation in reduced instruction set computers |
| JPS63156254A (ja) | 1986-12-19 | 1988-06-29 | Fujitsu Ltd | インタプリタにおける中間テキストの管理方法 |
| JPS63156255A (ja) | 1986-12-19 | 1988-06-29 | Fujitsu Ltd | インタプリタにおけるオ−バレイ方法 |
| US4777355A (en) | 1986-12-24 | 1988-10-11 | Mitsubishi Denki Kabushiki Kaisha | IC card and system for checking the functionality thereof |
| US4791558A (en) * | 1987-02-13 | 1988-12-13 | International Business Machines Corporation | System and method for generating an object module in a first format and then converting the first format into a format which is loadable into a selected computer |
| JPS63231692A (ja) | 1987-03-20 | 1988-09-27 | Mitsubishi Electric Corp | 機密コ−ド書込装置 |
| FR2626095B1 (fr) | 1988-01-20 | 1991-08-30 | Sgs Thomson Microelectronics | Systeme de securite pour proteger des zones de programmation d'une carte a puce |
| US4892974A (en) | 1988-03-10 | 1990-01-09 | Air Products And Chemicals, Inc. | Process for producing mono-ortho-tert-butyl-aniline using silica-alumina catalysts |
| JPH01243125A (ja) * | 1988-03-24 | 1989-09-27 | Fuji Electric Co Ltd | 解釈プログラムの実行速度向上方法 |
| US5195130A (en) | 1988-05-05 | 1993-03-16 | Transaction Technology, Inc. | Computer and telephone apparatus with user friendly computer interface and enhanced integrity features |
| JP2666847B2 (ja) | 1988-06-06 | 1997-10-22 | 日本電気株式会社 | 異種言語間連絡方式 |
| US5313614A (en) * | 1988-12-06 | 1994-05-17 | At&T Bell Laboratories | Method and apparatus for direct conversion of programs in object code form between different hardware architecture computer systems |
| US5119465A (en) * | 1989-06-19 | 1992-06-02 | Digital Equipment Corporation | System for selectively converting plurality of source data structures through corresponding source intermediate structures, and target intermediate structures into selected target structure |
| JPH0378082A (ja) | 1989-08-21 | 1991-04-03 | Hitachi Ltd | 予約取引処理方法 |
| CA2025120A1 (en) | 1989-09-28 | 1991-03-29 | John W. White | Portable and dynamic distributed application architecture |
| US5120939A (en) | 1989-11-09 | 1992-06-09 | At&T Bell Laboratories | Databaseless security system |
| US5339419A (en) * | 1990-06-25 | 1994-08-16 | Hewlett-Packard Company | ANDF compiler using the HPcode-plus compiler intermediate language |
| FR2667171B1 (fr) * | 1990-09-25 | 1994-08-26 | Gemplus Card Int | Support portable a micro-circuit facilement programmable et procede de programmation de ce micro-circuit. |
| US5450575A (en) | 1991-03-07 | 1995-09-12 | Digital Equipment Corporation | Use of stack depth to identify machine code mistakes |
| US5307492A (en) | 1991-03-07 | 1994-04-26 | Digital Equipment Corporation | Mapping assembly language argument list references in translating code for different machine architectures |
| JP3602857B2 (ja) * | 1991-04-23 | 2004-12-15 | 株式会社日立製作所 | 多機種対応型情報処理システム、および、方法 |
| JP2690229B2 (ja) | 1991-11-26 | 1997-12-10 | 三菱電機株式会社 | 非接触icカード |
| US5406380A (en) | 1991-12-30 | 1995-04-11 | Management Graphics, Inc. | Film recorder with interface for user replaceable memory element |
| EP0706692B1 (en) * | 1992-10-26 | 2003-04-16 | Intellect Australia Pty. Ltd. | Host and user transaction system |
| US5469572A (en) | 1992-12-01 | 1995-11-21 | Taylor; James M. | Post compile optimizer for linkable object code |
| US5367685A (en) | 1992-12-22 | 1994-11-22 | Firstperson, Inc. | Method and apparatus for resolving data references in generated code |
| FR2705810B1 (fr) | 1993-05-26 | 1995-06-30 | Gemplus Card Int | Puce de carte à puce munie d'un moyen de limitation du nombre d'authentifications. |
| US5519866A (en) | 1993-06-28 | 1996-05-21 | Taligent, Inc. | Method and apparatus of incrementally linking components of a modeled computer program |
| CA2168434A1 (en) | 1993-07-30 | 1995-09-02 | Quentin Rees Oliver | Device and method for programmable functions |
| US5650761A (en) | 1993-10-06 | 1997-07-22 | Gomm; R. Greg | Cash alternative transaction system |
| GB2283349A (en) | 1993-10-29 | 1995-05-03 | Ibm | Transaction processing system |
| FR2713803B1 (fr) | 1993-12-07 | 1996-01-12 | Gemplus Card Int | Carte à mémoire et procédé de fonctionnement. |
| US5457799A (en) | 1994-03-01 | 1995-10-10 | Digital Equipment Corporation | Optimizer for program loops |
| US5537474A (en) * | 1994-07-29 | 1996-07-16 | Motorola, Inc. | Method and apparatus for authentication in a communication system |
| US5500517A (en) * | 1994-09-02 | 1996-03-19 | Gemplus Card International | Apparatus and method for data transfer between stand alone integrated circuit smart card terminal and remote computer of system operator |
| US5732270A (en) | 1994-09-15 | 1998-03-24 | Visual Edge Software Limited | System and method for providing interoperability among heterogeneous object systems |
| US5544086A (en) | 1994-09-30 | 1996-08-06 | Electronic Payment Services, Inc. | Information consolidation within a transaction network |
| US5841866A (en) * | 1994-09-30 | 1998-11-24 | Microchip Technology Incorporated | Secure token integrated circuit and method of performing a secure authentication function or transaction |
| US5613120A (en) | 1994-10-20 | 1997-03-18 | Silicon Graphics, Inc. | System and method for enabling, without recompilation, modification of class definitions and implementations in an object-oriented computer program |
| US5613012A (en) | 1994-11-28 | 1997-03-18 | Smarttouch, Llc. | Tokenless identification system for authorization of electronic transactions and electronic transmissions |
| US5748964A (en) * | 1994-12-20 | 1998-05-05 | Sun Microsystems, Inc. | Bytecode program interpreter apparatus and method with pre-verification of data type restrictions |
| US5668999A (en) | 1994-12-20 | 1997-09-16 | Sun Microsystems, Inc. | System and method for pre-verification of stack usage in bytecode program loops |
| US5590331A (en) | 1994-12-23 | 1996-12-31 | Sun Microsystems, Inc. | Method and apparatus for generating platform-standard object files containing machine-independent code |
| FI973352A0 (fi) * | 1995-02-17 | 1997-08-15 | Europay Int Sa | Integroidulla piirillä hallittu tapahtumanhallintajärjestelmä |
| US5679945A (en) * | 1995-03-31 | 1997-10-21 | Cybermark, L.L.C. | Intelligent card reader having emulation features |
| US5590197A (en) * | 1995-04-04 | 1996-12-31 | V-One Corporation | Electronic payment system and method |
| DE19518930A1 (de) | 1995-05-23 | 1996-11-28 | Siemens Ag | Verfahren zur Verbindungssteuerung für interaktive Dienste |
| JP3310525B2 (ja) | 1995-06-01 | 2002-08-05 | ビー・イー・テクノロジー株式会社 | デジタルデータ処理装置 |
| US6181867B1 (en) | 1995-06-07 | 2001-01-30 | Intervu, Inc. | Video storage and retrieval system |
| US5692132A (en) | 1995-06-07 | 1997-11-25 | Mastercard International, Inc. | System and method for conducting cashless transactions on a computer network |
| US5689565A (en) | 1995-06-29 | 1997-11-18 | Microsoft Corporation | Cryptography system and method for providing cryptographic services for a computer application |
| US5675804A (en) | 1995-08-31 | 1997-10-07 | International Business Machines Corporation | System and method for enabling a compiled computer program to invoke an interpretive computer program |
| US5663553A (en) * | 1995-09-27 | 1997-09-02 | Intel Corporation | Mass storage device adapter for smart cards |
| DE19536169A1 (de) | 1995-09-29 | 1997-04-03 | Ibm | Multifunktionale Chipkarte |
| CA2160496A1 (en) | 1995-10-13 | 1997-04-14 | Allan M. Brown | Electronic funds acceptor for vending machines |
| EP0896703A4 (en) | 1995-12-01 | 2007-07-04 | Lsi Logic Corp | INTEGRATED NETWORK WEB SITE CHIP, NETWORKROWSER SYSTEM AND NETWORK DATA COMMUNICATION PROCESS |
| US6151618A (en) * | 1995-12-04 | 2000-11-21 | Microsoft Corporation | Safe general purpose virtual machine computing system |
| US6526565B1 (en) | 1995-12-21 | 2003-02-25 | International Business Machines Corporation | Packaging algorithm for providing object oriented applications having reduced footprints |
| FR2742892B1 (fr) | 1995-12-21 | 1998-02-13 | Bull Sa | Systeme de protection de logiciel pour ordinateur ecrit en langage interprete |
| US5835772A (en) | 1995-12-29 | 1998-11-10 | Intel Corporation | Method and apparatus for providing an interface between a system and a peripheral device |
| US5811771A (en) | 1996-05-22 | 1998-09-22 | Dethloff; Juergen | Method and system for paying with a portable data medium having security against over charging and unauthorized use |
| US6535903B2 (en) | 1996-01-29 | 2003-03-18 | Compaq Information Technologies Group, L.P. | Method and apparatus for maintaining translated routine stack in a binary translation environment |
| US6226789B1 (en) | 1996-01-29 | 2001-05-01 | Compaq Computer Corporation | Method and apparatus for data flow analysis |
| US5860008A (en) | 1996-02-02 | 1999-01-12 | Apple Computer, Inc. | Method and apparatus for decompiling a compiled interpretive code |
| US5742756A (en) * | 1996-02-12 | 1998-04-21 | Microsoft Corporation | System and method of using smart cards to perform security-critical operations requiring user authorization |
| TW369753B (en) | 1996-02-14 | 1999-09-11 | Mitsubishi Electric Corp | Data security method and system |
| US5761306A (en) | 1996-02-22 | 1998-06-02 | Visa International Service Association | Key replacement in a public key cryptosystem |
| US6075863A (en) | 1996-02-28 | 2000-06-13 | Encanto Networks | Intelligent communication device |
| US5848274A (en) | 1996-02-29 | 1998-12-08 | Supercede, Inc. | Incremental byte code compilation system |
| US5764989A (en) | 1996-02-29 | 1998-06-09 | Supercede, Inc. | Interactive software development system |
| JPH09244904A (ja) * | 1996-03-12 | 1997-09-19 | Matsushita Electric Ind Co Ltd | 仮想コード翻訳系および仮想マシンシステム |
| US5889941A (en) * | 1996-04-15 | 1999-03-30 | Ubiq Inc. | System and apparatus for smart card personalization |
| US5915226A (en) * | 1996-04-19 | 1999-06-22 | Gemplus Card International | Prepaid smart card in a GSM based wireless telephone network and method for operating prepaid cards |
| US5815657A (en) * | 1996-04-26 | 1998-09-29 | Verifone, Inc. | System, method and article of manufacture for network electronic authorization utilizing an authorization instrument |
| US6151703A (en) | 1996-05-20 | 2000-11-21 | Inprise Corporation | Development system with methods for just-in-time compilation of programs |
| US5794049A (en) | 1996-06-05 | 1998-08-11 | Sun Microsystems, Inc. | Computer system and method for executing architecture specific code with reduced run-time memory space requirements |
| US5946487A (en) | 1996-06-10 | 1999-08-31 | Lsi Logic Corporation | Object-oriented multi-media architecture |
| GB9613450D0 (en) | 1996-06-27 | 1996-08-28 | Europay Int Sa | Payment system |
| US5844218A (en) * | 1996-07-16 | 1998-12-01 | Transaction Technology, Inc. | Method and system for using an application programmable smart card for financial transactions in multiple countries |
| US5923884A (en) * | 1996-08-30 | 1999-07-13 | Gemplus S.C.A. | System and method for loading applications onto a smart card |
| EP0829828A1 (en) | 1996-09-13 | 1998-03-18 | Koninklijke KPN N.V. | Multiple tickets in smart cards |
| US5875335A (en) | 1996-09-30 | 1999-02-23 | Apple Computer, Inc. | Parameter marshaling techniques for dynamic object-oriented programming languages |
| US6438573B1 (en) | 1996-10-09 | 2002-08-20 | Iowa State University Research Foundation, Inc. | Real-time programming method |
| US6094528A (en) | 1996-10-24 | 2000-07-25 | Sun Microsystems, Inc. | Method and apparatus for system building with a transactional interpreter |
| EP0932865B1 (en) * | 1996-10-25 | 2002-08-14 | SCHLUMBERGER Systèmes | Using a high level programming language with a microcontroller |
| US5905895A (en) | 1997-03-07 | 1999-05-18 | International Business Machines Corporation | Method and system for optimizing non-native bytecodes before bytecode interpretation |
| US5966536A (en) | 1997-05-28 | 1999-10-12 | Sun Microsystems, Inc. | Method and apparatus for generating an optimized target executable computer program using an optimized source executable |
| US6055211A (en) | 1997-07-03 | 2000-04-25 | Microchip Technology Incorporated | Force page zero paging scheme for microcontrollers using data random access memory |
| US6078744A (en) | 1997-08-01 | 2000-06-20 | Sun Microsystems | Method and apparatus for improving compiler performance during subsequent compilations of a source program |
| US5987256A (en) | 1997-09-03 | 1999-11-16 | Enreach Technology, Inc. | System and process for object rendering on thin client platforms |
| US6233733B1 (en) | 1997-09-30 | 2001-05-15 | Sun Microsystems, Inc. | Method for generating a Java bytecode data flow graph |
| US6061520A (en) | 1998-04-07 | 2000-05-09 | Sun Microsystems, Inc. | Method and system for performing static initialization |
| US8127121B2 (en) * | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
| US6880155B2 (en) * | 1999-02-02 | 2005-04-12 | Sun Microsystems, Inc. | Token-based linking |
| US9086931B2 (en) * | 2002-11-20 | 2015-07-21 | Purenative Software Corporation | System for translating diverse programming languages |
| US20080282238A1 (en) * | 2007-05-10 | 2008-11-13 | Microsoft Corporation | Static type for late binding |
-
1997
- 1997-10-22 EP EP97911833A patent/EP0932865B1/en not_active Expired - Lifetime
- 1997-10-22 CN CNB971810370A patent/CN1183449C/zh not_active Expired - Lifetime
- 1997-10-22 WO PCT/US1997/018999 patent/WO1998019237A1/en not_active Ceased
- 1997-10-22 MY MYPI97004974A patent/MY126363A/en unknown
- 1997-10-22 PT PT97911833T patent/PT932865E/pt unknown
- 1997-10-22 DE DE69714752.5T patent/DE69714752C5/de not_active Expired - Lifetime
- 1997-10-22 JP JP10520562A patent/JP2000514584A/ja active Pending
- 1997-10-22 KR KR1019997003564A patent/KR100329063B1/ko not_active Expired - Fee Related
- 1997-10-22 AU AU49118/97A patent/AU722463B2/en not_active Ceased
- 1997-10-22 ES ES97911833T patent/ES2184066T3/es not_active Expired - Lifetime
- 1997-10-22 BR BR9713267-5A patent/BR9713267A/pt not_active Application Discontinuation
- 1997-10-23 TW TW086115695A patent/TW476914B/zh not_active IP Right Cessation
- 1997-10-23 ZA ZA9709479A patent/ZA979479B/xx unknown
- 1997-10-24 US US08/957,512 patent/US6308317B1/en not_active Expired - Lifetime
-
2001
- 2001-10-23 US US10/037,390 patent/US7117485B2/en not_active Expired - Lifetime
-
2002
- 2002-09-09 JP JP2002263319A patent/JP3766052B2/ja not_active Expired - Lifetime
-
2006
- 2006-09-29 US US11/537,156 patent/US7818727B2/en not_active Expired - Fee Related
-
2010
- 2010-10-19 US US12/907,949 patent/US8726247B2/en not_active Expired - Fee Related
-
2012
- 2012-06-09 US US13/492,824 patent/US8881119B2/en not_active Expired - Fee Related
- 2012-06-09 US US13/492,821 patent/US8881118B2/en not_active Expired - Fee Related
-
2014
- 2014-05-12 US US14/275,506 patent/US9400668B2/en not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104182267A (zh) * | 2013-05-21 | 2014-12-03 | 中兴通讯股份有限公司 | 编译方法、解释方法、装置及用户设备 |
| CN104182267B (zh) * | 2013-05-21 | 2019-10-25 | 南京中兴新软件有限责任公司 | 编译方法、解释方法、装置及用户设备 |
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN1183449C (zh) | 用微控制器使用高级程序设计语言 | |
| CN1290009C (zh) | 使用全局数据结构在小型注脚设备上允许越过文本屏障进行访问的技术 | |
| HK1041332A1 (zh) | 使用進入點對象在小型注腳設備上允許越過文本屏障進行訪問的技術 | |
| CN1220939C (zh) | 管理协议,验证和转换下载程序片断的方法及对应的系统 | |
| CN1157655C (zh) | 采用文本屏障在小型注脚设备上实施安全的技术 | |
| CN1154071C (zh) | 数据处理单元及包括该数据处理单元的数据交换系统 | |
| CN1261870C (zh) | 数据处理方法及其设备 | |
| CN1351728A (zh) | 使用运行时间环境特权在小型注脚设备上允许越过文本屏障进行访问的技术 | |
| CN1338072A (zh) | 使用共享对象接口在小型注脚设备中允许越过文本屏障进行访问的技术 | |
| CN1282071C (zh) | 数据处理装置、数据处理方法和程序 | |
| CN1241144C (zh) | 自主型集成电路卡 | |
| CN1273893C (zh) | 模块化计算机系统以及相关方法 | |
| CN101042738A (zh) | 一种实现智能卡多应用的方法及数据处理装置 | |
| HK1023827A (zh) | 用微控制器使用高级程序设计语言 | |
| CN1892665A (zh) | 数据处理方法及其设备 | |
| CN1223737A (zh) | 可编程智能装置的便携式安全交易系统 | |
| HK1043414A (zh) | 使用运行时间环境特权在小型注脚设备上允许越过文本屏障进行访问的技术 | |
| HK1021762B (zh) | 使用高级程序语言的微控制器 | |
| HK1057793B (zh) | 数据处理装置、数据处理方法和程序 | |
| HK1062722B (zh) | 数据处理方法及其设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1023827 Country of ref document: HK |
|
| C56 | Change in the name or address of the patentee |
Owner name: SETEC OY Free format text: FORMER NAME: AXALTO SA Owner name: AXALTO SA Free format text: FORMER NAME: SCHLUMBERGER TECHNOLOGIES, INC. |
|
| CP01 | Change in the name or title of a patent holder |
Address after: Monte Carlo, France Patentee after: AXALTO S.A. Address before: Monte Carlo, France Patentee before: Schlumberger Systems |
|
| CP03 | Change of name, title or address |
Address after: East France Patentee after: GEMALTO OY Address before: Monte Carlo, France Patentee before: AXALTO S.A. |
|
| CX01 | Expiry of patent term | ||
| CX01 | Expiry of patent term |
Granted publication date: 20050105 |