﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-c++学习心得-文章分类-汇编</title><link>http://www.cppblog.com/zhangzheyuk/category/12663.html</link><description>i love c++!</description><language>zh-cn</language><lastBuildDate>Tue, 03 Apr 2012 02:57:02 GMT</lastBuildDate><pubDate>Tue, 03 Apr 2012 02:57:02 GMT</pubDate><ttl>60</ttl><item><title>配置汇编环境</title><link>http://www.cppblog.com/zhangzheyuk/articles/127264.html</link><dc:creator>zzy</dc:creator><author>zzy</author><pubDate>Tue, 21 Sep 2010 09:29:00 GMT</pubDate><guid>http://www.cppblog.com/zhangzheyuk/articles/127264.html</guid><wfw:comment>http://www.cppblog.com/zhangzheyuk/comments/127264.html</wfw:comment><comments>http://www.cppblog.com/zhangzheyuk/articles/127264.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhangzheyuk/comments/commentRss/127264.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhangzheyuk/services/trackbacks/127264.html</trackback:ping><description><![CDATA[首先你机器上必须装有MASM的汇编器,假设安装路径为<img border="0" alt="" src="http://devbbs.doit.com.cn/images/smilies/default/biggrin.gif" smilieid="3" />:\MASM32,选择"<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%B9%A4%BE%DF">工具</span>"-&gt;"配置<span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%D3%C3%BB%A7">用户</span>工具".<br /><br />1.配置编绎器<br />命令<img border="0" alt="" src="http://devbbs.doit.com.cn/images/smilies/default/biggrin.gif" smilieid="3" />:\MASM32\BIN\ML.EXE<br /><span class="t_tag" onclick="tagshow(event)" href="tag.php?name=%B2%CE%CA%FD">参数</span>:/ID:\MASM32\INCLUDE /c /coff $(FilePath)<br /><br /><br />2.配置链接器(link.jpg in picture.rar)<br />命令<img border="0" alt="" src="http://devbbs.doit.com.cn/images/smilies/default/biggrin.gif" smilieid="3" />:\MASM32\BIN\Link.EXE<br />参数:/LIBPATH<img border="0" alt="" src="http://devbbs.doit.com.cn/images/smilies/default/biggrin.gif" smilieid="3" />:\MASM32\LIB /subsystem:windows $(FileDir)\$(FileNameNoExt).obj<br /><br /><br />3.配置执行器(execute.jpg in picture.rar)<br /><br />命令:call<br />参数<img border="0" alt="" src="http://devbbs.doit.com.cn/images/smilies/default/shy.gif" smilieid="8" />(FileNameNoExt).exe<br /><img src ="http://www.cppblog.com/zhangzheyuk/aggbug/127264.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhangzheyuk/" target="_blank">zzy</a> 2010-09-21 17:29 <a href="http://www.cppblog.com/zhangzheyuk/articles/127264.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MASM32 与masm 的区别。（转）</title><link>http://www.cppblog.com/zhangzheyuk/articles/127263.html</link><dc:creator>zzy</dc:creator><author>zzy</author><pubDate>Tue, 21 Sep 2010 09:27:00 GMT</pubDate><guid>http://www.cppblog.com/zhangzheyuk/articles/127263.html</guid><wfw:comment>http://www.cppblog.com/zhangzheyuk/comments/127263.html</wfw:comment><comments>http://www.cppblog.com/zhangzheyuk/articles/127263.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhangzheyuk/comments/commentRss/127263.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhangzheyuk/services/trackbacks/127263.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">MASM32 是一个为那些对学习或者编写 32 位微软汇编（ MASM ）感兴趣 的程序员提供的工作环境，它最流行的版本是 8.0 版，而我所知道最新版本是 9.0 版。但是请大家一定要注意，这里的 8.0 版和 9.0 版不是指 MASM 编译器 ( 即 ML) 的版本，而是 MASM32 开发环境的版本。 经常看到网上有网友发的贴把这两个概念都搞混了。 </p>
<p style="text-indent: 2em">那么 MASM(ML) 编译器的版本到底有哪些呢？教学上常用的版本是 5.0 版的，之前还有个 4.0 版的记得&#8220;全国计算机等级三级考试&#8221;就是用的 4.0 版。 5.0 版之后有个 5.1 版本，在这之后，从 6.0 版开始 MASM 就改名 ML 了，因为它把编译和连接组合在一起了。而且 6.0 版还对汇编语言进行了大幅改造，使之支持高级语言的很多特性。 6.0 版之后常看到的就是 6.11 、 6.13 、 6.14 MASM32(V8.0 和 V9.0) 就是包含有 ML6.14 版 , 而不是 ML8.0 版。 6.14 之后就是 6.15 但不常见 ,但 Microsoft 从 6.15 版开始好象就不再单独发布 MASM 的开发工具包了。&nbsp;</p>
<p style="text-indent: 2em">&nbsp;以后的 ML 还有 7.0 、 7.1 版，最新的是 ML8.0 版。但它们都只包含在 Visual Studio.Net 和 Visual Studio 2005 里面。而且如果你 安装了 Visual Studio 2005 的 64 位开发环境，你将得到一个<strong><u><font color="#ff0000"> </font></u></strong><a href="http://msdn2.microsoft.com/en-us/library/hb5z4sxd.aspx"><strong><font color="#ff0000">MASM for x64 ( ml64 .exe</font></strong><font color="#336d89"> </font></a>) 哈哈，各位这可是支持 Intel 和 AMD 的 64 位 CPU 的汇编语言编译器！有志于 64 位底层开发的赶快去试用看看吧。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><img src ="http://www.cppblog.com/zhangzheyuk/aggbug/127263.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhangzheyuk/" target="_blank">zzy</a> 2010-09-21 17:27 <a href="http://www.cppblog.com/zhangzheyuk/articles/127263.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>char int </title><link>http://www.cppblog.com/zhangzheyuk/articles/104527.html</link><dc:creator>zzy</dc:creator><author>zzy</author><pubDate>Thu, 31 Dec 2009 01:30:00 GMT</pubDate><guid>http://www.cppblog.com/zhangzheyuk/articles/104527.html</guid><wfw:comment>http://www.cppblog.com/zhangzheyuk/comments/104527.html</wfw:comment><comments>http://www.cppblog.com/zhangzheyuk/articles/104527.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhangzheyuk/comments/commentRss/104527.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhangzheyuk/services/trackbacks/104527.html</trackback:ping><description><![CDATA[<p>只有有符号的整数才有原码、反码和补码的！其他的类型一概没有。虽然我们也可以用二进制中最小的数去对应最小的负数，最大的也相对应，但是那样不科学，下面来说说科学的方法。还是说一个字节的整数，不过这次是有符号的啦，1个字节它不管怎么样还是只能表示256个数，因为有符号所以我们就把它表示成范围：-128-127。它在计算机中是怎么储存的呢？可以这样理解，用最高位表示符号位，如果是0表示正数，如果是1表示负数，剩下的7位用来储存数的绝对值的话，能表示27个数的绝对值，再考虑正负两种情况，27*2还是256个数。首先定义0在计算机中储存为00000000，对于正数我们依然可以像无符号数那样换算，从00000001到01111111依次表示1到127。那么这些数对应的二进制码就是这些数的原码。到这里很多人就会想，那负数是不是从10000001到11111111依次表示-1到-127，那你发现没有，如果这样的话那么一共就只有255个数了，因为10000000的情况没有考虑在内。实际上，10000000在计算机中表示最小的负整数，就是这里的-128，而且实际上并不是从10000001到11111111依次表示-1到-127，而是刚好相反的，从10000001到11111111依次表示-127到-1。负整数在计算机中是以补码形式储存的，补码是怎么样表示的呢，这里还要引入另一个概念——反码，所谓反码就是把负数的原码<span style="COLOR: red">除符号位</span>（负数的原码<span style="COLOR: red">除符号位</span>和它的绝对值所对应的原码相同，简单的说就是绝对值相同的数原码相同）各个位按位取反，是1就换成0，是0就换成1，如-1的原码是0000001（注意这里只有7位，不看符号位，我这里所说的负数符号位都是1），和1的原码相同，那么-1的反码就是1111110（这也是7位，后面加上了符号位都是8位了），而补码就是在反码的基础上加1，即-1的补码是11111110+1=11111111，因此我们可以算出-1在计算机中是按11111111储存的。<font color=#0000ff>总结一下，计算机储存有符号的整数时，是用该整数的补码进行储存的，0的原码、补码都是0，正数的原码、补码可以特殊理解为相同，负数的补码是它的反码加1。</font></p>
<img src ="http://www.cppblog.com/zhangzheyuk/aggbug/104527.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhangzheyuk/" target="_blank">zzy</a> 2009-12-31 09:30 <a href="http://www.cppblog.com/zhangzheyuk/articles/104527.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>