概要
paiza.ioでelixirやってみた。
練習問題やってみた。
練習問題
アセンブラでcpuidを求めよ。
サンプルコード
File.write "hello.s", """
.code64
.text
.globl main
main:
lea msg(%rip), %rdi
xorl %eax, %eax
cpuid
movl %ebx, (%rdi)
movl %edx, 4(%rdi)
movl %ecx, 8(%rdi)
mov $1, %rax;
mov $1, %rdi;
mov $msg, %rsi;
mov $12, %rdx;
syscall;
mov $0, %rax;
syscall;
.data
msg:
.asciz "Hello world!"
"""
{result, 0} = System.shell("gcc -no-pie hello.s")
IO.puts result
{result, 0} = System.shell("./a.out")
IO.puts result
実行結果
GenuineIntel
成果物
以上。