Java开发:汇编语言

新手避坑指南:用COMSOL Multiphysics仿真气体放电(汤逊vs.流注) 本文详细介绍了使用COMSOL Multiphysics仿真气体放电的实战指南,涵盖汤逊理论和流注模型的实现方法。通过对比两种放电模型的关键参数和物理场配置,帮助新手避免常见错误,准确预测气体击穿过程。文章还提供了工程应用案例,如高压绝缘子设计优化,展示了仿真技术在电力设备绝缘设计中的实际价值。 阅读详情

一、为什么学习汇编语言

中国人和中国人沟通需要学习汉语
中国人和美国人沟通在会汉语的基础上还要学习英语
那么,人和机器沟通的话需要学习哪些语言呢?
答案是:人类的语言+机器语言

但是,机器语言都是由0和1组成,人类非常难读懂,所以出现了一种便于人类理解的语言 - 汇编语言。汇编语言介于人类语言和机器语言之间,人类通过汇编语言编写代码,执行的时候会将汇编语言翻译成机器语言,操作机器执行命令。

二、进制的思想本质

A、常见的进制

2进制:二进一,计算机 0 1
8进制:八进一,由8个符号组成:0 1 2 3 4 5 6 7
10进制:十进一,由10个符号组成:0 1 2 3 4 5 6 7 8 9
16进制:十六进一,由16个符号组成:0 1 2 3 4 5 6 7 8 9 a b c d e f

B、进制的本质

进制的本质就是查数

三、进制的运算

本质就是移位
例如:2+3 :先找到 2,然后向右移3位之后的数就是结果。
2 * 3 :3个2或者2个3,从0开始数3个2之后的数字就是答案。

以8进制为例进行分析

A、8进制数字排列

0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31…

B、8进制计算以下结果

2+3 = 5 //解析:本质是2往后数3位。先找到2,往后数1位是3,再数1位是4,数1位是5,即答案是5
2 * 3 = 6 //解析:3个2或者2个3。从0开始,1个2是2(即0向后数两位),2个2是4,3个2是6
4+5 = 11 //计算方法参照2+3
4 * 5 = 24 //计算方法参照2*3

C、八进制乘法表

在这里插入图片描述

D、八进制加法表

在这里插入图片描述

四、二进制和十六进制的深层理解

略

五、数据宽度理解

A、字节的理解

字节(Byte)、千字节(KByte)、兆字节(MByte)、GByte
1KB= 1000Byte
1MB = 1000KB
1GB = 1000MB
在这里插入图片描述

B、深入理解

简单理解:1个字符也就是指一个文字,一个文字由两个字节组成;一个字节有8位,即 8bit位。例如:你好世界 一共四个字符,一个字符由两个字节组成,所以 2*4 = 8Byte,所以 你好世界 占用8Byte。

位、字节、字、双字 的关系:
在这里插入图片描述

六、有符号、无符号数规则理解

A、无符号数规则

你看到的数字是什么,那结果就是什么

1 0 0 1  1 0 1 0  十六进制:0X9A        十进制:154

B、有符号数规则

最高位是符号位:1(负数) 0(正数)

1 0 0 1  1 0 1 0 如何转换?

七 、原码反码补码

编码规则

有符号数的编码规则

原码:最高位符号位,对其他的位进行本身绝对值即可。
反码:

  • 正数:反码和原码相同
  • 负数:符号位一定是1,其余位对原码取反。

补码:

  • 正数:补码和原码一样。
  • 负数:符号位一定是1,其余位 反码+1
以8位的数字为例:

例:如果是正数,则原码、反码、补码都一样
1
#原码 0 0 0 0   0 0 0 1 
#反码 0 0 0 0   0 0 0 1 
#补码 0 0 0 0   0 0 0 1 
------------------------------
例:如果是负数
-1
#原码 1 0 0 0   0 0 0 1 
#反码 1 1 1 1   1 1 1 0 
#补码 1 1 1 1   1 1 1 1 
------------------------------
例:负数
-7
#原码 1 0 0 0   0 1 1 1 
#反码 1 1 1 1   1 0 0 0 
#补码 1 1 1 1   1 0 0 1 

注:寄存器中的存储规则 ,如果是正数就直接存,如果是负数则存储其补码。

