标签: instructions

开发人员应该是设计师吗?

我一直在开发网站很长一段时间,我在设计网站方面不太好?我的老板正在引用我的一些课程.

但我真的想坚持发展而不是设计?

instructions

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

现代cpus跳过乘以零吗?

我想知道当前cpus当至少其中一个为零时,是否避免乘以两个数字.谢谢

cpu instructions multiplying

6
推荐指数
2
解决办法
658
查看次数

如何找出英特尔处理器所属的"处理器系列"?

在英特尔手册中,有些表包含列表Performance-Monitoring Counters,但它们对特定处理器系列非常具体.

例如,一个表列出了计数器P6 Family,另一个列表列出了Pentium.

Ubuntu,如果我这样做cat /proc/cpuinfo,我会得到一条说明的行cpu family,但它只是一个数字.这个数字与英特尔的概念之间是否有一些映射processor family

我也从英特尔看过这个页面,但它甚至没有提到"家庭"这个词.

顺便说一句,我是在一个X3470所以我想也许Xeon是家庭,但手册没有列出它.

cpu x86 assembly intel instructions

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

ASCII调整和十进制调整指令如何工作?

我一直在努力理解来自x86汇编语言的ASCII调整指令.

我看到整个互联网信息告诉我不同​​的事情,但我想这是以不同形式解释的同样的东西,我仍然没有得到.

谁能解释为什么在AAA的伪代码中,AAS我们必须添加,从AL中的低阶半字节中减去6?

并且有人可以在英特尔指令集手册中解释AAM,AAD和Decimal调整指令伪代码,他们为什么这样,他们背后的逻辑是什么?

最后,有人可以举例说明这些说明是否有用,或者至少在过去它们有用的应用程序中.

我知道现在没有使用这些说明,但我仍然想知道这些说明是如何工作的,这很好.

x86 assembly decimal instructions bcd

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

x86_64上无用的jp/jnp汇编指令

我试图找出LLVM生成的C代码中的目的jp/ jnp指令.样品:

int main(int argc, const char * argv[]) {
    double value = 1.5;

    if (value == 1.5) {
        value = 3.0;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

装配输出:

Ltmp4:
    movsd   LCPI0_0(%rip), %xmm0
    movl    $0, -4(%rbp)
    movl    %edi, -8(%rbp)
    movq    %rsi, -16(%rbp)
Ltmp5:
    movsd   %xmm0, -24(%rbp)
Ltmp6:
    movsd   -24(%rbp), %xmm1
    ucomisd %xmm0, %xmm1
    jne LBB0_2
    jp  LBB0_2
## BB#1:
    movabsq $3, %rax
    cvtsi2sdq   %rax, %xmm0
Ltmp7:
    movsd   %xmm0, -24(%rbp)
Ltmp8:
LBB0_2:
    movl    $0, %eax
    popq    %rbp
    retq
Run Code Online (Sandbox Code Playgroud)

jne …

c assembly x86-64 llvm instructions

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

图灵机说明书

图灵机的定义说,禁止人们阅读/修改其指令表(程序)。确实,图灵机无法访问其自己的程序。

如果可以弱化这一限制,可以获得什么好处?如果机器可以分析和/或修改其程序。这会扩展图灵计算任务的类别吗?

turing-machines instructions

5
推荐指数
1
解决办法
804
查看次数

ARM程序集不能同时使用立即值和ADDS / ADCS

我目前正在尝试使用汇编来加快Cortex-M0(Freescale KL25Z)上的某些C函数的速度。我对这个最小的测试程序有疑问:

@.syntax unified
.cpu cortex-m0
.text
  .global test
  .code 16
test:
  mov r0, #0
  adds r0, r0, #1
  bx lr
Run Code Online (Sandbox Code Playgroud)

当我尝试将.s文件汇编为.o文件时,出现此错误

$ arm-none-eabi-as test.s -o test.o
test.s: Assembler messages:
test.s:8: Error: instruction not supported in Thumb16 mode -- `adds r0,r0,#1'
Run Code Online (Sandbox Code Playgroud)

该错误消息对我而言没有任何意义,根据该文档,ADDS是有效的说明。我在stackoverflow上找到了一个可能的答案,并在程序的开头添加了这一行(“ .syntax Unified”有效,就像建议的第二个答案一样)。这样就解决了这个问题,我现在可以使用ADDS和ADCS之类的指令,但是我确实收到了一个新错误:

$ arm-none-eabi-as test.s -o test.o
test.s: Assembler messages:
test.s:7: Error: cannot honor width suffix -- `mov r0,#0'
Run Code Online (Sandbox Code Playgroud)

一些使用立即值的指令会出现此错误。我正在Mac OS 10.9.5上编译。我无法通过Google或Stackoverflow找到解决方案,也不知道如何解决这些错误。

$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) …
Run Code Online (Sandbox Code Playgroud)

assembly gcc arm instructions

5
推荐指数
2
解决办法
3957
查看次数

java中的普通指令和快速指令有什么区别(例如aload和fast_aload)

我打印了一个简单java程序的执行字节码,并注意到一些java指令是fast_xxxx而不是普通指令。

我在 JVM 规范中找不到任何相关内容。那么这些指令之间到底有什么区别,口译员何时/为何选择使用这些指令呢?

编辑:字节码是用-XX:TraceBytecodes选项打印的。

java jvm bytecode instructions java-11

5
推荐指数
1
解决办法
335
查看次数

在 ARM64 汇编代码中,什么时候寄存器 31 XZR 与 SP?

在ARM64汇编代码中,寄存器号31什么时候表示XZR,什么时候表示SP?

assembly machine-code cpu-registers instructions arm64

5
推荐指数
1
解决办法
393
查看次数

为什么 x86 只有 1 种形式的条件移动,而不是立即或 8 位?

我注意到条件移动指令的可扩展性比普通的mov. 例如,它不支持立即数,也不支持寄存器的低字节。

出于好奇,为什么该Cmov命令比一般mov命令的限制性要大得多?例如,为什么两者不允许这样的事情:

mov    $2, %rbx    # allowed
cmovcc $1, %rbx    # I suppose setcc %bl could be used for the '1' immediate case
Run Code Online (Sandbox Code Playgroud)

附带说明一下,我注意到在使用 Compiler Explorer 时, 的使用量比和cmovcc少得多。通常是这种情况吗?如果是,为什么它的使用频率低于其他条件句?jmpccsetcc

x86 assembly cpu-architecture instructions conditional-move

5
推荐指数
1
解决办法
2024
查看次数