锘??xml version="1.0" encoding="utf-8" standalone="yes"?>精品国产乱码久久久久久郑州公司 ,狠狠久久综合,香蕉久久夜色精品国产尤物http://www.shnenglu.com/jackyxinli/鏄ラ鎷傞潰涓ら綰紝縐嬪彾媧掑湴涓鐗囬噾銆? 澶忚嵎鎽囨洺涓韜交錛屽啲闆鐩栧ぇ鍦伴摱銆?/description>zh-cnWed, 07 May 2025 22:24:24 GMTWed, 07 May 2025 22:24:24 GMT60VC++/G++ 澶氭佹祴璇?/title><link>http://www.shnenglu.com/jackyxinli/archive/2019/11/28/217003.html</link><dc:creator>jacky_zz</dc:creator><author>jacky_zz</author><pubDate>Thu, 28 Nov 2019 03:05:00 GMT</pubDate><guid>http://www.shnenglu.com/jackyxinli/archive/2019/11/28/217003.html</guid><wfw:comment>http://www.shnenglu.com/jackyxinli/comments/217003.html</wfw:comment><comments>http://www.shnenglu.com/jackyxinli/archive/2019/11/28/217003.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jackyxinli/comments/commentRss/217003.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jackyxinli/services/trackbacks/217003.html</trackback:ping><description><![CDATA[<div>base.h</div> <div> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008080; "> 1</span> <span style="color: #000000; ">#ifndef BASE_H<br /> </span><span style="color: #008080; "> 2</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; "> BASE_H</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 3</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 4</span> <span style="color: #000000; ">#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 5</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 6</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> Base<br /> </span><span style="color: #008080; "> 7</span> <span style="color: #000000; ">{<br /> </span><span style="color: #008080; "> 8</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br /> </span><span style="color: #008080; "> 9</span> <span style="color: #000000; ">    Base(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> val) : m_val(val)<br /> </span><span style="color: #008080; ">10</span> <span style="color: #000000; ">    {<br /> </span><span style="color: #008080; ">11</span> <span style="color: #000000; ">        printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Base::Base(int val) @ 0x%08X\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; ">12</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">13</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">14</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">virtual</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> say()<br /> </span><span style="color: #008080; ">15</span> <span style="color: #000000; ">    {<br /> </span><span style="color: #008080; ">16</span> <span style="color: #000000; ">        printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">void Base::say() @ 0x%08X\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; ">17</span> <span style="color: #000000; ">        printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">val = %d\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, GetVal());<br /> </span><span style="color: #008080; ">18</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">19</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">20</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">virtual</span><span style="color: #000000; "> </span><span style="color: #000000; ">~</span><span style="color: #000000; ">Base()<br /> </span><span style="color: #008080; ">21</span> <span style="color: #000000; ">    {<br /> </span><span style="color: #008080; ">22</span> <span style="color: #000000; ">        printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Base::~Base() @ 0x%08X\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; ">23</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">24</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">25</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">protected</span><span style="color: #000000; ">:<br /> </span><span style="color: #008080; ">26</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> GetVal() { </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> m_val; }<br /> </span><span style="color: #008080; ">27</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">28</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">:<br /> </span><span style="color: #008080; ">29</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> m_val;<br /> </span><span style="color: #008080; ">30</span> <span style="color: #000000; ">};<br /> </span><span style="color: #008080; ">31</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">32</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#endif</span></div> </div> <div></div> <div>child.h</div> <div> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008080; "> 1</span> <span style="color: #000000; ">#ifndef CHILD_H<br /> </span><span style="color: #008080; "> 2</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; "> CHILD_H</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 3</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 4</span> <span style="color: #000000; ">#include </span><span style="color: #000000; "><</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">></span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 5</span> <span style="color: #000000; ">#include </span><span style="color: #000000; ">"</span><span style="color: #000000; ">base.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 6</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 7</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> Child : </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> Base<br /> </span><span style="color: #008080; "> 8</span> <span style="color: #000000; ">{<br /> </span><span style="color: #008080; "> 9</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br /> </span><span style="color: #008080; ">10</span> <span style="color: #000000; ">    Child(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> val) : Base(val)<br /> </span><span style="color: #008080; ">11</span> <span style="color: #000000; ">    {<br /> </span><span style="color: #008080; ">12</span> <span style="color: #000000; ">        printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Child::Child(int val) @ 0x%08X\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; ">13</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">14</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">15</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> say()<br /> </span><span style="color: #008080; ">16</span> <span style="color: #000000; ">    {<br /> </span><span style="color: #008080; ">17</span> <span style="color: #000000; ">        printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">void Child::say() @ 0x%08X\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; ">18</span> <span style="color: #000000; ">        printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">val = %d\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, GetVal());<br /> </span><span style="color: #008080; ">19</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">20</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">21</span> <span style="color: #000000; ">    </span><span style="color: #000000; ">~</span><span style="color: #000000; ">Child()<br /> </span><span style="color: #008080; ">22</span> <span style="color: #000000; ">    {<br /> </span><span style="color: #008080; ">23</span> <span style="color: #000000; ">        printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Child::~Child() @ 0x%08X\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; ">24</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">25</span> <span style="color: #000000; ">};<br /> </span><span style="color: #008080; ">26</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">27</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#endif</span><span style="color: #000000; "><br /> </span><span style="color: #008080; ">28</span> <span style="color: #000000; "></span></div> </div> <div></div> <div>main.cpp</div> <div> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008080; ">  1</span> <span style="color: #000000; ">#include </span><span style="color: #000000; ">"</span><span style="color: #000000; ">base.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /> </span><span style="color: #008080; ">  2</span> <span style="color: #000000; ">#include </span><span style="color: #000000; ">"</span><span style="color: #000000; ">child.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /> </span><span style="color: #008080; ">  3</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">  4</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> test0();<br /> </span><span style="color: #008080; ">  5</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> test();<br /> </span><span style="color: #008080; ">  6</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> virfunc_call(Base </span><span style="color: #000000; ">*</span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; ">  7</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">  8</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> test0()<br /> </span><span style="color: #008080; ">  9</span> <span style="color: #000000; ">{<br /> </span><span style="color: #008080; "> 10</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> src </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; "> 11</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> dst;   <br /> </span><span style="color: #008080; "> 12</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 13</span> <span style="color: #000000; ">#ifdef WIN32<br /> </span><span style="color: #008080; "> 14</span> <span style="color: #000000; ">    dst </span><span style="color: #000000; ">=</span><span style="color: #000000; "> src;<br /> </span><span style="color: #008080; "> 15</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#else</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 16</span> <span style="color: #000000; ">    asm (</span><span style="color: #000000; ">"</span><span style="color: #000000; ">mov %1, %0\n\t</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 17</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">add $1, %0</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 18</span> <span style="color: #000000; ">        : </span><span style="color: #000000; ">"</span><span style="color: #000000; ">=r</span><span style="color: #000000; ">"</span><span style="color: #000000; "> (dst) <br /> </span><span style="color: #008080; "> 19</span> <span style="color: #000000; ">        : </span><span style="color: #000000; ">"</span><span style="color: #000000; ">r</span><span style="color: #000000; ">"</span><span style="color: #000000; "> (src));<br /> </span><span style="color: #008080; "> 20</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#endif</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 21</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 22</span> <span style="color: #000000; ">    printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">dst=%d\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, dst);<br /> </span><span style="color: #008080; "> 23</span> <span style="color: #000000; ">}<br /> </span><span style="color: #008080; "> 24</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 25</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> test(Base </span><span style="color: #000000; ">*</span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">)<br /> </span><span style="color: #008080; "> 26</span> <span style="color: #000000; ">{ <br /> </span><span style="color: #008080; "> 27</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> addr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; "> 28</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 29</span> <span style="color: #000000; ">#ifdef WIN32<br /> </span><span style="color: #008080; "> 30</span> <span style="color: #000000; ">    printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">[1] addr=0x%08X base=0x%P\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, addr, </span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; "> 31</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#else</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 32</span> <span style="color: #000000; ">    printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">[1] addr=0x%08X base=0x%08X\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, addr, </span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; "> 33</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#endif</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 34</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 35</span> <span style="color: #000000; ">#ifdef WIN32<br /> </span><span style="color: #008080; "> 36</span> <span style="color: #000000; ">    addr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">((</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">)</span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; "> 37</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#else</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 38</span> <span style="color: #000000; ">    asm (<br /> </span><span style="color: #008080; "> 39</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">movl %0, %1\n\t</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 40</span> <span style="color: #000000; ">        : </span><span style="color: #000000; ">"</span><span style="color: #000000; ">=r</span><span style="color: #000000; ">"</span><span style="color: #000000; "> (addr)<br /> </span><span style="color: #008080; "> 41</span> <span style="color: #000000; ">        : </span><span style="color: #000000; ">"</span><span style="color: #000000; ">r</span><span style="color: #000000; ">"</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">)<br /> </span><span style="color: #008080; "> 42</span> <span style="color: #000000; ">    );<br /> </span><span style="color: #008080; "> 43</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#endif</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 44</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 45</span> <span style="color: #000000; ">#ifdef WIN32<br /> </span><span style="color: #008080; "> 46</span> <span style="color: #000000; ">    printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">[2] addr=0x%08X base=0x%P\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, addr, </span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; "> 47</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#else</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 48</span> <span style="color: #000000; ">    printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">[2] addr=0x%08X base=0x%08X\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, addr, </span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; "> 49</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#endif</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 50</span> <span style="color: #000000; ">}<br /> </span><span style="color: #008080; "> 51</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 52</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> virfunc_call(Base </span><span style="color: #000000; ">*</span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">)<br /> </span><span style="color: #008080; "> 53</span> <span style="color: #000000; ">{<br /> </span><span style="color: #008080; "> 54</span> <span style="color: #000000; ">    typedef </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> (</span><span style="color: #000000; ">*</span><span style="color: #000000; ">FUNC)();<br /> </span><span style="color: #008080; "> 55</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 56</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">pAddrBase </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">)</span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; "> 57</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> addr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">)</span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; "> 58</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">pVirtualFuncBase </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">)(</span><span style="color: #000000; ">*</span><span style="color: #000000; ">pAddrBase);<br /> </span><span style="color: #008080; "> 59</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 60</span> <span style="color: #000000; ">#ifdef WIN32<br /> </span><span style="color: #008080; "> 61</span> <span style="color: #000000; ">    printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\nvirfunc=0x%P\npAddrBase=0x%P\npVirtualFuncBase=0x%P\n\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, virfunc_call, pAddrBase, pVirtualFuncBase);<br /> </span><span style="color: #008080; "> 62</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#else</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 63</span> <span style="color: #000000; ">    printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\nvirfunc=0x%08X\npAddrBase=0x%08X\npVirtualFuncBase=0x%08X\n\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, virfunc_call, pAddrBase, pVirtualFuncBase);<br /> </span><span style="color: #008080; "> 64</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#endif</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 65</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 66</span> <span style="color: #000000; ">    FUNC func </span><span style="color: #000000; ">=</span><span style="color: #000000; "> reinterpret_cast</span><span style="color: #000000; "><</span><span style="color: #000000; ">FUNC</span><span style="color: #000000; ">></span><span style="color: #000000; ">(</span><span style="color: #000000; ">*</span><span style="color: #000000; ">pVirtualFuncBase);<br /> </span><span style="color: #008080; "> 67</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 68</span> <span style="color: #000000; ">#ifdef WIN32<br /> </span><span style="color: #008080; "> 69</span> <span style="color: #000000; ">    __asm {<br /> </span><span style="color: #008080; "> 70</span> <span style="color: #000000; ">        mov ecx, </span><span style="color: #0000FF; ">base</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 71</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; "> 72</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#else</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 73</span> <span style="color: #000000; ">    __asm__ __volatile__(<br /> </span><span style="color: #008080; "> 74</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">movl %0, %%ecx</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 75</span> <span style="color: #000000; ">        :<br /> </span><span style="color: #008080; "> 76</span> <span style="color: #000000; ">        : </span><span style="color: #000000; ">"</span><span style="color: #000000; ">r</span><span style="color: #000000; ">"</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">base</span><span style="color: #000000; ">)<br /> </span><span style="color: #008080; "> 77</span> <span style="color: #000000; ">        :<br /> </span><span style="color: #008080; "> 78</span> <span style="color: #000000; ">    );<br /> </span><span style="color: #008080; "> 79</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">#endif</span><span style="color: #000000; "><br /> </span><span style="color: #008080; "> 80</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 81</span> <span style="color: #000000; ">    func();<br /> </span><span style="color: #008080; "> 82</span> <span style="color: #000000; ">}<br /> </span><span style="color: #008080; "> 83</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 84</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> main(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> argc, </span><span style="color: #0000FF; ">char</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">argv[])<br /> </span><span style="color: #008080; "> 85</span> <span style="color: #000000; ">{<br /> </span><span style="color: #008080; "> 86</span> <span style="color: #000000; ">    Base </span><span style="color: #000000; ">*</span><span style="color: #000000; ">base1 </span><span style="color: #000000; ">=</span><span style="color: #000000; "> nullptr, </span><span style="color: #000000; ">*</span><span style="color: #000000; ">base2 </span><span style="color: #000000; ">=</span><span style="color: #000000; "> nullptr;<br /> </span><span style="color: #008080; "> 87</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 88</span> <span style="color: #000000; ">    base1 </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Base(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; "> 89</span> <span style="color: #000000; ">    </span><span style="color: #008000; ">//</span><span style="color: #008000; "> base1->say();</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 90</span> <span style="color: #008000; "></span><span style="color: #000000; ">    virfunc_call(base1);<br /> </span><span style="color: #008080; "> 91</span> <span style="color: #000000; ">    </span><span style="color: #008000; ">//</span><span style="color: #008000; "> test(base1);</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 92</span> <span style="color: #008000; "></span><span style="color: #000000; ">    delete base1;<br /> </span><span style="color: #008080; "> 93</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 94</span> <span style="color: #000000; ">    base2 </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Child(</span><span style="color: #000000; ">2</span><span style="color: #000000; ">);<br /> </span><span style="color: #008080; "> 95</span> <span style="color: #000000; ">    </span><span style="color: #008000; ">//</span><span style="color: #008000; "> base2->say();</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 96</span> <span style="color: #008000; "></span><span style="color: #000000; ">    virfunc_call(base2);<br /> </span><span style="color: #008080; "> 97</span> <span style="color: #000000; ">    </span><span style="color: #008000; ">//</span><span style="color: #008000; "> test(base2);</span><span style="color: #008000; "><br /> </span><span style="color: #008080; "> 98</span> <span style="color: #008000; "></span><span style="color: #000000; ">    delete base2;<br /> </span><span style="color: #008080; "> 99</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">100</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; ">101</span> <span style="color: #000000; ">}</span></div> </div> <br/><br/> <div>VC++</div> <div>cl /DWIN32 main.cpp</div> <br/><br/> <div>G++</div> <div>g++ -o main main.cpp</div> <img src ="http://www.shnenglu.com/jackyxinli/aggbug/217003.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jackyxinli/" target="_blank">jacky_zz</a> 2019-11-28 11:05 <a href="http://www.shnenglu.com/jackyxinli/archive/2019/11/28/217003.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[ASM] 寮曞紼嬪簭浠庣鐩樹笂鍔犺澆絎簩鎵囧尯鍚庡畨瑁?x80涓柇騫惰皟鐢?/title><link>http://www.shnenglu.com/jackyxinli/archive/2015/01/08/209435.html</link><dc:creator>jacky_zz</dc:creator><author>jacky_zz</author><pubDate>Thu, 08 Jan 2015 06:34:00 GMT</pubDate><guid>http://www.shnenglu.com/jackyxinli/archive/2015/01/08/209435.html</guid><wfw:comment>http://www.shnenglu.com/jackyxinli/comments/209435.html</wfw:comment><comments>http://www.shnenglu.com/jackyxinli/archive/2015/01/08/209435.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jackyxinli/comments/commentRss/209435.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jackyxinli/services/trackbacks/209435.html</trackback:ping><description><![CDATA[<strong>bootloader.asm</strong><br /> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000; ">    org </span><span style="color: #000000; ">0x7c00</span><span style="color: #000000; "><br /> start:<br />     jmp main_entry<br /> <br /> stack:<br />     times </span><span style="color: #000000; ">128</span><span style="color: #000000; "> db </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br /> tos:<br />     db </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br /> <br /> main_entry:<br />     mov ax, cs<br />     mov ds, ax<br /> <br />     mov ax, stack<br />     mov ss, ax<br />     mov sp, start<br /> <br />     ; initialize es:bx, read data to </span><span style="color: #000000; ">0x0000</span><span style="color: #000000; ">:</span><span style="color: #000000; ">0x7e00</span><span style="color: #000000; "><br />     mov ax, </span><span style="color: #000000; ">0x0000</span><span style="color: #000000; "><br />     mov es, ax<br />     mov bx, </span><span style="color: #000000; ">0x7c00</span><span style="color: #000000; ">+</span><span style="color: #000000; ">0x200</span><span style="color: #000000; "><br /> <br />     mov ah, </span><span style="color: #000000; ">0x02</span><span style="color: #000000; ">    ; read function<br />     mov al, </span><span style="color: #000000; ">0x01</span><span style="color: #000000; ">    ; read </span><span style="color: #000000; ">1</span><span style="color: #000000; "> sectors<br />     mov ch, </span><span style="color: #000000; ">0x00</span><span style="color: #000000; ">    ; <br />     mov cl, </span><span style="color: #000000; ">0x02</span><span style="color: #000000; ">    ; read from 2nd section<br />     mov dh, </span><span style="color: #000000; ">0x00</span><span style="color: #000000; ">    ;<br />     mov dl, </span><span style="color: #000000; ">0x80</span><span style="color: #000000; ">    ; read from 1st hard disk<br />     </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">0x13</span><span style="color: #000000; "><br />     jc .die<br /> <br />     ; install interrupt </span><span style="color: #000000; ">0x80</span><span style="color: #000000; "><br />     call </span><span style="color: #000000; ">0x7e00</span><span style="color: #000000; "><br /> <br />     ; call interrupt </span><span style="color: #000000; ">0x80</span><span style="color: #000000; "><br />     mov ax, msg1<br />     </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">0x80</span><span style="color: #000000; "><br /> <br />     ; call interrupt </span><span style="color: #000000; ">0x80</span><span style="color: #000000; "><br />     mov ax, msg2<br />     </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">0x80</span><span style="color: #000000; "><br /> <br /> .die:<br />     jmp $<br /> <br /> print_char:    <br />     mov ah, </span><span style="color: #000000; ">0x0e</span><span style="color: #000000; "><br />     </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">0x10</span><span style="color: #000000; "><br />     ret<br /> <br /> msg1:    db </span><span style="color: #000000; ">"</span><span style="color: #000000; ">Loading system <img src="http://www.shnenglu.com/Images/dot.gif" alt="" /></span><span style="color: #000000; ">"</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0x0d</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0x0a</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br /> msg2:    db </span><span style="color: #000000; ">"</span><span style="color: #000000; ">Hello, World!</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0x0d</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0x0a</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br /> crlf:    db </span><span style="color: #000000; ">0x0d</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0x0a</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br /> <br /> fill_zero:<br />     times </span><span style="color: #000000; ">510</span><span style="color: #000000; ">-</span><span style="color: #000000; ">($</span><span style="color: #000000; ">-</span><span style="color: #000000; ">$$) db </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br /> <br /> magic:<br />     db </span><span style="color: #000000; ">0x55</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0xAA</span></div> <br /> <strong>lib16.asm</strong><br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000; ">    org </span><span style="color: #000000; ">0x7e00</span><span style="color: #000000; "><br /> install_int:<br />     mov ax, </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br />     mov es, ax<br /> <br />         mov ax, int_0x80<br />     mov bx, </span><span style="color: #000000; ">0x80</span><span style="color: #000000; ">*</span><span style="color: #000000; ">4</span><span style="color: #000000; "><br />     mov word [es:bx], ax    ; ip<br />     mov word [es:(bx</span><span style="color: #000000; ">+</span><span style="color: #000000; ">2</span><span style="color: #000000; ">)], </span><span style="color: #000000; ">0</span><span style="color: #000000; ">    ; cs<br /> <br />     ret<br /> <br /> int_0x80:<br />     pusha<br /> <br />     mov si, ax<br />     mov ah, </span><span style="color: #000000; ">0x0e</span><span style="color: #000000; "><br />     mov al, [ds:si]<br /> <br /> .loop:<br />     cmp al, </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br />     je .exit<br />     </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">0x10</span><span style="color: #000000; "><br /> <br />     inc si<br />     mov al, [ds:si]<br /> <br />     jmp .loop<br /> .exit:<br />     popa<br />     iret<br /> <br /> fill_zero:<br />     times </span><span style="color: #000000; ">512</span><span style="color: #000000; ">-</span><span style="color: #000000; ">($</span><span style="color: #000000; ">-</span><span style="color: #000000; ">$$) db </span><span style="color: #000000; ">0</span></div> <br /><strong>緇撴灉鍥撅細</strong><br /><img alt="" src="http://www.shnenglu.com/images/cppblog_com/jackyxinli/result.png" height="563" width="656" /><img src ="http://www.shnenglu.com/jackyxinli/aggbug/209435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jackyxinli/" target="_blank">jacky_zz</a> 2015-01-08 14:34 <a href="http://www.shnenglu.com/jackyxinli/archive/2015/01/08/209435.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[ASM] 閫掑綊璁$畻闃朵箻http://www.shnenglu.com/jackyxinli/archive/2014/12/28/209326.htmljacky_zzjacky_zzSun, 28 Dec 2014 13:08:00 GMThttp://www.shnenglu.com/jackyxinli/archive/2014/12/28/209326.htmlhttp://www.shnenglu.com/jackyxinli/comments/209326.htmlhttp://www.shnenglu.com/jackyxinli/archive/2014/12/28/209326.html#Feedback0http://www.shnenglu.com/jackyxinli/comments/commentRss/209326.htmlhttp://www.shnenglu.com/jackyxinli/services/trackbacks/209326.html 

    org 100h
    jmp start
    
