易语言模块的“在内存中运行EXE”怎么使用我新手。求解

易语言模块的“在内存中运行EXE”怎么使用我新手。求解,第1张

你重新设置一下路径就行了

点击左边的框框,程序,双击,模块引用表

然后找到你模块的位置,打开就行了。

我也不知道你具体是不是这个原因,但看你上的图有点儿像。

如果不是这个原因请阐明。

希望对你有帮助

所以把代码从存储器拷贝到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 程序在内存中怎么运行的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10208585.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存