1
0
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:
crthpl
2021-03-16 17:43:17 -07:00
committed by GitHub
parent dd9f9c2718
commit fafb035fb5
29 changed files with 2089 additions and 335 deletions

16
examples/asm.v Normal file
View 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
}

View File

@ -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