八、位运算

计算机现在可以存储所有的数字(整数、浮点数、字符)均是以0 1 存储。

A、与运算(and &)

计算规则:都是1则为1,否则为零。
在这里插入图片描述

1011 0001
1101 1000
-------------------与运算
1001 0000

B、或运算(or |)

对应位 只要有1结果就为1,同时是0则为0
在这里插入图片描述

1011 0001
1101 1000
----------------或运算
1111 1001

C、非运算(单目运算符 not ~)

0就是1,1就是0 ,取反!

1101 1000
---------------取反运算
0010 0111

D、异或运算(xor ^)

相同位 不一样的为1
在这里插入图片描述

1011 0001
1101 1000
-----------------异或运算
0110 1001

E、左移(shl <<)

所有二进制位全部左移若干位,高位就丢弃了,低位补0。

0000 0001
-----------------左移操作
0000 0010

F、右移(shr >>)

所有二进制位全部右移若干位,低位就丢弃了,高位需要补0、1(由符号位决定)。

0000 0001
---------------右移
0000 0000

G、十进制进行位移运算

例子:
int a  = 10;
printf("%d\n",a>>2);//10右移2位,即10/4 = 2 (这里是整除)

H、位运算的加减乘除

计算机只认识0和1
加减乘除都是建立在”加“的基础上。
例子一:4+5 =? 计算机的计算规则

人类的计算方法:
按十进制方法算:
 4+5 = 9
按二进制方法算:
0000 0100
0000 0101
-----------------加法运算
0000 1001

即:4+5 = 0000 0100+0000 0101 = 0000 1001 = 9
======================================================
计算机的计算原理:
#第一步:异或。如果不考虑进位,异或就可以直接出结果。
0000 0100
0000 0101
-----------------异或运算
0000 0001

#第二步:与运算。(判断进位,如果与运算结果为0则没有进位)
0000 0100
0000 0101
------------------与运算
0000 0100

#第三步:将与运算的结果左移一位。
0000 0100
---------------左移一位
0000 1000

#第四步:异或(将第一步和第三步结果异或)。
0000 0001
0000 1000
----------------异或操作
0000 1001

#第五步:与运算。(判断进位,如果与运算结果为0,没有进位)
0000 0001
0000 1000
-----------------与运算
0000 0000

#第六步:最终的计算结果就是第四步中异或的结果。
4+5 = 9
0000 0100 +0000 0101 = 0000 1001 = 9


例子二:4-5 =?
本质也是转成加法计算,即4+(-5)
注意点:
1、负数存储的是补码。
2、1111 1111 =FF 即可以认为是16 也可以认为是 -1 和符号位有关系。

例子三:x*y
本质是y个x相加,还是按加法进行运算。

例子四:x/y
本质是减法,就是x能减去多少个y

计算机只会做加法!

九、汇编学习环境及必要说明

A、环境配置

  • Vc6
  • OD
  • 抓包工具 (fiddler)
  • 加密解密工具

B、通用寄存器

  • 32位的通用寄存器只有8个(EAX、ECX、EDX、EBX、ESP、EBP、ESI、EDI)
  • 存值的范围 0 ~ FFFF FFFF

C、计算机如何向寄存器存值

1、mov指令

可以将数字写入寄存器,也可以将寄存器中的值写到寄存器。

  • mov 存的地址 存的值
  • mov 存的地址1 存的地址1

2、不同的寄存器

32位     16位     8位     
EAX      AX        AL     
ECX      CX       CL    
EDX      DX       DL    
EBX      BX        BL    
ESP      SP        AH   
EBP      BP        CH    
ESI       SI          DH    
EDI       DI         BH    

8位:L低8位、H高8位

end

AMESim柱塞泵建模全指南:从HCD库搭建到联合仿真 液压系统仿真中,轴向柱塞泵的建模始终是难点与热点。柱塞泵结构紧凑、功率密度高,在工程机械与航空航天领域应用广泛,然而其运动学与流体细节深度耦合,给仿真带来不小挑战。AMESim平台中的HCD库提供了一种从物理结构出发的建模思路,将柱塞泵分解为容积腔、节流口与机械约束等基础单元,从而真实刻画柱塞腔压力波动、配流特性和容积效率等关键行为,摆脱黑盒模型的局限。基于机理建模的仿真结果,可用于泵参数优化、故障特征分析以及控制策略验证。进一步结合AMESim与Simulink联合仿真,可以高效开发变量泵排量控制系统,研 阅读详情

