你重新设置一下路径就行了
点击左边的框框,程序,双击,模块引用表
然后找到你模块的位置,打开就行了。
我也不知道你具体是不是这个原因,但看你上的图有点儿像。
如果不是这个原因请阐明。
希望对你有帮助
所以把代码从存储器拷贝到RAM中,变成了bootloader的工作之一。一般的,嵌入式系统的存储器以Flash应用最广,Flash分为两种:norFlash和nandFlash,打个不恰当的比方,norFlash相当于ROM,程序可以直接在其上运行,nandFlash相当于硬盘,只负责存储程序。所以一般的bootloader代码都存储在norFlash中,上电后芯片可直接读取其上的代码来运行,而S3C2410芯片比较特别,以它为平台构建的系统可以用nandFlash来储存bootloader。因为它自带了4K的RAM,上电后通过硬件机制将存储器中的前4K代码拷贝到芯片自身的RAM里。 总结一下,硬盘、光驱、软盘等外存设备,由于接口的不同,CPU是不能直接访问的,而CPU 能访问的只有和它共享地址、数据总线的内存因此,程序无法在硬盘、光驱、软盘等外存设备上直接运行,必须读入内存运行,这就是程序加载的原因。也是BOOTLOAD 存在的原因。 BIOS等都是norFlash,程序可以直接在上面运行。 内存与外存的区别 ROM 、 norflash 、nandflash 的区别主要是接口、存储器单元组织的不同: 程序ROM、norflash 是 总线型可以随机按字节读取,容量小;nandflash 是特殊接口,只能页读,容量大 程序ROM 是字节读写单位;norflash 、nandflash 是FLASH 有页、块的概念特别是擦除,必须块擦除。硬盘更是有扇区、簇的概念,便于文件管理,但是也必须有专门的控制器管理 这就是为什么程序都是由 硬盘、光盘等外存读入内存再执行的原因。
Classfile /E:/LXH/projects/java/SETest/src/Testclass
Last modified 2011-11-30; size 454 bytes
MD5 checksum aff926c29617fe449d0cc808330044ad
Compiled from "Testjava"
public class Test
SourceFile: "Testjava"
minor version: 0
major version: 51
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#1 = Methodref #6#17 // java/lang/Object"<init>":()V
#2 = Fieldref #18#19 // java/lang/Systemout:Ljava/io/Prin
tStream;
#3 = String #20 // Hello World
#4 = Methodref #21#22 // java/io/PrintStreamprintln:(Ljava
/lang/String;)V
#5 = Class #23 // Test
#6 = Class #24 // java/lang/Object
#7 = Utf8 sb
#8 = Utf8 Ljava/lang/StringBuilder;
#9 = Utf8 <init>
#10 = Utf8 ()V
#11 = Utf8 Code
#12 = Utf8 LineNumberTable
#13 = Utf8 main
#14 = Utf8 ([Ljava/lang/String;)V
#15 = Utf8 SourceFile
#16 = Utf8 Testjava
#17 = NameAndType #9:#10 // "<init>":()V
#18 = Class #25 // java/lang/System
#19 = NameAndType #26:#27 // out:Ljava/io/PrintStream;
#20 = Utf8 Hello World
#21 = Class #28 // java/io/PrintStream
#22 = NameAndType #29:#30 // println:(Ljava/lang/String;)V
#23 = Utf8 Test
#24 = Utf8 java/lang/Object
#25 = Utf8 java/lang/System
#26 = Utf8 out
#27 = Utf8 Ljava/io/PrintStream;
#28 = Utf8 java/io/PrintStream
#29 = Utf8 println
#30 = Utf8 (Ljava/lang/String;)V
{
public javalangStringBuilder sb;
flags: ACC_PUBLIC
public Test();
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokespecial #1 // Method java/lang/Object"<init>
":()V
4: return
LineNumberTable:
line 5: 0
public static void main(javalangString[]);
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
//读入#2代表的静态对象out,
0: getstatic #2 // Field java/lang/Systemout:Ljav
a/io/PrintStream;
//读入Helloworld字串
3: ldc #3 // String Hello World
//发起执行out上的println方法
5: invokevirtual #4 // Method java/io/PrintStreamprin
tln:(Ljava/lang/String;)V
//返回
8: return
LineNumberTable:
line 8: 0
line 12: 8
}
Java是先编译成字节码,每个字节代表一条指令
加了中文注解
然后由虚拟机执行字节码,把字节码转换成不同型号的cpu的指令。
字节码是跨平台而且统一的,这是Java的核心价值之一。
比如读入常量引索值的指令ldc(load constant) ,字节码为0x12,打开class文件,就会在相应位置看到一个0x12的字节。
javac 把源文件编译成字节码文件class
java 执行字节码文件,过程是把字节码翻译成cpu的指令。比如x86指令。
1G的内存如何运行2G的程序???你看到哪个进程有2G的啊!你所说的2G的程序是指2G的软件吧!打个比方:1个软件有2G,它打开后,没有全部调入到内存的,软件是分很多模块的,通过动态链接库什么的而联系。只有用户使用到软件的某个功能的时候,它才把那个模块调入到内存。真的不理解的话百度HI给我留言。下一讲不清楚
------------------
你的问题其实还关联了个问题,就是虚拟内存的问题。关于虚拟内存,你自己查下资料。给我留言也行
设置虚拟内存方法:右击我的电脑/属性/高级/性能中的设置/高级/虚拟内存中的更改/选自定义大小,在初始大小和最大值,同时设为你的物理内存的两倍。如果你的内存是512MB,就将初始大小和最大值同时设为设为1024MB。设置后需按“设置”按钮,然后再按确定和应用,重新启动电脑设置生效(设置虚拟内存大小没有一个固定的数,大小可以调节。比如:你的物理内存小
以上就是关于易语言模块的“在内存中运行EXE”怎么使用我新手。求解全部的内容,包括:易语言模块的“在内存中运行EXE”怎么使用我新手。求解、程序为什么要加载到内存运行、java HelloWorld 程序在内存中怎么运行的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)