我想学习 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) 我在做基本练习:
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)
我不明白为什么编译器会找到一个(). 据我了解,由于闭包返回a或bin biggest,我应该更改代码(例如,添加最大的行之后,或最大;或基本上返回 a 或 b)。
问题出在哪儿?如果我 …