相关推荐

Vector CANape的使用记录

开门见山,今天想和大家分享下CANape使用记录,分享原因是近日在分析一个客户现场软件问题时,需要用到CANape来实时的监测ECU中的变量,因为之前对CANape的认知比较浅薄,觉得标定工程师使用他就足够了,但是这次的经历让我觉得需要写点东西来记录自己学习并使用他的过程。 相信大家能够在网上找到很多关于如何使用CANape的文章,从新建Project到后面的数据的观测、保存以及回放等等。我个人也是这么学过来的,所以我不打算从那些方面着手去描述如何使用她,而是根据我的真实使用过程以及问题的抛出到如何解决来

2万+

Java学习笔记8-1——汇编语言入门

汇编语言入门,理解程序底层

weixin_44238066的博客 788

5分钟搞定!用MCU GPIO实现零功耗一键开关机电路(附完整原理图)

本文详细介绍了如何利用MCU GPIO设计零功耗一键开关机电路,适用于便携式设备和电池供电项目。通过软硬件结合的方式,实现关机状态下的真正零功耗,同时提供智能开关机控制。文章包含完整原理图、元件选型指南和实际搭建技巧,帮助开发者在5分钟内完成高效电源管理方案。

weixin_28339967的博客 342

Java 汇编源码查看环境搭建

JVM的学习很多时候得看着字节码和汇编代码才好理解,而作为Java程序员来说,其实更希望在开发环境中能查看汇编代码,这样其实更有助于我们平时的代码调优和JVM的学习。那么我们应该如何搭建呢?跟着我一起动手来搭建下吧

qq_25409421的博客 1239

D类功放几种常见“爆破音”问题根源与改善措施

在数字D类功放刚上电或功放播放状态切换时,人耳偶尔会听到“嘣”的声音,我们把这个爆破的Pop Noise。数字功放Pop Noise 出现的原因有很多,本文主要分析Pop Noise 出现原因,并提供相应解决方法。

qq_26815321的博客 3591

【多模态融合】TransFusion学习笔记(1)

工作上主要还是以纯lidar的算法开发,部署以及系统架构设计为主。对于多模态融合(这里主要是只指Lidar和Camer的融合)这方面研究甚少。最近借助和朋友们讨论论文的契机接触了一下这方面的知识,起步是晚了一点,但好歹是开了个头。下面就借助TransFusion论文及其开源代码来串一串这方面的知识。这个很好理解,参考FPointNet网络图示。就是利用现有的2D检测器在图像上提取2D初始框,根据Camera成像原理,捕获2D框视锥内的点云,再利用点云分类模型(如:PointNet)做进一步分类。

4961

Java源文件反编译成汇编语言:1.javac将Java源文件编译为.class文件,2.javap将.class文件反编译成汇编语言;.class文件结构

Java源文件反编译成汇编语言:1.javac将Java源文件编译为.class文件,2.javap将.class文件反编译成汇编语言

郝开的博客 2181

【实践指南】Wasserstein距离在电力系统鲁棒优化中的核心应用

本文深入探讨了Wasserstein距离在电力系统分布鲁棒优化中的核心应用。针对风电、光伏出力的不确定性,文章阐述了如何利用Wasserstein距离构建模糊集,将复杂的分布鲁棒优化问题转化为可求解的确定性模型,并提供了从理论到代码实现的完整实践指南,有效平衡了系统运行的经济性与鲁棒性。

weixin_29229261的博客 306

如何在JAVA代码中嵌入汇编

如何在JAVA代码中嵌入汇编,Chatgpt来啦

敏叔 1021

Android USB串口通信详解与实例

在Android开发中,USB串口通信是一个常见的需求,尤其是在与硬件设备进行交互时。通过USB串口,我们可以轻松地实现数据的发送与接收。本文将详细介绍如何使用库来实现Android设备与USB串口设备的通信。

m0_62153576的博客 677

