0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

wasmで、アセンブラ その5

0
Last updated at Posted at 2026-10-31

概要

wasmが、スタックマシンらしいので、やってみた。
plunkerでwasmのwatのsandboxやってみた。
数9を4個使って、1から15まで求める式
AIに勝った。

数9を4個使って、1を求める式

(module
  (func (export "one") (result i32)
    i32.const 9
    i32.const 9
    i32.div_s
    i32.const 9
    i32.const 9
    i32.div_s
    i32.mul
  )
)

数9を4個使って、2を求める式

(module
  (func (export "two") (result i32)
    i32.const 9
    i32.const 9
    i32.div_s
    i32.const 9
    i32.const 9
    i32.div_s
    i32.add
  )
)

数9を4個使って、3を求める式

(module
  (func (export "three") (result i32)
    i32.const 9
    i32.const 9
    i32.add
    i32.const 9
    i32.add
    i32.const 9
    i32.div_s
  )
)

数9を4個使って、4を求める式

(module
  (func (export "four") (result i32)
    (local $dup i32)
    i32.const 9
    i32.const 9
    i32.add
    i32.const 9
    i32.div_s
    local.tee $dup
    local.get $dup
    i32.add
    i32.const 9
    drop
  )
)

数9を4個使って、5を求める式

(module
  (func (export "five") (result i32)
    (local $dup i32)
    i32.const 9
    i32.const 9
    i32.const 9
    i32.add
    i32.const 9
    i32.div_s
    local.tee $dup
    local.get $dup
    i32.add
    i32.sub
  )
)

数9を4個使って、6を求める式

(module
  (func (export "six") (result i32)
    (local $dup i32)
    i32.const 9
    i32.const 9
    i32.add
    i32.const 9
    i32.add
    i32.const 9
    i32.div_s
    local.tee $dup
    local.get $dup
    i32.add
  )
)

数9を4個使って、7を求める式

(module
  (func (export "seven") (result i32)
    i32.const 9
    i32.const 9
    i32.const 9
    i32.add    
    i32.const 9
    i32.div_s  
    i32.sub    
  )
)

数9を4個使って、8を求める式

(module
  (func (export "eight") (result i32)
    i32.const 9
    i32.const 9
    i32.mul   
    i32.const 9
    i32.sub    
    i32.const 9
    i32.div_s  
  )
)

数9を4個使って、9を求める式

(module
  (func (export "nine") (result i32)
    i32.const 9
    i32.const 9
    i32.const 9
    i32.sub    
    i32.const 9
    i32.mul    
    i32.add    
  )
)

数9を4個使って、10を求める式

(module
  (func (export "ten") (result i32)
    i32.const 9
    i32.const 9
    i32.mul    
    i32.const 9
    i32.add    
    i32.const 9
    i32.div_s  
  )
)

数9を4個使って、11を求める式

(module
  (func (export "eleven") (result i32)
    i32.const 9
    i32.const 9
    i32.const 9
    i32.add   
    i32.const 9
    i32.div_s  
    i32.add    
  )
)

数9を4個使って、12を求める式

(module
  (func (export "twelve") (result i32)
    (local $dup i32)
    i32.const 9
    local.tee $dup
    local.get $dup
    i32.const 9
    i32.add
    i32.const 9
    i32.add    
    i32.const 9
    i32.div_s 
    i32.add   
  )
)

数9を4個使って、13を求める式

(module
  (func (export "thirteen") (result i32)
    (local $dup i32)
    i32.const 9
    i32.const 9
    i32.const 9
    i32.add
    i32.const 9
    i32.div_s
    local.tee $dup
    local.get $dup   
    i32.add          
    i32.add          
  )
)

数9を4個使って、14を求める式

(module
  (func (export "fourteen") (result i32)
    (local $dup i32)
    i32.const 9
    local.tee $dup
    local.get $dup  
    i32.const 9
    i32.const 9
    i32.add          
    i32.const 9
    i32.div_s 
    local.tee $dup
    local.get $dup  
    i32.add          
    i32.sub          
    i32.add          
  )
)

数9を4個使って、15を求める式

(module
  (func (export "fifteen") (result i32)
    (local $dup i32)
    i32.const 9
    local.tee $dup
    local.get $dup
    i32.add
    i32.const 9
    i32.const 9
    i32.const 9
    i32.add
    i32.add  
    local.get $dup
    i32.div_s  
    i32.sub   
  )
)

以上。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?