小编rcm*_*cmb的帖子

无法理解错误:mov rax 上的有效地址无效,qword [ rbp-24 - rbx * 8]

我想学习 asm,来自 C
一本书建议尝试实现这个算法,这是一个非常简单的排序算法

begin
for i = 0 to len-1
    small = arr(i)
    index = i
        for j = i to len-1
            if ( arr(j) < small ) then
                small = arr(j)
                index = j
            end_if
        end_for
    arr(index) = arr(i)
    arr(i) = small
end_for
end_begin
Run Code Online (Sandbox Code Playgroud)

我的代码的开头是(如果需要,可以提供其余部分)

section .bss


section .data

len dq 5
array dq 1 , 3 ,  6 , 8 ,  2


section .text


        global _start

_start:
        mov rdi , [len]
        mov rsi , array
        call sort …
Run Code Online (Sandbox Code Playgroud)

linux 64-bit nasm

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

为什么返回不能推断返回的类型,而我必须显式返回而不是使用闭包?

我在做基本练习:

pub fn bigger(a: i32, b: i32) -> i32 {
    let biggest = if a > b { a } else { return b };
}
Run Code Online (Sandbox Code Playgroud)

编译器报错:

error[E0308]: mismatched types
 --> src/lib.rs:1:34
  |
1 | pub fn bigger(a: i32, b: i32) -> i32 {
  |        ------                    ^^^ expected `i32`, found `()`
  |        |
  |        implicitly returns `()` as its body has no tail or `return` expression
Run Code Online (Sandbox Code Playgroud)

我不明白为什么编译器会找到一个(). 据我了解,由于闭包返回abin biggest,我应该更改代码(例如,添加最大的行之后,或最大;或基本上返回 a 或 b)。

问题出在哪儿?如果我 …

rust

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

标签 统计

64-bit ×1

linux ×1

nasm ×1

rust ×1