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?

中古ノート、買ってみた。 その44

Posted at

概要

中古ノート買ってみた。
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」を、起動する
そして






以上。

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?