stack:
    db 
256 dup(0)
topofstack:
    db 
0

; add your code here
start:
    mov ax, cs
    mov ds, ax
    
    mov ss, ax
    mov sp, topofstack
    
    mov ax, 
0x0003
    push ax
    call f
    pop ax
    hlt
    
f:
    push bp
    push ax
    
    mov bp, sp
    mov ax, [bp
+6]
    cmp ax, 
0x0001
    je exit
    
    dec ax
    push ax
    call f
    pop ax
    
    mul [bp
+6]
    
exit:
    mov [bp
+6], ax
    pop ax
    pop bp
    ret

 



jacky_zz 2014-12-28 21:08 鍙戣〃璇勮
]]>
[ASM] 鎵撳嵃鎸囧畾鍦板潃鐨勫唴瀛樺唴瀹?/title><link>http://www.shnenglu.com/jackyxinli/archive/2014/12/26/209314.html</link><dc:creator>jacky_zz</dc:creator><author>jacky_zz</author><pubDate>Fri, 26 Dec 2014 08:09:00 GMT</pubDate><guid>http://www.shnenglu.com/jackyxinli/archive/2014/12/26/209314.html</guid><wfw:comment>http://www.shnenglu.com/jackyxinli/comments/209314.html</wfw:comment><comments>http://www.shnenglu.com/jackyxinli/archive/2014/12/26/209314.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jackyxinli/comments/commentRss/209314.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jackyxinli/services/trackbacks/209314.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">main:<br />    org </span><span style="color: #000000; ">0x0100</span><span style="color: #000000; "><br />    jmp start<br /><br />stack:<br />    db </span><span style="color: #000000; ">256</span><span style="color: #000000; "> dup(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />tos:<br />    dw </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br /><br />start:<br />    mov ax, cs<br />    mov ds, ax<br />    mov ss, ax<br />    mov sp, tos<br />    <br />    mov ax, end<br />    mov bx, main<br />    sub ax, bx<br />    <br />    mov bx, </span><span style="color: #000000; ">2</span><span style="color: #000000; "><br />    div bx<br />    cmp dx, </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br />    je next_step<br />    inc ax<br />    <br />next_step:<br />    mov bx, ax<br />    mov si, </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br />    mov di, </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br />    <br />.</span><span style="color: #000000; ">0</span><span style="color: #000000; ">:<br />    cmp di, </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br />    je .</span><span style="color: #000000; ">1</span><span style="color: #000000; "><br />    <br />    mov ax, </span><span style="color: #000000; ">0x0000</span><span style="color: #000000; "><br />    push ax<br />    call print_char<br />    pop ax<br /><br />.</span><span style="color: #000000; ">1</span><span style="color: #000000; ">:    <br />    mov dx, cs:[si]<br />    mov ch, </span><span style="color: #000000; ">0x04</span><span style="color: #000000; "><br />    mov cl, </span><span style="color: #000000; ">0x04</span><span style="color: #000000; "><br />        <br />.</span><span style="color: #000000; ">2</span><span style="color: #000000; ">:<br />    mov ax, </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br />    rol dx, cl<br />    <br />    mov al, dl<br />    and al, </span><span style="color: #000000; ">0x0f</span><span style="color: #000000; "><br />    add al, </span><span style="color: #000000; ">0x30</span><span style="color: #000000; "><br />    cmp al, </span><span style="color: #000000; ">0x3a</span><span style="color: #000000; "><br />    jl .</span><span style="color: #000000; ">3</span><span style="color: #000000; "><br />    add al, </span><span style="color: #000000; ">0x07</span><span style="color: #000000; "><br />.</span><span style="color: #000000; ">3</span><span style="color: #000000; ">:<br />    <br />    push ax<br />    call print_char<br />    pop ax<br />    <br />    dec ch<br />    cmp ch, </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br />    jne .</span><span style="color: #000000; ">2</span><span style="color: #000000; "><br />     <br />    inc di<br />    add si, </span><span style="color: #000000; ">2</span><span style="color: #000000; "><br />    <br />    dec bx<br />    cmp bx, </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br />    jne .</span><span style="color: #000000; ">0</span><span style="color: #000000; "><br />    <br />    hlt<br /><br />print_char:<br />    push bp<br />    push ax<br />    push bx<br />    <br />    mov bp, sp<br />    mov ax, [bp</span><span style="color: #000000; ">+</span><span style="color: #000000; ">8</span><span style="color: #000000; ">]<br />    mov ah, </span><span style="color: #000000; ">0x0e</span><span style="color: #000000; "><br />    mov bx, </span><span style="color: #000000; ">0x0000</span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">0x10</span><span style="color: #000000; "><br /><br />    pop bx<br />    pop ax<br />    pop bp<br />    ret<br /><br />end:<br />    dw </span><span style="color: #000000; ">0</span></div><img src ="http://www.shnenglu.com/jackyxinli/aggbug/209314.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jackyxinli/" target="_blank">jacky_zz</a> 2014-12-26 16:09 <a href="http://www.shnenglu.com/jackyxinli/archive/2014/12/26/209314.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[ASM] 鏄劇ず鍒跺畾孌靛強闀垮害鐨勫唴瀛樺?/title><link>http://www.shnenglu.com/jackyxinli/archive/2014/12/19/209259.html</link><dc:creator>jacky_zz</dc:creator><author>jacky_zz</author><pubDate>Fri, 19 Dec 2014 14:53:00 GMT</pubDate><guid>http://www.shnenglu.com/jackyxinli/archive/2014/12/19/209259.html</guid><wfw:comment>http://www.shnenglu.com/jackyxinli/comments/209259.html</wfw:comment><comments>http://www.shnenglu.com/jackyxinli/archive/2014/12/19/209259.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jackyxinli/comments/commentRss/209259.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jackyxinli/services/trackbacks/209259.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">; You may customize </span><span style="color: #0000FF; ">this</span><span style="color: #000000; "> and other start</span><span style="color: #000000; ">-</span><span style="color: #000000; ">up templates; <br />; The location of </span><span style="color: #0000FF; ">this</span><span style="color: #000000; "> template </span><span style="color: #0000FF; ">is</span><span style="color: #000000; "> c:\emu8086\inc\0_com_template.txt<br /><br />    org 100h<br />start:<br />    jmp main<br /><br />stack:<br />    db </span><span style="color: #000000; ">256</span><span style="color: #000000; "> dup(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />code_len:<br />    dw </span><span style="color: #000000; ">0</span><span style="color: #000000; "> <br />    <br />; add your code here<br />main:<br />    mov ax, cs<br />    mov ds, ax<br />    mov ss, ax<br />    mov sp, stack</span><span style="color: #000000; ">+</span><span style="color: #000000; ">256</span><span style="color: #000000; "><br />    <br />    mov ax, end<br />    mov bx, main<br />    sub ax, bx<br />    mov bx, </span><span style="color: #000000; ">2</span><span style="color: #000000; "><br />    div bx<br />    <br />    cmp dx, </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br />    je next_step<br />    inc ax<br />          <br />next_step:<br />    mov bx, code_len<br />    mov [bx], ax<br />    mov bx, main<br />    <br />    push ax<br />    push bx<br />    push cs<br />    call dump_memory<br />   <br />    pop ax<br />    pop bx<br />    pop ax<br />    hlt         <br />    <br />dump_memory:<br />    push bp<br />    push ax<br />    push bx<br />    push cx<br />    push dx<br />    push ds<br />    <br />    mov bp, sp    <br />    mov ax, [bp</span><span style="color: #000000; ">+</span><span style="color: #000000; ">14</span><span style="color: #000000; ">]<br />    mov bx, [bp</span><span style="color: #000000; ">+</span><span style="color: #000000; ">16</span><span style="color: #000000; ">]<br />    mov cx, [bp</span><span style="color: #000000; ">+</span><span style="color: #000000; ">18</span><span style="color: #000000; ">]<br />    xor dx, dx<br />    mov ds, ax<br />    <br />rotate_memory:<br />    mov ax, ds:[bx]<br />    push ax<br />    call write_hex<br />    pop ax<br />    add bx, </span><span style="color: #000000; ">2</span><span style="color: #000000; "><br />    loop rotate_memory  <br />    <br />    pop ax<br />    mov ds, ax<br />    <br />    pop dx<br />    pop cx<br />    pop bx<br />    pop ax<br />    pop bp<br />    ret<br />    <br />write_hex:<br />    push bp<br />    push ax<br />    push bx<br />    push cx<br />    push dx<br />    <br />    mov bp, sp<br />    mov bx, [bp</span><span style="color: #000000; ">+</span><span style="color: #000000; ">12</span><span style="color: #000000; ">]<br />    <br />    xor ax, ax<br />    xor cx, cx<br />    mov ch, </span><span style="color: #000000; ">4</span><span style="color: #000000; "> <br />    <br />rotate:<br />    mov cl, </span><span style="color: #000000; ">4</span><span style="color: #000000; "><br />    rol bx, cl<br />    mov al, bl<br />    and al, </span><span style="color: #000000; ">0x0f</span><span style="color: #000000; "><br />    add al, </span><span style="color: #000000; ">0x30</span><span style="color: #000000; "><br />    cmp al, </span><span style="color: #000000; ">0x3a</span><span style="color: #000000; "><br />    jl printit<br />    add al, </span><span style="color: #000000; ">0x07</span><span style="color: #000000; "><br />printit:<br />    mov dl, al<br />    push dx<br />    call write_char<br />    pop dx<br />    <br />    dec ch<br />    jnz rotate<br />    <br />    mov dx, </span><span style="color: #000000; ">0x0000</span><span style="color: #000000; "><br />    push dx<br />    call write_char<br />    pop dx<br />    <br />    pop dx<br />    pop cx<br />    pop bx<br />    pop ax<br />    pop bp<br />    ret<br />    <br />write_char:<br />    push bp<br />    push ax<br />    push dx<br />    <br />    mov bp, sp<br />    mov ah, </span><span style="color: #000000; ">0x02</span><span style="color: #000000; "><br />    mov dx, [bp</span><span style="color: #000000; ">+</span><span style="color: #000000; ">8</span><span style="color: #000000; ">]<br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">0x21</span><span style="color: #000000; "> <br />    <br />    pop dx<br />    pop ax<br />    pop bp<br />    ret<br />    <br />end: db </span><span style="color: #000000; ">0x55</span><span style="color: #000000; ">,</span><span style="color: #000000; ">0xaa</span></div><img src ="http://www.shnenglu.com/jackyxinli/aggbug/209259.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jackyxinli/" target="_blank">jacky_zz</a> 2014-12-19 22:53 <a href="http://www.shnenglu.com/jackyxinli/archive/2014/12/19/209259.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[ASM] 鍒╃敤鍫嗘爤浼犻掑弬鏁?/title><link>http://www.shnenglu.com/jackyxinli/archive/2014/12/18/209227.html</link><dc:creator>jacky_zz</dc:creator><author>jacky_zz</author><pubDate>Thu, 18 Dec 2014 09:10:00 GMT</pubDate><guid>http://www.shnenglu.com/jackyxinli/archive/2014/12/18/209227.html</guid><wfw:comment>http://www.shnenglu.com/jackyxinli/comments/209227.html</wfw:comment><comments>http://www.shnenglu.com/jackyxinli/archive/2014/12/18/209227.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jackyxinli/comments/commentRss/209227.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jackyxinli/services/trackbacks/209227.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">; You may customize </span><span style="color: #0000FF; ">this</span><span style="color: #000000; "> and other start</span><span style="color: #000000; ">-</span><span style="color: #000000; ">up templates; <br />; The location of </span><span style="color: #0000FF; ">this</span><span style="color: #000000; "> template </span><span style="color: #0000FF; ">is</span><span style="color: #000000; "> c:\emu8086\inc\0_com_template.txt<br /><br />    org 100h<br />    jmp start<br /><br />data:<br />    dw </span><span style="color: #000000; ">32</span><span style="color: #000000; "> dup(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />        <br />stack:<br />    dw </span><span style="color: #000000; ">256</span><span style="color: #000000; "> dup(0</span><span style="color: #000000; ">)<br /><br />start:<br />; add your code here    <br />    mov ax, cs<br />    mov ds, ax<br />    mov bx, data<br />    <br />    mov ss, ax<br />    mov sp, stack</span><span style="color: #000000; ">+</span><span style="color: #000000; ">31</span><span style="color: #000000; "><br />    <br />    push </span><span style="color: #000000; ">0x0001</span><span style="color: #000000; "><br />    push </span><span style="color: #000000; ">0x0002</span><span style="color: #000000; "><br />    push </span><span style="color: #000000; ">0x0003</span><span style="color: #000000; "><br />    call test_proc<br />    <br />    hlt<br />    <br />test_proc:<br />    push bp<br />    mov bp, sp<br />    <br />    mov ax, [bp</span><span style="color: #000000; ">+</span><span style="color: #000000; ">8</span><span style="color: #000000; ">]<br />    push ax<br />    call write_char<br />    <br />    mov ax, [bp</span><span style="color: #000000; ">+</span><span style="color: #000000; ">6</span><span style="color: #000000; ">]<br />    push ax<br />    call write_char<br />    <br />    mov ax, [bp</span><span style="color: #000000; ">+</span><span style="color: #000000; ">4</span><span style="color: #000000; ">]<br />    push ax<br />    call write_char<br />    <br />    pop bp<br />    ret </span><span style="color: #000000; ">6</span><span style="color: #000000; "><br />    <br />write_char:<br />    push bp<br />    mov bp, sp<br />    <br />    mov ax, [bp</span><span style="color: #000000; ">+</span><span style="color: #000000; ">4</span><span style="color: #000000; ">]<br />    mov dl, al<br />    add dl, </span><span style="color: #000000; ">0x30</span><span style="color: #000000; "><br />    cmp dl, </span><span style="color: #000000; ">0x3a</span><span style="color: #000000; "><br />    jl printit<br />    add dl, </span><span style="color: #000000; ">0x07</span><span style="color: #000000; "><br />    <br />printit:<br />    mov ah, </span><span style="color: #000000; ">0x02</span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">0x21</span><span style="color: #000000; "><br />    pop bp<br />    ret </span><span style="color: #000000; ">2</span></div><img src ="http://www.shnenglu.com/jackyxinli/aggbug/209227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jackyxinli/" target="_blank">jacky_zz</a> 2014-12-18 17:10 <a href="http://www.shnenglu.com/jackyxinli/archive/2014/12/18/209227.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[ASM] 浜岃繘鍒舵暟鐢ㄥ崄鍏繘鍒舵樉紺?/title><link>http://www.shnenglu.com/jackyxinli/archive/2014/12/18/209224.html</link><dc:creator>jacky_zz</dc:creator><author>jacky_zz</author><pubDate>Thu, 18 Dec 2014 08:24:00 GMT</pubDate><guid>http://www.shnenglu.com/jackyxinli/archive/2014/12/18/209224.html</guid><wfw:comment>http://www.shnenglu.com/jackyxinli/comments/209224.html</wfw:comment><comments>http://www.shnenglu.com/jackyxinli/archive/2014/12/18/209224.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jackyxinli/comments/commentRss/209224.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jackyxinli/services/trackbacks/209224.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">org 100h<br /><br />; add your code here<br />    mov ax, cs<br />    mov ds, ax<br />    mov ss, ax<br />    <br />    mov ax, </span><span style="color: #000000; ">0x0000</span><span style="color: #000000; "><br />    mov bx, </span><span style="color: #000000; ">0x106f</span><span style="color: #000000; "><br />    mov ch, </span><span style="color: #000000; ">0x04</span><span style="color: #000000; "><br />    <br />rotate:<br />    mov cl, </span><span style="color: #000000; ">0x04</span><span style="color: #000000; "><br />    rol bx, cl<br />    mov al, bl<br />    and al, </span><span style="color: #000000; ">0x0f</span><span style="color: #000000; "><br />    add al, </span><span style="color: #000000; ">0x30</span><span style="color: #000000; "><br />    cmp al, </span><span style="color: #000000; ">0x3a</span><span style="color: #000000; "><br />    jl printit<br />    add al, </span><span style="color: #000000; ">0x07</span><span style="color: #000000; "><br />    <br />printit:<br />    mov dl, al<br />    mov ah, </span><span style="color: #000000; ">0x02</span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">0x21</span><span style="color: #000000; "><br />    dec ch<br />    jnz rotate    <br /><br />ret</span></div><img src ="http://www.shnenglu.com/jackyxinli/aggbug/209224.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jackyxinli/" target="_blank">jacky_zz</a> 2014-12-18 16:24 <a href="http://www.shnenglu.com/jackyxinli/archive/2014/12/18/209224.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[ASM] 鏄劇ず涓涓暟瀛楃殑浜岃繘鍒躲佸叓榪涘埗銆佸崄榪涘埗銆佸崄鍏繘鍒訛紙甯﹁繃紼嬭皟鐢級http://www.shnenglu.com/jackyxinli/archive/2014/12/17/209208.htmljacky_zzjacky_zzWed, 17 Dec 2014 08:55:00 GMThttp://www.shnenglu.com/jackyxinli/archive/2014/12/17/209208.htmlhttp://www.shnenglu.com/jackyxinli/comments/209208.htmlhttp://www.shnenglu.com/jackyxinli/archive/2014/12/17/209208.html#Feedback0http://www.shnenglu.com/jackyxinli/comments/commentRss/209208.htmlhttp://www.shnenglu.com/jackyxinli/services/trackbacks/209208.html; You may customize this and other start-up templates; 
; The location of 
this template is c:\emu8086\inc\0_com_template.txt

