From 3350c34a74844e21ea69077e01efff3bae64bdcd Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Tue, 23 Mar 2021 17:31:08 -0700 Subject: . --- html/apps/random.subx.html | 121 --------------------------------------------- 1 file changed, 121 deletions(-) delete mode 100644 html/apps/random.subx.html (limited to 'html/apps/random.subx.html') diff --git a/html/apps/random.subx.html b/html/apps/random.subx.html deleted file mode 100644 index e03b3fbd..00000000 --- a/html/apps/random.subx.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -Mu - apps/random.subx - - - - - - - - - - -https://github.com/akkartik/mu/blob/main/apps/random.subx -
- 1 # Repeatedly read 32-bit numbers from /dev/random, print them to stdout.
- 2 #
- 3 # To run:
- 4 #   $ ./bootstrap translate init.linux 0*.subx apps/random.subx -o apps/random
- 5 #   $ ./bootstrap run apps/random
- 6 
- 7 == code 0x09000000
- 8 #   instruction                     effective address                                                   register    displacement    immediate
- 9 # . op          subop               mod             rm32          base        index         scale       r32
-10 # . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
-11 
-12 Entry:
-13     # stream/esi = syscall(open, "/dev/null", O_RDONLY, 0)  # we can't use 'fd' because it looks like a hex byte
-14     bb/copy-to-ebx  Filename/imm32
-15     b9/copy-to-ecx  0/imm32/rdonly
-16     ba/copy-to-edx  0x180/imm32/fixed-perms
-17     e8/call  syscall_open/disp32
-18     # . stream = eax
-19     89/copy                         3/mod/direct    6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to esi
-20 
-21 $loop:
-22 
-23     # syscall(read, Stream, N, 4)
-24     89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           6/r32/esi   .               .                 # copy esi to ebx
-25     b9/copy-to-ecx  N/imm32
-26     ba/copy-to-edx  4/imm32/size
-27     e8/call  syscall_read/disp32
-28 
-29     # write-int32-hex-buffered(Stdout, *N)
-30     # . . push args
-31     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           N/disp32                          # push *N
-32     68/push  Stdout/imm32
-33     # . . call
-34     e8/call  write-int32-hex-buffered/disp32
-35 
-36     # write-buffered(Stdout, Newline)
-37     # . . push args
-38     68/push  Newline/imm32
-39     68/push  Stdout/imm32
-40     # . . call
-41     e8/call  write-buffered/disp32
-42     # . . discard args
-43     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
-44 
-45     eb/jump  $loop/disp8
-46 
-47     # syscall(exit, 0)
-48     bb/copy-to-ebx  0/imm32
-49     e8/call  syscall_exit/disp32
-50 
-51 == data 0x0a000000
-52 
-53 N:
-54     0/imm32
-55 Filename:
-56     2f 64 65 76 2f 72 61 6e 64 6f 6d 00
-57 #   /  d  e  v  /  r  a  n  d  o  m  null
-58 
-59 # . . vim:nowrap:textwidth=0
-
- - - -- cgit 1.4.1-2-gfad0