我想学习x86指令集架构.我不是要为x86学习程序集.我想了解机器代码宝贝.
原因是我想为x86编写汇编程序.然后我想编写一个编译成该程序集的编译器.
我知道有英特尔手册和AMD手册涵盖了x86指令集.但那些非常大而且密集.
我想知道是否有一种更平易近人(可能是教程)的方法来学习x86指令集架构.
我有以下代码打开文件,将其读入缓冲区然后关闭文件.
关闭文件系统调用要求文件描述符号在ebx寄存器中.ebx寄存器在读取系统调用之前获取文件描述符编号.我的问题是,在我进行读取系统调用之前,我应该将ebx寄存器保存在堆栈中还是某个地方(可以将80h垃圾邮件放入ebx寄存器吗?).然后恢复ebx寄存器以进行关闭系统调用?或者我的代码是否正确且安全?
我运行了下面的代码并且它可以工作,我只是不确定它是否通常被认为是良好的汇编实践,因为我没有在int 80h读取调用之前保存ebx寄存器.
;; open up the input file
mov eax,5 ; open file system call number
mov ebx,[esp+8] ; null terminated string file name, first command line parameter
mov ecx,0o ; access type: O_RDONLY
int 80h ; file handle or negative error number put in eax
test eax,eax
js Error ; test sign flag (SF) for negative number which signals error
;; read in the full input file
mov ebx,eax ; assign input file descripter
mov eax,3 ; …Run Code Online (Sandbox Code Playgroud) 我有兴趣编写一个x86汇编程序.我想知道将x86汇编助记符指令(使用类似英特尔的语法)映射到相应的二进制机器代码指令的好方法是什么.
无论如何从Java调用Clojure宏?
这是我想要做的:
RT.var("clojure.core", "require").invoke(Symbol.create("clojure.contrib.prxml"));
Var prxml = RT.var("clojure.contrib.prxml", "prxml");
Var withOutStr = RT.var("clojure.core", "with-out-str");
String stringXML = (String) withOutStr.invoke((prxml.invoke("[:Name \"Bob\"]")));
Run Code Online (Sandbox Code Playgroud)
prxml默认写入*out*,这就是为什么我需要用带有-out-str的宏包装它来返回字符串.
我收到此错误:
[java] java.lang.IllegalArgumentException: Wrong number of args (1) passed to: core$with-out-str
[java] at clojure.lang.AFn.throwArity(AFn.java:437)
[java] at clojure.lang.RestFn.invoke(RestFn.java:412)
[java] at clojure.lang.Var.invoke(Var.java:365)
[java] at JavaClojure.xml.main(Unknown Source)
Run Code Online (Sandbox Code Playgroud) 我想要一些好书,涵盖逻辑设计,制作计算机电路.似乎有很多关于逻辑设计的昂贵书籍,但目前还不清楚哪些是好的.
我无法理解实施Fannkuch的指示.说明:http://www.haskell.org/haskellwiki/Shootout/Fannkuch
在"计算翻转次数,这里5"之后,我迷路了.
我知道PHP的名字是一个递归的缩写词.精细
我不确定为什么PHP在其名称中有预处理器和超文本部分.
预处理器是处理输入数据的程序,其输出是另一个程序的输入.
PHP似乎就像我的翻译.究竟是什么使它成为预处理器?
它被称为预处理器,因为它的输出通常被发送到Web服务器以通过Web传送吗?那么它是Web服务器的预处理器吗?是它获得预处理器名称的地方吗?
它是否因为PHP嵌入HTML而成为其名称的超文本部分?
我是否弄清楚为什么PHP被称为PHP超文本预处理器,或者它有更多或者我错了,这是别的什么?
我从来没有读过什么使PHP成为预处理器以及为什么它的名字中有超文本和预处理器.我真的想指出这一点.
我知道PHP最初被称为个人主页.这很容易理解.请轻松理解PHP超文本预处理器.
PHP的整个编程语言中最难的是它的名字.
我正在为我的compojure web应用程序寻找一个好的生产Web服务器/ servlet容器.使用compojure将Jetty或Tomcat或其他服务器用于Clojure Web应用程序的优缺点是什么?有没有关于使用带有Clojure的Web服务器进行生产或工具的好文档?
我更喜欢一个灵活,易于配置的Web服务器,并且具有关于如何配置和使用它的良好文档.
Java 套接字编程InputStream.available()什么时候有用?BufferedInputStream.available()