diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-01-03 01:36:34 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-01-03 01:36:34 -0800 |
commit | 7e7a8a6eaeb4c22acb94aaca87a7b15c180ca077 (patch) | |
tree | 405503a31b48f5c5e13f103efc5762e57b290625 /html/apps/assort.subx.html | |
parent | c9bda4d13ea33873dd5bce1eef0434cb11763d19 (diff) | |
download | mu-7e7a8a6eaeb4c22acb94aaca87a7b15c180ca077.tar.gz |
5876 - address -> addr
Diffstat (limited to 'html/apps/assort.subx.html')
-rw-r--r-- | html/apps/assort.subx.html | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/html/apps/assort.subx.html b/html/apps/assort.subx.html index d6c66612..9823f5f6 100644 --- a/html/apps/assort.subx.html +++ b/html/apps/assort.subx.html @@ -145,12 +145,12 @@ if ('onhashchange' in window) { <span id="L83" class="LineNr"> 83 </span> cd/syscall 0x80/imm8 <span id="L84" class="LineNr"> 84 </span> <span id="L85" class="LineNr"> 85 </span><span class="subxComment"># data structure:</span> -<span id="L86" class="LineNr"> 86 </span><span class="subxComment"># table: (address stream {string, (address stream byte)}) (8 bytes per row)</span> +<span id="L86" class="LineNr"> 86 </span><span class="subxComment"># table: (addr stream {string, (addr stream byte)}) (8 bytes per row)</span> <span id="L87" class="LineNr"> 87 </span><span class="subxComment"># inefficient; uses sequential search for looking up segments by name</span> <span id="L88" class="LineNr"> 88 </span> -<span id="L89" class="LineNr"> 89 </span><span class="subxFunction">subx-assort</span>: <span class="subxComment"># in : (address buffered-file), out : (address buffered-file)</span> +<span id="L89" class="LineNr"> 89 </span><span class="subxFunction">subx-assort</span>: <span class="subxComment"># in : (addr buffered-file), out : (addr buffered-file)</span> <span id="L90" class="LineNr"> 90 </span> <span class="subxComment"># pseudocode:</span> -<span id="L91" class="LineNr"> 91 </span> <span class="subxComment"># var table : (address stream {string, (address stream byte)} 10/rows)</span> +<span id="L91" class="LineNr"> 91 </span> <span class="subxComment"># var table : (addr stream {string, (addr stream byte)} 10/rows)</span> <span id="L92" class="LineNr"> 92 </span> <span class="subxComment"># read-segments(in, table)</span> <span id="L93" class="LineNr"> 93 </span> <span class="subxComment"># write-segments(out, table)</span> <span id="L94" class="LineNr"> 94 </span> <span class="subxComment">#</span> @@ -159,7 +159,7 @@ if ('onhashchange' in window) { <span id="L97" class="LineNr"> 97 </span> 89/copy 3/mod/direct 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 4/r32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy esp to ebp</span> <span id="L98" class="LineNr"> 98 </span> <span class="subxS1Comment"># . save registers</span> <span id="L99" class="LineNr"> 99 </span> 51/push-ecx -<span id="L100" class="LineNr">100 </span> <span class="subxComment"># var table/ecx : (ref stream {string, (address stream byte)} 80) # 10 rows * 8 bytes/row</span> +<span id="L100" class="LineNr">100 </span> <span class="subxComment"># var table/ecx : (ref stream {string, (addr stream byte)} 80) # 10 rows * 8 bytes/row</span> <span id="L101" class="LineNr">101 </span> 81 5/subop/subtract 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0x50/imm32 <span class="subxComment"># subtract from esp</span> <span id="L102" class="LineNr">102 </span> 68/push 0x50/imm32/length <span id="L103" class="LineNr">103 </span> 68/push 0/imm32/read @@ -464,10 +464,10 @@ if ('onhashchange' in window) { <span id="L450" class="LineNr">450 </span> 5d/pop-to-ebp <span id="L451" class="LineNr">451 </span> c3/return <span id="L452" class="LineNr">452 </span> -<span id="L453" class="LineNr">453 </span><span class="subxComment"># type string_key = (address array byte)</span> +<span id="L453" class="LineNr">453 </span><span class="subxComment"># type string_key = (addr array byte)</span> <span id="L454" class="LineNr">454 </span> <span id="L455" class="LineNr">455 </span><span class="subxComment"># beware: leaks memory (one name per segment read)</span> -<span id="L456" class="LineNr">456 </span><span class="subxFunction">read-segments</span>: <span class="subxComment"># in : (address buffered-file), table : (address stream {string_key, (handle stream byte)})</span> +<span id="L456" class="LineNr">456 </span><span class="subxFunction">read-segments</span>: <span class="subxComment"># in : (addr buffered-file), table : (addr stream {string_key, (handle stream byte)})</span> <span id="L457" class="LineNr">457 </span> <span class="subxComment"># pseudocode:</span> <span id="L458" class="LineNr">458 </span> <span class="subxComment"># var curr-segment : (handle stream byte) = 0</span> <span id="L459" class="LineNr">459 </span> <span class="subxComment"># var line : (stream byte 512)</span> @@ -565,7 +565,7 @@ if ('onhashchange' in window) { <span id="L591" class="LineNr">591 </span><span class="Constant">$read-segments:check-for-comment</span>: <span id="L592" class="Folded">592 </span><span class="Folded">+-- 9 lines: #? # print("check for comment\n") ----------------------------------------------------------------------------------------------------------</span> <span id="L601" class="LineNr">601 </span> <span class="subxComment"># if (slice-starts-with?(word-slice, "#")) continue</span> -<span id="L602" class="LineNr">602 </span> <span class="subxS1Comment"># . var start/esi : (address byte) = word-slice->start</span> +<span id="L602" class="LineNr">602 </span> <span class="subxS1Comment"># . var start/esi : (addr byte) = word-slice->start</span> <span id="L603" class="LineNr">603 </span> 8b/copy 0/mod/indirect 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *ecx to esi</span> <span id="L604" class="LineNr">604 </span> <span class="subxS1Comment"># . var c/eax : byte = *start</span> <span id="L605" class="LineNr">605 </span> 31/xor 3/mod/direct 0/rm32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># clear eax</span> @@ -597,7 +597,7 @@ if ('onhashchange' in window) { <span id="L678" class="LineNr">678 </span> <span class="subxS2Comment"># . . discard args</span> <span id="L679" class="LineNr">679 </span> 81 0/subop/add 3/mod/direct 4/rm32/esp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 8/imm32 <span class="subxComment"># add to esp</span> <span id="L680" class="Folded">680 </span><span class="Folded">+-- 40 lines: #? # dump segment name ---------------------------------------------------------------------------------------------------------------------</span> -<span id="L720" class="LineNr">720 </span> <span class="subxComment"># var segment-slot/eax : (address handle stream byte) = leaky-get-or-insert-slice(table, segment-name, row-size=8)</span> +<span id="L720" class="LineNr">720 </span> <span class="subxComment"># var segment-slot/eax : (addr handle stream byte) = leaky-get-or-insert-slice(table, segment-name, row-size=8)</span> <span id="L721" class="LineNr">721 </span> <span class="subxS2Comment"># . . push args</span> <span id="L722" class="LineNr">722 </span> 68/push 8/imm32/row-size <span id="L723" class="LineNr">723 </span> 52/push-edx @@ -667,7 +667,7 @@ if ('onhashchange' in window) { <span id="L843" class="LineNr">843 </span> 5d/pop-to-ebp <span id="L844" class="LineNr">844 </span> c3/return <span id="L845" class="LineNr">845 </span> -<span id="L846" class="LineNr">846 </span><span class="subxFunction">write-segments</span>: <span class="subxComment"># out : (address buffered-file), table : (address stream {string_key, (handle stream byte)})</span> +<span id="L846" class="LineNr">846 </span><span class="subxFunction">write-segments</span>: <span class="subxComment"># out : (addr buffered-file), table : (addr stream {string_key, (handle stream byte)})</span> <span id="L847" class="LineNr">847 </span> <span class="subxComment"># pseudocode:</span> <span id="L848" class="LineNr">848 </span> <span class="subxComment"># var curr = table->data</span> <span id="L849" class="LineNr">849 </span> <span class="subxComment"># var max = &table->data[table->write]</span> @@ -688,15 +688,15 @@ if ('onhashchange' in window) { <span id="L864" class="LineNr">864 </span> 8b/copy 1/mod/*+disp8 5/rm32/ebp <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi 0xc/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(ebp+12) to esi</span> <span id="L865" class="LineNr">865 </span> <span class="subxComment"># var write/edx : int = table->write</span> <span id="L866" class="LineNr">866 </span> 8b/copy 0/mod/indirect 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># copy *esi to edx</span> -<span id="L867" class="LineNr">867 </span> <span class="subxComment"># var curr/esi : (address byte) = table->data</span> +<span id="L867" class="LineNr">867 </span> <span class="subxComment"># var curr/esi : (addr byte) = table->data</span> <span id="L868" class="LineNr">868 </span> 81 0/subop/add 3/mod/direct 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0xc/imm32 <span class="subxComment"># add to eax</span> -<span id="L869" class="LineNr">869 </span> <span class="subxComment"># var max/edx : (address byte) = curr + write</span> +<span id="L869" class="LineNr">869 </span> <span class="subxComment"># var max/edx : (addr byte) = curr + write</span> <span id="L870" class="LineNr">870 </span> 01/add 3/mod/direct 2/rm32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 6/r32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># add esi to edx</span> <span id="L871" class="LineNr">871 </span><span class="Constant">$write-segments:loop</span>: <span id="L872" class="LineNr">872 </span> <span class="subxComment"># if (curr >= max) break</span> <span id="L873" class="LineNr">873 </span> 39/compare 3/mod/direct 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 2/r32/edx <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="subxComment"># compare esi with edx</span> <span id="L874" class="LineNr">874 </span> 73/jump-if-greater-or-equal-unsigned $write-segments:<span class="Constant">break</span>/disp8 -<span id="L875" class="LineNr">875 </span> <span class="subxComment"># var stream/eax : (address stream byte) = table[i].stream</span> +<span id="L875" class="LineNr">875 </span> <span class="subxComment"># var stream/eax : (addr stream byte) = table[i].stream</span> <span id="L876" class="LineNr">876 </span> 8b/copy 1/mod/*+disp8 6/rm32/esi <span class="Normal"> . </span> <span class="Normal"> . </span> <span class="Normal"> . </span> 0/r32/eax 4/disp8 <span class="Normal"> . </span> <span class="subxComment"># copy *(esi+4) to eax</span> <span id="L877" class="LineNr">877 </span> <span class="subxComment"># write-stream-data(out, stream)</span> <span id="L878" class="LineNr">878 </span> <span class="subxS2Comment"># . . push args</span> |