Selenium|通过更改亚马逊amazon的配送地获取当地的cookie

如果我们需要拿到国外配送地的商品信息,这个时候就需要用到selenium或者pypputeer自动化的方法去更改配送地,拿到当地的cookie信息,之后,携带当地的cookie使用requests发送请求,就可以拿到国外配送地的商品数据信息。一般来说,我们访问亚马逊,亚马逊的配送地一般显示的是国内,但是国内的商品信息和国外的商品信息其实是存在很大差别的,比如你在搜索框输入某个关键词,看到的

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 993

Java实现hack汇编器

Hack汇编语言是一种特定于计算机体系结构的汇编语言,使用Hack架构的机器码指令来编写程序。Hack是一种基于Von Neumann结构的计算机体系结构,由Harvard大学的Nand to Tetris项目开发出来,用于实现计算机硬件和软件。Hack汇编语言主要用于在Nand to Tetris项目中编写计算机硬件和软件。该项目旨在教授计算机系统的基本原理和构造,从最基本的逻辑门开始,一步步地构建出完整的计算机系统,包括CPU、内存、输入/输出、操作系统和编程语言等方面。

笔记 741

Python 爬虫实战:arXiv 学术论文 PDF 批量下载(含反爬策略与文件命名规范)

arXiv 是全球最大的免费开放预印本论文平台之一,涵盖物理学、数学、计算机科学等多个学科领域。研究人员、学生和工程师常常需要批量下载论文 PDF 进行文献综述、构建机器学习数据集或进行文本挖掘研究。然而,手动逐篇下载论文效率低下,因此开发一个自动化批量下载工具显得尤为重要。

yansideyucsdn的博客 1817

计算机组成原理与汇编语言:Java开发者理解代码执行的底层逻辑

高级语言 (Java)↓ 编译/解释↓ JIT编译机器指令 (汇编)↓ 执行硬件 (CPU + 内存 + IO)→→ADD AX, BX→ALU计算,寄存器存取if (x > y)→→CMP X, Y;JG label→CU控制,标志寄存器myMethod();→→→栈帧创建,SP移动→→内存分配指令→堆内存管理,GC作为Java开发者,学习计组和汇编,不是要你去写.asm文件,而是要建立这个端到端的执行视图。

吾为热爱计科,致力于知识分享的践行者,此博客是我在这条道路上留下的足迹。 1019

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java中间语言汇编语言_java开发编译器:中间语言格式

阅读博客的朋友可以到我的网易云课堂中,通过视频的方式查看代码的调试和执行过程:在通常情况下,编译器会将目标语言转换成某种中间语言格式,而不是直接将源代码转换成二进制机器指令。不少C语言编译器,都会将代码编译成汇编语言,然后再通过汇编编译器将汇编代码转换成目标机器可执行的二进制代码,这么说来,汇编语言其实也是一种中间语言。编译成中间语言有很多优势,一是可以优化,先把中间语言进行高度优化后,再将其转换...

weixin_29762229的博客 296

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java程序设计基础

熟悉开发环境创建项目Java中的包是为了方便对项目文件进行管理,对应了资源管理器中的文件夹。创建源程序文件其实不管是什么语言的程序文件,如C语言(.c)、C++语言(.cpp)或者是Java(.java),其本质上都是文本文件,也就是说可以使用任何文本编译器(如记事本)进行编辑。之所以提供各种开发工具,只是为了更方便、高效地工作。源程序本件计算机是无法执行的,必须翻译成二进制的机器语言指令才能被执...

学习使我快乐 3987

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

2023编程语言趋势

Python持续霸榜,PHP依旧颓势,Java雄风不再,Rust热度不减,汇编迅速崛起,C语言地位稳固

略懂……略懂…… 3万+

java的认识

补充知识:jdk中的java和javac。将来我们写好的java程序都是高级语言,计算机底层是硬件,硬件不能识别这些语言,必须先通过javac编译工具进行翻译,生成.class,然后再通过Java执行工具执行才可以驱动机器干活。4、环境变量配置JAVA_HOME添加jdk的安装路径和path路径添加JAVA_HOME\bin(也可以不添加JAVA_HOME,直接找到jdk的路径的bin目录下)java技术平台种类:JavaSE(标准版)、javaEE(企业版)、javaME(小型版/市场上不太认可)