org 100h

; add your code here 
    mov ax, cs
    mov ds, ax 
    mov ss, ax    
    mov sp, stack 
+ 256 - 1    
    mov si, 
0
    
    push 
0x105e
    call write_bin
    pop ax 
    
    call write_space2
    
    push 
0x0002
    push 
0x78fd
    call write_num
    pop ax
    pop ax
    
    call write_space2
    
    push 
0x0008
    push 
0x78fd
    call write_num
    pop ax
    pop ax
    
    call write_space2
    
    push 
0x000A
    push 
0x78fd
    call write_num
    pop ax
    pop ax
    
    call write_space2
    
    push 
0x0010
    push 
0x78fd
    call write_num
    pop ax
    pop ax
    
    ret

write_space2:
    mov cx, 
2
loop_write_char:
    call write_space
    loop loop_write_char
    ret

write_space:
    push 
0x0000
    call write_char
    pop ax
    ret
    
write_char:    
    push ax
    push bx
    push cx
    push dx
    mov bp, sp
    
    mov ah, 
0x0e
    mov bx, ss:[bp
+10] ; parameter 1
    mov al, bl
    mov bx, 
0x000c
    
int 0x10
    
    pop dx
    pop cx
    pop bx
    pop ax
    ret

write_bin:
    mov bp, sp       
    mov ax, ss:[bp
+2] ; parameter 1
    mov cx, 
