mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
all: reimplement inline assembly (#8645)
This commit is contained in:
16
examples/asm.v
Normal file
16
examples/asm.v
Normal file
@ -0,0 +1,16 @@
|
||||
fn main() {
|
||||
a := 100
|
||||
b := 20
|
||||
mut c := 0
|
||||
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
|
||||
}
|
@ -1,18 +1,18 @@
|
||||
// This program displays the fibonacci sequence
|
||||
import os
|
||||
// import os
|
||||
|
||||
fn main() {
|
||||
// Check for user input
|
||||
if os.args.len != 2 {
|
||||
println('usage: fibonacci [rank]')
|
||||
//if os.args.len != 2 {
|
||||
// println('usage: fibonacci [rank]')
|
||||
|
||||
// Exit
|
||||
return
|
||||
}
|
||||
// return
|
||||
// }
|
||||
|
||||
// Parse first argument and cast it to int
|
||||
stop := os.args[1].int()
|
||||
|
||||
// stop := os.args[1].int()
|
||||
stop := 23
|
||||
// Can only calculate correctly until rank 92
|
||||
if stop > 92 {
|
||||
println('rank must be 92 or less')
|
||||
@ -20,10 +20,10 @@ fn main() {
|
||||
}
|
||||
|
||||
// Three consecutive terms of the sequence
|
||||
mut a := u64(0)
|
||||
mut b := u64(0)
|
||||
mut c := u64(1)
|
||||
|
||||
mut a := 0
|
||||
mut b := 0
|
||||
mut c := 1
|
||||
println(a+c+c)
|
||||
for _ in 0 .. stop {
|
||||
// Set a and b to the next term
|
||||
a = b
|
||||
|
Reference in New Issue
Block a user