java显示汇编代码 java 汇编

java怎么嵌入汇编代码,或者java怎么嵌入c代码从语法级别上不提供对汇编内嵌的支持 , 不过 , 如果确实需要,可以借助于JNI,它可以调用C/C++代码,这样你可以间接地嵌入汇编代码 。
如何将java语言转变为汇编语言流程:
Java词法分析
最开始java显示汇编代码的时候java显示汇编代码,高级语言编写的程序对编译器来说只是一连串的单个字符组成的字符串 。为java显示汇编代码了让编译器识别这一连串的字符串,需要逐个字符的读取源程序,然后将其切分成有意义的单词,这些被切分后的单词在编译器眼里是以
标识 , 语义值对的形式存在 。
为了从源程序字符串中依次找出单词,编译器需要具有扫描功能,通常这种扫描器可以用一组有限状态机来实现 。为了说明有限状态机是怎么一回事 , 下面给出一个实例 。
下图为一个识别数字的有限状态机,数字由整数部分和可选的小数部分组成 。因此,根据这个有限状态机,250和3.14159都能被识别成一个有效的数字 。
Java语法分析
完成了“词法分析”后 , 接下来就是激动人心的“语法分析”阶段 。通过语法分析得到语法树 。
Java翻译语法树
首先 , 寻找最小表达式,接下来 , 将最小表达式与其周边的表达式合并 。最后,将所有的表达式有序的进行合并,得到最终的汇编语言描述 。
至此,java显示汇编代码我们便将高级语言翻译成了汇编语言 。
如何查看C++和java生成的汇编代码下面有几种方法:
方法一:生成asm文件
1)VS2005:
项目 ---》属性 ---》 配置属性 ---》 c/c++ ---》 输出文件 ---》 右边内容项:汇编输出 ---》带源代码的程序集(/FAs ) 。
这样在项目里面生成后缀为*.asm的文件 。里面还有注释,有利于分析 。
要得到汇编代码与源代码的对应,设置选项:
2)VC6.0:
project settings:
--- C++
--- category == Listing files
---Listing file type == Assembly with source code
方法二:使用反汇编方式(推荐使用这种方法 , 在debug的时候使用)
1)VC6.0在进行断点调试的时候,进行以下步骤:
点击“查看”
“调试窗口”
“Disassably”
即可查看到反汇编的结果
2)VS2005在进行断点调试的时候,进行以下步骤:
点击“调试”
“窗口”
“反汇编”
查看java就直接用javap -v 类文件.class 即可 。详细内容可以参考 jvm虚拟机
java如何从哪里运行?jdk安装好配置环境变量后 , 系统就承认了 java,javac等命令 , 当编译好java文件,就可以在开始——运行——cmd的dos系统下运用指定命令运行java文件 。
JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库 。
JDK包含的基本组件包括:
javac – 编译器,将源程序转成字节码
jar – 打包工具,将相关的类文件打包成一个文件
javadoc – 文档生成器,从源码注释中提取文档
jdb – debugger,查错工具
java – 运行编译后的java程序(.class后缀的)
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器 。Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件 。Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义 。Jconsole: Java进行系统调试和监控的工具
总之,jdk并不是一个应运软件,并不能从哪里运行 。编译时在任何可输入文本的软件中均可(通常用.txt记事本编译) , 编译好后改名.java文件,在dos系统中用 javac命令编译连接 java命令 .运行 。

推荐阅读