
汇编语言中的伪随机生成器
对于在课程中分配的汇编程序,我需要伪随机数生成器算法,并且我希望使用简单的算法。但是,我不能使用外部库。什么是用于汇编的良好,简单的伪随机数生成器算法?回答:一种简单的方法是只选择两个相对大的素数a和b,然后将随机数乘以a并加b。使用模运算符将低位保留为您的随机数,并保...
2024-01-10
关于传统解释器,编译器和JIT编译器/解释器的说明
我正在学习Java,以下内容对我来说有些混乱。我了解的是: →Java编译器仅将.java程序转换为.class文件,这意味着将我们的源代码转换为字节码(这是使Java平台独立的虚拟机(JVM)的操作码的列表)。 →仅“解释”代码,而 没有 将其转换为本地机器代码。它将一条字节码的每条指令作为一条命令...
2024-01-10
c语言编译后生成什么文件
品牌型号:联想拯救者Y9000P系统:Windows 11c语言编译后生成exe文件或者object文件。C语言是目前世界上流行、使用最广泛的面向过程的高级程序设计语言。C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。编译是指将编辑好的源文件翻译成二进制目标代码的过程。编译过程是由编译程序(编译器)完成的。不同操...
2024-01-29
汇编语言是低级语言吗
品牌型号:华为MateBook D15系统:Windows 11汇编语言是低级语言,是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。汇编语言是计算机提供给用户的最快最有效的语言,也是能够利用计算机...
2024-01-06
汇编语言是高级语言吗
品牌型号:华为MateBook D15系统:Windows 10不是,汇编语言是低级语言。汇编语言(AssemblyLanguage)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的...
2024-01-24
查找哪些汇编指令导致了非法指令错误,而无需调试
运行我用汇编语言编写的程序时,Illegalinstruction出现错误。是否有一种方法可以知道导致错误的指令,而无需进行调试,因为我所运行的计算机没有调试器或任何开发系统。换句话说,我在一台机器上编译并在另一台机器上运行。我无法在正在编译的计算机上测试程序,因为它们不支持SSE4.2。我运行程...
2024-01-10
汇编:从标准输入中读取整数,将其递增并打印到标准输出
我为IA32编写了以下汇编脚本。应该从stdin读取一个数字,将其递增并打印到stdout,但是它的行为不符合预期,它不会打印任何内容(也许从stdin的读取不会终止,或者打印有问题吗?).section .text .globl _start_start: movl $3, %eax # use syscall 3 (read) to read from stdin movl $0, %ebx # reads from stdin (FD 0)...
2024-01-10
使用局部变量的编译器,无需调整RSP
有问题的编译器:了解小型程序生成的汇编代码,编译器使用两个局部变量,而无需调整堆栈指针。不为使用局部变量而对 RSP 进行调整似乎 并不安全 ,因此 中断似乎使编译器依赖于硬件自动切换到系统堆栈。否则,出现的第一个中断会将指令指针压入堆栈,并覆盖局部变量。该问题的代码是:#inc...
2024-01-10
调用由编译器或链接器处理的约定吗?
当我们在函数原型中放入_stdcall(调用者不需要清除堆栈)时,是由编译器还是链接器来处理?调用由编译器或链接器处理的约定吗?回答:调用约定会影响代码生成,因此编译器会处理它。链接器不需要知道这一点。回答:调用约定是如何调用函数(参数编制具体的机器代码,并清理CTACK)和链...
2024-01-10
编译错误
我的工作的Fedora,我的Java家被设定为:编译错误export JAVA_HOME=/home/UserName/java export M3_HOME=/home/UserName/softwares/apache-maven-3.0.3 export PATH=$PATH:/home/UserName/java/bin:/home/Udeshika/softwares/apache-maven-3.0.3/bin 现在,当我尝试运行mvn install Maven的项目,我收到以...
2024-01-10
共享对象编译错误
我想编译一个库libEncryption.so。共享对象编译错误这里是我的make文件conatins什么:cc -g -w -fPIC -c -ISource/Header -I//usr/local/ssl/include -L//usr/local/ssl/lib - lssl -lcrypto Source/Common/C/Encryption.c -DBIT64 -DDBG -DLITTLEENDIAN -DOMS -DRMS mv Encryption.o Objects/Encryptio...
2024-01-10
交叉编译器ldd
我创建了一个交叉编译的arm可执行文件。我想找到可执行文件的库依赖项。我正在使用ubuntu natty并安装了不包含ldd的arm-linux-gnueabi工具链。有没有可用的工具来查看Linux中arm可执行文件库的依赖性。回答:这有点儿混乱,但这是我能找到的最好的解决方案,对于基本用途它确实很好用-只需使用其他交...
2024-01-10
JVM是编译器还是解释器?
我对JVM有一个非常基本的问题:它是编译器还是解释器?如果它是解释器,那么JVM内部存在的JIT编译器怎么办?如果两者都不是,那么JVM到底是什么?(我不希望将字节码转换为机器特定的代码等jVM的基本定义。)回答:首先,让我们对以下术语有一个清晰的认识Javac是Java编译器-将Java代码编译为 J...
2024-01-10
javac和Eclipse编译器有什么区别?
Eclipse的Java编译器是否只是包裹该javac程序的同一个内核的包装器,还是完全独立的编译器?如果是后者,为什么还要重新发明轮子呢?回答:Eclipse实现了自己的编译器,称为Java Eclipse编译器(ECJ)。它不同于Sun JDK附带的编译器javac。一个显着的区别是Eclipse编译器使您可以运行实际上未正确编译的代...
2024-01-10
如何在vim中安装pascal编译器?
我发现了vim there的pascal编译器,但我不知道如何安装它。没有指示。我不知道我必须用它做什么,以及如何用它编译程序。 谢谢。如何在vim中安装pascal编译器?回答:我想你想有关于安装的插件看看Vim文档: http://vimdoc.sourceforge.net/htmldoc/usr_05.html#plugin摘录 USING A GLOBAL PLUGIN First read the text in the plug...
2024-01-10
pascal编译系统属于什么
品牌型号:AppleMac Book Pro 13.3 系统:MacOS12.0.1pascal编译系统属于系统软件。pascal语言语法严谨,层次分明,程序易写,可读性强,是第一个结构化编程语言。Pascal语言广泛用于各种软件,程序分为名称(program后自拟)、设置(var后规定)、开始(begin)、程序(正文)、读取(read/readln)、结束(end),结构层次强,严谨而...
2024-01-15
Java泛型可在Eclipse中编译,但不能在javac中编译
我不得不发现我的项目中有Java代码,该代码可以在Eclipse中编译并正常运行,但是会在javac中引发编译错误。一个完整的代码段:import java.util.HashSet;import java.util.Set;public class Main { public static void main(String[] args) { Set<Integer> setOfInts = new HashSet<Integer>(); Set<Object> setOfObjects...
2024-01-10
交叉编译时如何使用外部库?
我正在x86 ubuntu机器上为树莓派ARM目标编写一些代码。我正在使用gcc-linaro-armhf工具链。我能够交叉编译并在pi上运行一些独立程序。现在,我想将代码与外部库(例如ncurses)链接。我该如何实现。我应该将程序与主机上现有的ncurseslib链接,然后在ARM上运行吗?(我认为这行不通)我是否需要为arm获取l...
2024-01-10
特拉维斯MIPS交叉编译
如何设置一个.travis.yml为MIPS目标交叉编译?对于PowerPC,这是微不足道的:特拉维斯MIPS交叉编译addons: apt: packages: - gcc-powerpc-linux-gnu 由于我有权访问软件包directly。对于MIPS我无法在Ubuntu忠实的找到一个编译器为它:Software Packages in "trusty", Subsection devel即使它似乎被列入白名单:https://g...
2024-01-10
在ARM交叉编译时,如何选择要链接的静态库?
我在Ubuntu(arm-linux-gnueabi-gcc)中有一个ARM交叉编译器,默认体系结构是ARMv7。但是,我想编译一个ARMv5二进制文件。我通过为编译器提供-march=armv5te选项来实现。到目前为止,一切都很好。由于我的ARM系统使用BusyBox,因此必须编译静态链接的二进制文件。所以我给gcc -static选项。但是,链接器链接到我...
2024-01-10
编译libgcc xgcc错误
我正在尝试安装交叉编译器,当我想制作libgcc时,我只是将其放在make all-target-libgcc 终端中。这使抛出错误checking whether ln -s works... yeschecking for i586-elf-gcc... /usr/src/build-gcc/./gcc/xgcc -B/usr/src/build-gcc/./gcc/ -B/usr/local/cross/i586-elf/bin/ -B/usr/local/cross/i586-el...
2024-01-10
如何使用gcc进行汇编
如何编译为汇编而不是gcc可执行文件。我知道有一个 标志,但是我在makefile中的哪里使用它。例如,如果我使用标志 ,则应将-S标志放在哪里?回答:我建议也使用它,-fverbose-asm因为生成的汇编器具有一些生成的注释,可以“解释”代码。例如:gcc -S -fverbose-asm -O2 foo.c将在foo.s(带有一些注释)中...
2024-01-10
强制gcc在64位平台上编译32位程序
我有一个专有程序,试图在64位系统上使用。当我启动安装程序时,它可以正常运行,但是在尝试更新自身并编译一些模块之后,它无法加载它们。我怀疑这是因为它正在使用gcc,而gcc试图将它们编译为64位系统,因此该程序无法使用这些模块。是否有任何方法(一些环境变量或类似的东西)强制gcc为...
2024-01-10
