锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产小视频精品久久久三级,品成人欧美大片久久国产欧美...,精品无码久久久久久久久久http://www.shnenglu.com/jackyxinli/鏄ラ鎷傞潰涓ら綰紝縐嬪彾媧掑湴涓鐗囬噾銆? 澶忚嵎鎽囨洺涓韜交錛屽啲闆鐩栧ぇ鍦伴摱銆?/description>zh-cnSat, 28 Jun 2025 16:56:01 GMTSat, 28 Jun 2025 16:56:01 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 鍙戣〃璇勮
]]>
色偷偷91久久综合噜噜噜噜| 性高朝久久久久久久久久| 国产成人无码精品久久久性色| 欧美大战日韩91综合一区婷婷久久青草| 久久久久国产精品嫩草影院| 久久婷婷五月综合97色直播| 伊人久久大香线蕉综合Av| 国产精品对白刺激久久久| 久久伊人中文无码| 亚洲人成精品久久久久| 中文字幕久久欲求不满| 欧美与黑人午夜性猛交久久久| 久久久久久九九99精品| 久久精品国产影库免费看| 国产69精品久久久久观看软件| 欧美牲交A欧牲交aⅴ久久 | 久久久久青草线蕉综合超碰 | 久久亚洲精品国产精品婷婷 | 久久亚洲国产精品一区二区| 无码任你躁久久久久久老妇| 久久综合综合久久狠狠狠97色88| 久久99精品九九九久久婷婷 | 精品久久久久久久久久久久久久久| 精品综合久久久久久97| 伊人久久综在合线亚洲2019| 亚洲精品无码成人片久久| 激情久久久久久久久久| 久久综合狠狠色综合伊人| 无码人妻精品一区二区三区久久久| 亚洲国产一成久久精品国产成人综合 | 久久久久亚洲av无码专区喷水| 久久久WWW成人免费毛片| 亚洲国产精品一区二区久久| 国产A三级久久精品| 中文成人无码精品久久久不卡| 国产精品99久久久久久猫咪| 久久99国产亚洲高清观看首页| 亚洲精品tv久久久久久久久| 亚洲狠狠婷婷综合久久蜜芽| 美女久久久久久| 99久久做夜夜爱天天做精品|