16
    
s:
    xor dx, dx
    rcl ax, 
1
    adc dl, 
0x30
    
    push dx
    call write_char
    pop dx 
    loop s
    ret
    
write_num:
    mov bp, sp
    mov ax, ss:[bp
+2] ; parameter 1
    mov bx, ss:[bp
+4] ; parameter 2
    mov cx, 
0
    
loop_num_div:
    mov dx, 
0
    div bx
    push dx
    inc cx
    cmp ax, 
0
    jne loop_num_div
    
loop_num_disp:
    pop dx
    
    add dl, 
0x30
    cmp dl, 
0x3A
    jl disp_char
    add dl, 
0x07

disp_char:    
    push dx
    call write_char
    pop dx
    
    loop loop_num_disp
    ret 
    
stack:
    dw 
0000000000000000
    dw 
0000000000000000
    dw 
0000000000000000
    dw 
0000000000000000
    dw 
0000000000000000
    dw 
0000000000000000
    dw 
0000000000000000
    dw 
0000000000000000
end_flag: db 
0x11

jacky_zz 2014-12-17 16:55 鍙戣〃璇勮
]]>
[ASM] 鏄劇ず涓涓暟瀛楃殑鍗佽繘鍒?/title><link>http://www.shnenglu.com/jackyxinli/archive/2014/12/17/209201.html</link><dc:creator>jacky_zz</dc:creator><author>jacky_zz</author><pubDate>Wed, 17 Dec 2014 01:40:00 GMT</pubDate><guid>http://www.shnenglu.com/jackyxinli/archive/2014/12/17/209201.html</guid><wfw:comment>http://www.shnenglu.com/jackyxinli/comments/209201.html</wfw:comment><comments>http://www.shnenglu.com/jackyxinli/archive/2014/12/17/209201.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jackyxinli/comments/commentRss/209201.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jackyxinli/services/trackbacks/209201.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">org 100h<br /><br />; add your code here<br /><br />    mov ax, cs<br />    mov ds, ax<br />    <br />    mov ax, </span><span style="color: #000000; ">0xb800</span><span style="color: #000000; "><br />    mov es, ax<br />    <br />    xor ax, ax<br />    xor bx, bx<br />    xor cx, cx<br />    xor dx, dx<br />    <br />    mov ax, </span><span style="color: #000000; ">0x105e</span><span style="color: #000000; "> ;闄ゆ暟<br />    mov bx, </span><span style="color: #000000; ">10</span><span style="color: #000000; "> ;琚櫎鏁?br /><br />s:    <br />    mov dx, </span><span style="color: #000000; ">0</span><span style="color: #000000; "> ;娓呯┖浣欐暟<br />    div bx ;闄や互琚櫎鏁?br />    push dx ;鎶婁綑鏁板帇鏍?br />    inc cx ;寰幆嬈℃暟鍔?<br />    cmp ax, </span><span style="color: #000000; ">0</span><span style="color: #000000; "> ;鍟嗕笉涓?緇х畫闄?br />    jne s<br />    <br />    mov bx, </span><span style="color: #000000; ">0</span><span style="color: #000000; "><br />    <br />p1: <br />    pop dx<br />    add dl, </span><span style="color: #000000; ">0x30</span><span style="color: #000000; "><br />    <br />    mov es:[bx], dl<br />    inc bx<br />    mov es:[bx], </span><span style="color: #000000; ">0x0c</span><span style="color: #000000; "><br />    inc bx<br />    loop p1<br />    <br />ret</span></div><img src ="http://www.shnenglu.com/jackyxinli/aggbug/209201.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jackyxinli/" target="_blank">jacky_zz</a> 2014-12-17 09:40 <a href="http://www.shnenglu.com/jackyxinli/archive/2014/12/17/209201.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[ASM] 鏄劇ず涓涓暟瀛楃殑鍗佸叚榪涘埗http://www.shnenglu.com/jackyxinli/archive/2014/12/17/209200.htmljacky_zzjacky_zzWed, 17 Dec 2014 01:31:00 GMThttp://www.shnenglu.com/jackyxinli/archive/2014/12/17/209200.htmlhttp://www.shnenglu.com/jackyxinli/comments/209200.htmlhttp://www.shnenglu.com/jackyxinli/archive/2014/12/17/209200.html#Feedback0http://www.shnenglu.com/jackyxinli/comments/commentRss/209200.htmlhttp://www.shnenglu.com/jackyxinli/services/trackbacks/209200.htmlorg 100h

