小编YHS*_*SPY的帖子

WebAssembly是“反向波兰符号”计算器吗?

据我了解,RPN和PN有两种堆栈机,因此WebAssembly是“反向波兰符号”计算器吗?

webassembly

2
推荐指数
1
解决办法
144
查看次数

使用非规范地址检索内存数据会导致 SIGSEGV 而不是 SIGBUS

我无法使用以下汇编代码生成“总线错误”。这里我使用的内存地址不是合法的“规范地址”。那么,我该如何触发该错误?

我在 Ubuntu 20.04 LTS 和 NASM 2.14.02 下运行这段代码,但它导致负载上的 SIGSEGV 分段错误,而不是 SIGBUS。

global _start
section .text
_start:
    mov rax, [qword 0x11223344557788]
    mov rax, 60
    xor rdi, rdi
    syscall
Run Code Online (Sandbox Code Playgroud)

编译后对应的X86-64汇编代码:

Disassembly of section .text:

0000000000401000 <_start>:
  401000:   48 a1 88 77 55 44 33    movabs 0x11223344557788,%rax
  401007:   22 11 00 
  40100a:   b8 3c 00 00 00          mov    $0x3c,%eax
  40100f:   48 31 ff                xor    %rdi,%rdi
  401012:   0f 05                   syscall
Run Code Online (Sandbox Code Playgroud)

linux assembly x86-64 nasm bus-error

2
推荐指数
1
解决办法
117
查看次数

SIMD是否必须在多核CPU上实现?

SIMD是否必须在多核CPU上实现?在阅读有关SIMD的Wikipedia时,我发现以下短语“多个处理元素”,那么该短语与“多核CPU”有什么区别?

在此处输入图片说明

cpu simd

1
推荐指数
2
解决办法
785
查看次数

为什么 Rust 元组不使用方括号来访问里面的元素?

如题。

在 Rust 中,我需要使用句点语法来访问元组中的元素,如下所示 (the x.0):

fn main() { 
    let x: (i32, f64, u8) = (500, 6.4, 1);
    println!("{}", x.0);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么 Rust 不支持使用方括号语法来访问像下面这样的元组内的元素,这应该是一种更一致的方式?

fn main() { 
    // !!! this snippet of code would not be compiled !!!
    let x: (i32, f64, u8) = (500, 6.4, 1);
    println!("{}", x[0]);  // pay attention to the use of "x[0]" here.
}
Run Code Online (Sandbox Code Playgroud)

rust

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

llvm-ir中'store {} {},{}*%p'的含义是什么?

我知道该store指令用于将数据存储到内存中,但下面的llvm-ir代码是什么意思?你可以在这里看到很多空的"{}"结构.

; CHECK:      Function: foo:
; CHECK-NEXT:   NoAlias: {}* %p, {}* %q

define void @foo({}* %p, {}* %q) {
  store {} {}, {}* %p
  store {} {}, {}* %q
  ret void
}
Run Code Online (Sandbox Code Playgroud)

仅供参考:https://github.com/llvm-mirror/llvm/blob/master/test/Analysis/CFLAliasAnalysis/Steensgaard/empty.ll

llvm llvm-ir

0
推荐指数
1
解决办法
119
查看次数

标签 统计

assembly ×1

bus-error ×1

cpu ×1

linux ×1

llvm ×1

llvm-ir ×1

nasm ×1

rust ×1

simd ×1

webassembly ×1

x86-64 ×1