概要
中古ノート買ってみた。
wsl1のubuntu18.04にmono入れてみた。
mono版プロデル、入れてみた。
アセンブラをアシストするプログラム書いてみた。
動作結果
# mono pconsole.exe run0.rdr
0: アセンブラを書く
1: コンパイル
2: リンク
3: ラン
> 0
section .text
global _start
_start:
xor rdx, rdx
push rdx
mov rax, 0x68732f6e69622f
push rax
mov rdi, rsp
push rdx
push rdi
mov rsi, rsp
xor rax, rax
mov al, 0x3b
syscall
# mono pconsole.exe run0.rdr
0: アセンブラを書く
1: コンパイル
2: リンク
3: ラン
> 1
# mono pconsole.exe run0.rdr
0: アセンブラを書く
1: コンパイル
2: リンク
3: ラン
> 2
ld -o b shell.o
# mono pconsole.exe run0.rdr
0: アセンブラを書く
1: コンパイル
2: リンク
3: ラン
> 3
# ls
2022.journal hello.exe rdrwebserverc.exe
2022.txt hello.exe.mdb readme.md
Produire.Compiler.dll hello.rdr run0.rdr
Produire.Core.dll hello.txt samples
Produire.WebServer.dll kodu.rdr shell.asm
Produire.exe led0.rdr shell.o
RdrWebServer.exe pconsole.exe test.csv
b plugins test.ledger
csv0.rdr rdrc.exe utopiat.Host.dll
eula.txt rdrcgi-mono-fastcgi.exe ''$'\345\260\217\351\201\243\343\201\204\345\270\263''.csv'
file0.rdr rdrcgi.exe
# exit
#
サンプルコード
※コンソール
コンソールへ、「0: アセンブラを書く」を、出力して改行する
コンソールへ、「1: コンパイル」を、表示して改行する
コンソールへ、「2: リンク」を、表示して改行する
コンソールへ、「3: ラン」を、表示して改行する
コンソールへ、「> 」を、表示する
コンソールから、受け取って、指示とする
もし、指示が「0」に、等しいなら
ファイル名は「shell.asm」
内容は、「
section .text
global _start
_start:
xor rdx, rdx
push rdx
mov rax, 0x68732f6e69622f
push rax
mov rdi, rsp
push rdx
push rdi
mov rsi, rsp
xor rax, rax
mov al, 0x3b
syscall
」
内容を、表示する
内容を、ファイル名へ「UTF-8N」で保存する
そして
もし、指示が「1」に、等しいなら
「nasm -f elf64 shell.asm」を、表示する
「nasm -f elf64 shell.asm」を、起動する
そして
もし、指示が「2」に等しいなら
「ld -o b shell.o」を、表示する
「ld -o b shell.o」を、起動する
そして
もし、指示が「3」に等しいなら
「./b」を、起動する
そして
以上。