2301_77179559的博客 186

机器语言&汇编语言&高级语言

机器语言&汇编语言&高级语言

qq_54726014的博客 177

Java程序员应该掌握的三种语言

Dave Thomas认为Java程序员在学习其他的语言之前,应该掌握以下Java生态圈中的三种语言。原文地址:http://www.jroller.com/page/rolsen?entry=three_languages_for_java_programmers"1 JythonJython具有Java语言的特性,也具有脚本语言的优点,非常灵活,不许编译。可以代替Java胜任任何工作2 J

软件开发资料汇总 250

Java vs 汇编:高级与低级的终极对决

Java与汇编语言的关键区别在于:1.层级特性-Java是高级语言,抽象程度高;汇编是低级语言,直接对应机器指令。2.运行机制-Java通过JVM执行字节码实现跨平台;汇编代码直接由CPU执行,依赖特定架构。3.内存管理-Java自动垃圾回收;汇编需手动管理内存。4.开发效率-Java语法严谨、安全性高;汇编灵活但易出错。5.应用场景-Java适合Web、移动和企业应用;汇编用于系统底层和性能敏感领域。两者在抽象程度、执行方式和适用领域上存在显著差异。

cch8918的博客 332

01-02 计算机基础知识(软件开发、计算机语言概述和人机交互)

软件开发 软件 按照特定顺序组织的计算机数据和指令的集合 开发 软件的制作过程 软件开发 借助开发工具与计算机语言制作软件 计算机语言分类 计算机语言,人与计算机之间进行信息交流沟通的一种特殊语言 机器语言,机器语言是直接用二进制代码指令表达的计算机语言,指令用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义 汇编语言,汇编语言是使用一些特殊的符号来代替机器语言二进制码,计算机不能直接识别,需要用一种软件将汇编语言翻译称机器语言 高级语言,使用普通英语进行编写源代码,通过

小鑫的博客 315

汇编语言程序设计_高级语言程序设计:C语言

开始进入正题,之前对于计算机原理、操作系统以及计算机网络知识有了全面的了解之后,进入真正的学习技术的阶段,编程语言的学习。编程语言其实是指令的集合,就像是把一件事具体怎么做的步骤按要求一步步写下来,放置到计算机里,由计算机按照写好的步骤执行相应的操作,写好的语言代码构成的功能集合就叫做软件,语言代码就叫做程序。就像不同国家拥有不同语言一样,编程语言也有很多种,比如C语言,C++,JAVA,html...

weixin_39964978的博客 230

Day02-java-jdk环境搭建

JVM:JAVA Virtual Machine java虚拟机,可以理解为一种规范。第三代语言:高级语言(c面向过程、c++面向对象、java面向对象、c#……JDK:Java Development Kit java开发者工具。JavaEE:E企业级开发(web端,服务器开发)JavaSE:标准版(桌面程序,控制台开发)JavaME:嵌入式开发(手机、小家电)第一代语言:机器语言(二进制)三高:高可用、高性能、高并发。jdk包含jre、jvm。测试JDK是否安装成功。第二代语言:汇编语言。

weixin_56161641的博客 99

基础概念之开发软件

1.常见的单片机开发软件有哪些? chen:keil iar gcc keil软件: 科普中国:Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WI...

qq_55490300的博客 308

编程语言大比拼:PHP、Java、Python、C++、C、汇编谁更强

编程语言对比摘要(150字) PHP专为Web开发设计,语法简单;Java跨平台,适合企业级应用;Python语法简洁,多用于AI和脚本;C++高性能,适合游戏和系统开发;C贴近硬件,用于操作系统和嵌入式;汇编直接操作CPU,效率最高但开发复杂。 类型系统:Java/C++强类型,Python/PHP动态类型 执行效率:汇编 > C/C++ > Java > Python/PHP 开发效率:Python/PHP快速开发,Java/C++更严谨,C/汇编需手动管理内存 选型建议:Web用PH

zuowei2889的博客 243
上一篇: Java开发:反射机制
下一篇: 合并jar和jar转dex
android157
博客等级 码龄9年 193粉丝 95原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值