examples: split asm.v to asm.amd64.v and asm.i386.v
parent
2e6611372a
commit
74e73edac1
|
@ -0,0 +1,19 @@
|
||||||
|
fn main() {
|
||||||
|
a := 100
|
||||||
|
b := 20
|
||||||
|
mut c := 0
|
||||||
|
asm amd64 {
|
||||||
|
mov rax, a
|
||||||
|
add rax, b
|
||||||
|
mov c, rax
|
||||||
|
; =r (c)
|
||||||
|
; r (a)
|
||||||
|
r (b)
|
||||||
|
}
|
||||||
|
assert a == 100
|
||||||
|
assert b == 20
|
||||||
|
assert c == 120
|
||||||
|
println('a: $a') // 100
|
||||||
|
println('b: $b') // 20
|
||||||
|
println('c: $c') // 120
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
fn main() {
|
||||||
|
a := 100
|
||||||
|
b := 20
|
||||||
|
mut c := 0
|
||||||
|
asm i386 {
|
||||||
|
mov eax, a
|
||||||
|
add eax, b
|
||||||
|
mov c, eax
|
||||||
|
; =r (c)
|
||||||
|
; r (a)
|
||||||
|
r (b)
|
||||||
|
}
|
||||||
|
assert a == 100
|
||||||
|
assert b == 20
|
||||||
|
assert c == 120
|
||||||
|
println('a: $a') // 100
|
||||||
|
println('b: $b') // 20
|
||||||
|
println('c: $c') // 120
|
||||||
|
}
|
|
@ -1,18 +0,0 @@
|
||||||
fn main() {
|
|
||||||
a := 100
|
|
||||||
b := 20
|
|
||||||
mut c := 0
|
|
||||||
$if amd64 {
|
|
||||||
asm amd64 {
|
|
||||||
mov eax, a
|
|
||||||
add eax, b
|
|
||||||
mov c, eax
|
|
||||||
; =r (c) // output
|
|
||||||
; r (a) // input
|
|
||||||
r (b)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
println('a: $a') // 100
|
|
||||||
println('b: $b') // 20
|
|
||||||
println('c: $c') // 120
|
|
||||||
}
|
|
Loading…
Reference in New Issue