about summary refs log tree commit diff stats
path: root/html/examples/ex9.subx.html
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2019-08-26 11:55:26 -0700
committerKartik Agaram <vc@akkartik.com>2019-08-26 11:59:21 -0700
commit333525360b22f3d3ea31db46a4d2f1b4edbfebdb (patch)
treeed255f308542ba28a99d862d54d4992dcf749622 /html/examples/ex9.subx.html
parent22fb844ba4edf14eb85245a35f42e721658c4f8e (diff)
downloadmu-333525360b22f3d3ea31db46a4d2f1b4edbfebdb.tar.gz
5592 - switch register names to lowercase
Diffstat (limited to 'html/examples/ex9.subx.html')
-rw-r--r--html/examples/ex9.subx.html36
1 files changed, 18 insertions, 18 deletions
diff --git a/html/examples/ex9.subx.html b/html/examples/ex9.subx.html
index e497713e..2f44118a 100644
--- a/html/examples/ex9.subx.html
+++ b/html/examples/ex9.subx.html
@@ -69,11 +69,11 @@ if ('onhashchange' in window) {
 <span id="L11" class="LineNr">11 </span><span class="subxComment">#   2</span>
 <span id="L12" class="LineNr">12 </span><span class="subxComment">#</span>
 <span id="L13" class="LineNr">13 </span><span class="subxComment"># At the start of a SubX program:</span>
-<span id="L14" class="LineNr">14 </span><span class="subxComment">#   argc: *ESP</span>
-<span id="L15" class="LineNr">15 </span><span class="subxComment">#   argv[0]: *(ESP+4)</span>
-<span id="L16" class="LineNr">16 </span><span class="subxComment">#   argv[1]: *(ESP+8)</span>
+<span id="L14" class="LineNr">14 </span><span class="subxComment">#   argc: *esp</span>
+<span id="L15" class="LineNr">15 </span><span class="subxComment">#   argv[0]: *(esp+4)</span>
+<span id="L16" class="LineNr">16 </span><span class="subxComment">#   argv[1]: *(esp+8)</span>
 <span id="L17" class="LineNr">17 </span><span class="subxComment">#   ...</span>
-<span id="L18" class="LineNr">18 </span><span class="subxComment"># Locals start from ESP-4 downwards.</span>
+<span id="L18" class="LineNr">18 </span><span class="subxComment"># Locals start from esp-4 downwards.</span>
 <span id="L19" class="LineNr">19 </span>
 <span id="L20" class="LineNr">20 </span>== code 0x09000000
 <span id="L21" class="LineNr">21 </span><span class="subxComment">#   instruction                     effective address                                                   register    displacement    immediate</span>
@@ -82,30 +82,30 @@ if ('onhashchange' in window) {
 <span id="L24" class="LineNr">24 </span>
 <span id="L25" class="LineNr">25 </span><span class="SpecialChar">Entry</span>:
 <span id="L26" class="LineNr">26 </span>    <span class="subxS1Comment"># . prolog</span>
-<span id="L27" class="LineNr">27 </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="L27" class="LineNr">27 </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="L28" class="LineNr">28 </span>    <span class="subxComment"># ascii-difference(argv[1], argv[2])</span>
 <span id="L29" class="LineNr">29 </span>    <span class="subxS2Comment"># . . push argv[2]</span>
-<span id="L30" class="LineNr">30 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+12)</span>
+<span id="L30" class="LineNr">30 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
 <span id="L31" class="LineNr">31 </span>    <span class="subxS2Comment"># . . push argv[1]</span>
-<span id="L32" class="LineNr">32 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+8)</span>
+<span id="L32" class="LineNr">32 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
 <span id="L33" class="LineNr">33 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L34" class="LineNr">34 </span>    e8/call  <a href='ex9.subx.html#L42'>ascii-difference</a>/disp32
 <span id="L35" class="LineNr">35 </span>    <span class="subxS2Comment"># . . discard args</span>
-<span id="L36" class="LineNr">36 </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="L37" class="LineNr">37 </span>    <span class="subxComment"># syscall(exit, EAX)</span>
-<span id="L38" class="LineNr">38 </span>    89/copy                         3/mod/direct    3/rm32/EBX   <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"># copy EAX to EBX</span>
-<span id="L39" class="LineNr">39 </span>    b8/copy-to-EAX  1/imm32/exit
+<span id="L36" class="LineNr">36 </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="L37" class="LineNr">37 </span>    <span class="subxComment"># syscall(exit, eax)</span>
+<span id="L38" class="LineNr">38 </span>    89/copy                         3/mod/direct    3/rm32/ebx   <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"># copy eax to ebx</span>
+<span id="L39" class="LineNr">39 </span>    b8/copy-to-eax  1/imm32/exit
 <span id="L40" class="LineNr">40 </span>    cd/syscall  0x80/imm8
 <span id="L41" class="LineNr">41 </span>
 <span id="L42" class="LineNr">42 </span><span class="subxFunction">ascii-difference</span>:  <span class="subxComment"># (s1, s2) : null-terminated ascii strings</span>
-<span id="L43" class="LineNr">43 </span>    <span class="subxComment"># a = first letter of s1 (ECX)</span>
-<span id="L44" class="LineNr">44 </span>    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/ESP  4/index/none              0/r32/EAX   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ESP+4) to EAX</span>
-<span id="L45" class="LineNr">45 </span>    8b/copy                         0/mod/indirect  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"># copy *EAX to EAX</span>
-<span id="L46" class="LineNr">46 </span>    <span class="subxComment"># b = first letter of s2 (EDX)</span>
-<span id="L47" class="LineNr">47 </span>    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/ESP  4/index/none              1/r32/ECX   8/disp8                           <span class="subxComment"># copy *(ESP+8) to ECX</span>
-<span id="L48" class="LineNr">48 </span>    8b/copy                         0/mod/indirect  1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ECX  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *ECX to ECX</span>
+<span id="L43" class="LineNr">43 </span>    <span class="subxComment"># a = first letter of s1 (ecx)</span>
+<span id="L44" class="LineNr">44 </span>    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/esp  4/index/none              0/r32/eax   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(esp+4) to eax</span>
+<span id="L45" class="LineNr">45 </span>    8b/copy                         0/mod/indirect  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"># copy *eax to eax</span>
+<span id="L46" class="LineNr">46 </span>    <span class="subxComment"># b = first letter of s2 (edx)</span>
+<span id="L47" class="LineNr">47 </span>    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/esp  4/index/none              1/r32/ecx   8/disp8                           <span class="subxComment"># copy *(esp+8) to ecx</span>
+<span id="L48" class="LineNr">48 </span>    8b/copy                         0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *ecx to ecx</span>
 <span id="L49" class="LineNr">49 </span>    <span class="subxComment"># a-b</span>
-<span id="L50" class="LineNr">50 </span>    29/subtract                     3/mod/direct    0/rm32/EAX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ECX  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># subtract ECX from EAX</span>
+<span id="L50" class="LineNr">50 </span>    29/subtract                     3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># subtract ecx from eax</span>
 <span id="L51" class="LineNr">51 </span>    c3/return
 <span id="L52" class="LineNr">52 </span>
 <span id="L53" class="LineNr">53 </span>== data 0x0a000000
ss='alt'>
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150