; add your code here

    mov ax, cs
    mov ds, ax
    
    mov ax, 
0xb800
    mov es, ax
    
    xor ax, ax
    xor bx, bx
    xor dx, dx
    
    mov dl, 
0x2f
    mov al, dl
    shr al, 
4
    add al, 
0x30
    cmp al, 
0x3a
    jl p1
    add al, 
0x07

p1:
    mov es:[bx], al
    inc bx
    mov es:[bx], 
0x0c
    inc bx
    
    mov al, dl
    and al, 
0x0f
    add al, 
0x30
    cmp al, 
0x3a
    jl p2
    add al, 
0x07
    
p2:
    mov es:[bx], al
    inc bx
    mov es:[bx], 
0x0c
    inc bx
    
ret


jacky_zz 2014-12-17 09:31 鍙戣〃璇勮
]]>
久久久国产精品网站| 无码人妻精品一区二区三区久久久| 伊人久久大香线蕉综合5g| jizzjizz国产精品久久| 麻豆亚洲AV永久无码精品久久| 亚洲精品无码久久一线| 日韩人妻无码一区二区三区久久 | 亚洲欧美日韩久久精品第一区| 久久国产精品国语对白| 久久精品国产亚洲精品| 久久久精品视频免费观看| 久久青青国产| 麻豆国内精品久久久久久| 国产精品成人99久久久久 | 亚洲国产高清精品线久久| 日日狠狠久久偷偷色综合96蜜桃 | 亚洲成av人片不卡无码久久| 一本一道久久a久久精品综合| 久久久久久伊人高潮影院| 久久婷婷五月综合色奶水99啪| 99久久精品国产免看国产一区| 91精品国产综合久久四虎久久无码一级| 国产激情久久久久影院| 亚洲伊人久久综合中文成人网| 亚洲成色WWW久久网站| 久久精品国产一区二区三区日韩| 国内精品久久久久久久涩爱 | 99久久精品国产一区二区蜜芽| 久久99久久无码毛片一区二区| 久久久久久亚洲精品影院| 成人久久久观看免费毛片| 久久强奷乱码老熟女网站| 久久夜色精品国产噜噜麻豆| 日韩精品久久久久久| 国内精品久久久久久久久电影网 | 一级女性全黄久久生活片免费 | 狠狠狠色丁香婷婷综合久久俺| 久久精品国产亚洲AV不卡| 精品乱码久久久久久久| 久久久久无码精品| 国产精品久久永久免费|