小编mud*_*dge的帖子

学习x86指令集的最简单/最佳方法?

我想学习x86指令集架构.我不是要为x86学习程序集.我想了解机器代码宝贝.

原因是我想为x86编写汇编程序.然后我想编写一个编译成该程序集的编译器.

我知道有英特尔手册和AMD手册涵盖了x86指令集.但那些非常大而且密集.

我想知道是否有一种更平易近人(可能是教程)的方法来学习x86指令集架构.

x86 assembly instruction-set

12
推荐指数
2
解决办法
6077
查看次数

x86程序集:在Linux上进行系统调用之前是否应该保存所有寄存器?

我有以下代码打开文件,将其读入缓冲区然后关闭文件.

关闭文件系统调用要求文件描述符号在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)

linux x86 assembly system-calls

11
推荐指数
1
解决办法
6197
查看次数

汇编程序如何将x86指令助记符映射到二进制机器指令?

我有兴趣编写一个x86汇编程序.我想知道将x86汇编助记符指令(使用类似英特尔的语法)映射到相应的二进制机器代码指令的好方法是什么.

x86 assembly

11
推荐指数
2
解决办法
6735
查看次数

如何从Java调用Clojure宏?

无论如何从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)

java clojure clojure-contrib

10
推荐指数
3
解决办法
800
查看次数

什么是关于逻辑设计的优秀/好书?

我想要一些好书,涵盖逻辑设计,制作计算机电路.似乎有很多关于逻辑设计的昂贵书籍,但目前还不清楚哪些是好的.

hardware cpu logic

8
推荐指数
0
解决办法
9553
查看次数

Fannkuch如何运作?

我无法理解实施Fannkuch的指示.说明:http://www.haskell.org/haskellwiki/Shootout/Fannkuch

在"计算翻转次数,这里5"之后,我迷路了.

algorithm

7
推荐指数
1
解决办法
2890
查看次数

正如顾名思义,PHP真的是"超文本预处理器"吗?

可能重复:
什么是PHP的"个人主页"和"PHP超文本预处理器"?

我知道PHP的名字是一个递归的缩写词.精细

我不确定为什么PHP在其名称中有预处理器和超文本部分.

预处理器是处理输入数据的程序,其输出是另一个程序的输入.

PHP似乎就像我的翻译.究竟是什么使它成为预处理器?

它被称为预处理器,因为它的输出通常被发送到Web服务器以通过Web传送吗?那么它是Web服务器的预处理器吗?是它获得预处理器名称的地方吗?

它是否因为PHP嵌入HTML而成为其名称的超文本部分?

我是否弄清楚为什么PHP被称为PHP超文本预处理器,或者它有更多或者我错了,这是别的什么?

我从来没有读过什么使PHP成为预处理器以及为什么它的名字中有超文本和预处理器.我真的想指出这一点.

我知道PHP最初被称为个人主页.这很容易理解.请轻松理解PHP超文本预处理器.

PHP的整个编程语言中最难的是它的名字.

php programming-languages

7
推荐指数
0
解决办法
357
查看次数

适用于Clojure Web Apps的优秀Web服务器/ Servlet容器?

我正在为我的compojure web应用程序寻找一个好的生产Web服务器/ servlet容器.使用compojure将Jetty或Tomcat或其他服务器用于Clojure Web应用程序的优缺点是什么?有没有关于使用带有Clojure的Web服务器进行生产或工具的好文档?

我更喜欢一个灵活,易于配置的Web服务器,并且具有关于如何配置和使用它的良好文档.

java tomcat jetty clojure

6
推荐指数
1
解决办法
1116
查看次数

什么是Semicoroutine?

我一直在研究Ruby中的纤维,并且已经出现了术语semicoroutine.什么是半透明的?

ruby

3
推荐指数
1
解决办法
270
查看次数

InputStream.available() 什么时候有用?

Java 套接字编程InputStream.available()什么时候有用?BufferedInputStream.available()

java sockets

3
推荐指数
1
解决办法
2841
查看次数