锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久国产精品久久,欧美日韩精品久久久免费观看,国产美女亚洲精品久久久综合http://www.shnenglu.com/jackyxinli/鏄ラ鎷傞潰涓ら綰紝縐嬪彾媧掑湴涓鐗囬噾銆? 澶忚嵎鎽囨洺涓韜交錛屽啲闆鐩栧ぇ鍦伴摱銆?/description>zh-cnWed, 07 May 2025 21:00:34 GMTWed, 07 May 2025 21:00:34 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 鍙戣〃璇勮
]]>
精品国产乱码久久久久软件| 国产精品久久久久久久午夜片| 一本久道久久综合狠狠躁AV| 无码国内精品久久综合88 | 亚洲精品无码久久久久去q| 亚洲精品乱码久久久久66| 久久福利青草精品资源站免费| 99久久精品免费观看国产| 伊人色综合久久天天人守人婷| 九九久久自然熟的香蕉图片| 久久国产香蕉一区精品| 人妻无码αv中文字幕久久琪琪布| 99久久99久久精品国产片| 久久无码专区国产精品发布 | 精品久久无码中文字幕| 久久精品这里只有精99品| 无码国内精品久久人妻蜜桃 | 久久久久久免费一区二区三区| 久久久久亚洲av毛片大| 精品久久无码中文字幕| 久久久久亚洲AV成人网人人网站 | 久久国产色AV免费观看| 中文成人无码精品久久久不卡| 97久久精品午夜一区二区| 亚洲中文字幕久久精品无码喷水 | 2020最新久久久视精品爱| 无码AV波多野结衣久久| 久久噜噜久久久精品66| 久久―日本道色综合久久| 久久天天躁狠狠躁夜夜96流白浆| 免费精品久久久久久中文字幕| 国产福利电影一区二区三区久久久久成人精品综合 | 久久精品国产免费一区| 国内精品久久久久影院一蜜桃| 伊人久久大香线蕉亚洲五月天| 久久亚洲精品国产精品婷婷 | 国产精品无码久久四虎| 欧美综合天天夜夜久久| 亚洲狠狠久久综合一区77777| 国产精品一久久香蕉国产线看| 久久精品国产亚洲av日韩|