??xml version="1.0" encoding="utf-8" standalone="yes"?>久久综合色之久久综合,久久免费精品一区二区,久久久午夜精品http://www.shnenglu.com/luqingfei/category/14185.htmlBe water, my friends!<br/>世界上只有一U失败,那就是半途而废?/description>zh-cnFri, 06 Aug 2010 10:12:07 GMTFri, 06 Aug 2010 10:12:07 GMT60[转]WindowsXP下运行命令中cmd和command的区?/title><link>http://www.shnenglu.com/luqingfei/archive/2010/07/16/120519.html</link><dc:creator>路青?/dc:creator><author>路青?/author><pubDate>Fri, 16 Jul 2010 02:12:00 GMT</pubDate><guid>http://www.shnenglu.com/luqingfei/archive/2010/07/16/120519.html</guid><wfw:comment>http://www.shnenglu.com/luqingfei/comments/120519.html</wfw:comment><comments>http://www.shnenglu.com/luqingfei/archive/2010/07/16/120519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/luqingfei/comments/commentRss/120519.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/luqingfei/services/trackbacks/120519.html</trackback:ping><description><![CDATA[<p>cmd.exe和command.com</p> <p><span style="BACKGROUND-COLOR: yellow">CMD.EXE是windows nt带的一?2位的命o行程?那完全不是DOS. 它是Windows H口命o行接口,因此它可以通过H口右上角的X来关闭,它不是一个dosH口Q如果运行cmd.exe则进E可以看到cmd.exe?/span>cmd是命令提C符Q命令解释器Q,32位支持长文g名,中文 。cmd是进入控制台?/p> <p>?span style="BACKGROUND-COLOR: yellow">COMMAND.COM是用ntvdm虚拟出来的一?6位的dos环境</span>.同样也是Z命o行的. 是一?6位的DOS应用E序Q它用于支持老的 dos应用E序Q它必须通过命o行输入exit才可以退出,它一般运行于NTVDM中。如果用戯?command.comQ用户会在Q务管理器中看C个进Entvdm.exe在运行。而且 command.exeq支持以前的16位的现在已经不用的命令。command是WindowsXP中的16位DOSQ不支持长文件名Q不支持中文。command是纯DOSpȝ,执行它后会徏立一个全新的环境模式,(比如path=的设|就会有改变) 是运行在虚拟8086 模式的程序(可以看到q程中有个NTVDM出来了,q就是NT DOS 虚拟机)Q运?6位dosE序都会使用q个?6位程序都只支?.3文g名(x件名8个字W,扩展?个字W)Q因此文件系l会保留两个文g名,一个长文g名,一个短文g名以?6位程序用Q事实上他们都指向同一个文件。command也不能显C汉字,如果要显C汉字,可以更改代码ؓ936Q简体中文)Q英文是437Q用graftabl命o。用?graftabl xxx 但是只能对应于图形模式下Q在全屏q状态是无效的?/p> <p>但就用户来说Q这两个命o有惊人的怼之处Q他们同样都是运行环?只是CMD更强?虽然只能q行在NT内核的windows?而command只是一个虚拟出来的dosq行环境|了,不过他也能运行很多东?M都有?有所?寸有所ѝ比较旧的系l,如win95那些Q就只有command而不存在cmd了?/p> <p>另:debugE序可以用quitQ或q命o退出?/p> <p><span style="BACKGROUND-COLOR: yellow">另:用cmd和command分别调用debugQ再用r命o查看各寄存器的值时发现D寄存器的初始值是不一LQ比如在cmd下DS,ES,SS,CS?382Q在command下他们的gؓ14B1。而其他寄存器的值是一L。原因待查?/span></p> <p>转自[http://oojakioo.blog.163.com/blog/static/1239368132009725102254654/]<br><br><em style="COLOR: #333399">哈哈Q由我这个小菜来解释一下原因,CPU从何处执行执行指令,׃码段寄存器CS和指令指针寄存器IP里里的内容决定,它俩指向内存单元的物理地址?br>你看C一P正说明了cmd.exe和command.com是两个独立的东东?br>我目前还很菜Q只能粗俗的解释一下。就到这里,我l去看王爽大叔的《汇~语a》。真好看Q?br><br></em></p> <img src ="http://www.shnenglu.com/luqingfei/aggbug/120519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/luqingfei/" target="_blank">路青?/a> 2010-07-16 10:12 <a href="http://www.shnenglu.com/luqingfei/archive/2010/07/16/120519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>手工打造Win32汇编开发环?/title><link>http://www.shnenglu.com/luqingfei/archive/2010/07/11/120080.html</link><dc:creator>路青?/dc:creator><author>路青?/author><pubDate>Sun, 11 Jul 2010 05:01:00 GMT</pubDate><guid>http://www.shnenglu.com/luqingfei/archive/2010/07/11/120080.html</guid><wfw:comment>http://www.shnenglu.com/luqingfei/comments/120080.html</wfw:comment><comments>http://www.shnenglu.com/luqingfei/archive/2010/07/11/120080.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/luqingfei/comments/commentRss/120080.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/luqingfei/services/trackbacks/120080.html</trackback:ping><description><![CDATA[<p>开发工具基于MASM32 V8<br>~辑工具QEditPlus</p> <p>直接解压~到指定目录Q比如D盘根目录Q?br>d:\masm32\<br>d:\editplus\</p> <p>可把批处理文件var.bat攄在masm32目录下?/p> <p>批处理文件Var.bat用于讄临时环境变量Qƈ且调用MakefileQ运行编译后的可执行文g?/p> <p>EditPlus已经配置了ASM代码高亮及模ѝ?/p> <p>在EditPlus的配|用户工具中Q依照如下设|,卛_以在Editplus中编译ASM代码文gQƈq行~译后的可执行文件?br>菜单文本QRun Asm<br>命oQd:\masm32\var.bat<br>参数Q?(FileNameNoExt)<br>初始目录Q?(FileDir)</p> <p><br>开手你的第一个ASMl习:<br>step1: 打开EditPlus<br>step2: 点击菜单[文g]Q[新徏 ASM] Q然后EditPlus会自动加载一个hello world的ASM模板<br>step3:如果不想加点什么,可直接保存该代码文g。比如命名ؓHelloAsm<br>step4Q在HelloAsm文g同目录下Q徏立makefile文gQ内容如下:<br> NAME = HelloAsm<br>OBJS = $(NAME).obj</p> <p>LINK_FLAG = /subsystem:windows<br>ML_FLAG = /c /coff</p> <p>$(NAME).exe: $(OBJS)<br> Link $(LINK_FLAG) $(OBJS)<br>.asm.obj:<br> ml $(ML_FLAG) $<</p> <p>clean:<br> del *.obj<br> <br> <br>step5Q执行EditPlus菜单[工具]下的RunAsm命o?/p> <p>卛_以编译HelloAsm文gQƈ且执行编译后的可执行文g?/p> <p>q只是个单的_糙的ASM IDE开发环境?br>主要用于新手入门?/p> <p>感谢你的使用?br></p> <img src ="http://www.shnenglu.com/luqingfei/aggbug/120080.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/luqingfei/" target="_blank">路青?/a> 2010-07-11 13:01 <a href="http://www.shnenglu.com/luqingfei/archive/2010/07/11/120080.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]各种字符~码方式详解及由?ANSI,GB2312,GBK,UNICODE,UTF-8)http://www.shnenglu.com/luqingfei/archive/2010/07/07/119538.html路青?/dc:creator>路青?/author>Wed, 07 Jul 2010 01:30:00 GMThttp://www.shnenglu.com/luqingfei/archive/2010/07/07/119538.htmlhttp://www.shnenglu.com/luqingfei/comments/119538.htmlhttp://www.shnenglu.com/luqingfei/archive/2010/07/07/119538.html#Feedback0http://www.shnenglu.com/luqingfei/comments/commentRss/119538.htmlhttp://www.shnenglu.com/luqingfei/services/trackbacks/119538.html最q在遇到一“q”问题Q便对字W编码的产生兴趣Q搜索到一好文章Q{q来Q慢慢咀嚹{?br>ZҎ文章中的一些错别字


        一直对字符的各U编码方式懵應|懂,什么ANSI、GB2312、GBK、DBCS、UCSUNICODE、UTF-8……是不是看的很晕,假如您细l的阅读本文你一定可以清晰的理解他们。Let's go! 
          
        很久很久以前Q有一hQ他们决定用8个可以开合的晶体来l合成不同的状态,以表CZ界上的万物。他们看?个开关状态是好的Q于是他们把q称?字节"?nbsp;

        再后来,他们又做了一些可以处理这些字节的机器Q机器开动了Q可以用字节来组合出很多状态,状态开始变来变厅R他们看到这h好的Q于是它们就q机器称?计算??nbsp;

        开始计机只在国用。八位的字节一共可以组合出256(2?ơ方)U不同的状态?nbsp;

        他们把其中的~号从第0至第31开始的32U状态分别规定了Ҏ的用途,一但终端、打印机遇上U定好的q些字节被传q来Ӟp做一些约定的动作。遇?0x10, l端换行,遇上0x07, l端向Z嘟嘟叫,例如遇上0x1b, 打印机就打印反白的字Q或者终端就用彩色显C字母。他们看到这样很好,于是把q些0x20以下的字节状态称?控制??br> 
        他们又把所有的I格、标点符受数字、大写字母分别用连l的字节状态表C,一直编CW?27Pq样计算机就可以用不同字节来存储p的文字了。大家看到这P都感觉很好,于是大家都把q个Ҏ叫做 ANSI ?Ascii"~码Q?strong style="COLOR: #0000ff">American Standard Code for Information InterchangeQ美国信息互换标准代?/strong>Q。当时世界上所有的计算机都用同LASCIIҎ来保存英文文字?nbsp;
          
        后来Q就像徏造巴比u塔一P世界各地的都开始用计机Q但是很多国家用的不是英文,他们的字母里有许多是ASCII里没有的Qؓ了可以在计算Z存他们的文字Q他们决定采?27号之后的IZ来表C些新的字母、符Pq加入了很多画表格时需要用下到的横Uѝ竖Uѝ交叉等形状Q一直把序号~到了最后一个状?55。从128?55q一늚字符集被U?扩展字符?/strong>"。从此之后,贪婪的hcd没有新的状态可以用了,帝国主义可能没有想到还有第三世界国家的Z也希望可以用到计机吧! 

        {中国h们得到计机Ӟ已经没有可以利用的字节状态来表示汉字Q况且有6000多个常用汉字需要保存呢。但是这难不倒智慧的中国人民Q我们不客气地把那些127号之后的奇异W号们直接取消掉, 

        规定Q一个小?27的字W的意义与原来相同,但两个大?27的字节连在一hQ就表示一个汉字,前面的一个字节(他称之ؓ高字?/strong>Q从0xA1用到 0xF7Q后面一个字节(低字?/strong>Q从0xA1?xFEQ这h们就可以l合出大U?000多个体汉字了。在q些~码里,我们q把数学W号、罗马希腊的字母、日文的假名们都~进MQ连?ASCII 里本来就有的数字、标炏V字母都l统重新~了两个字节长的~码Q这是常说?全角"字符Q而原来在127号以下的那些叫"半角"字符了?nbsp;

          中国人民看到q样很不错,于是把q种汉字Ҏ叫做 "GB2312"。GB2312 是对 ASCII 的中文扩展?nbsp;

          但是中国的汉字太多了Q我们很快就发现有许多人的人名没有办法在这里打出来Q特别是某些很会ȝ别h的国安gh。于是我们不得不l箋?GB2312 没有用到的码位找出来老实不客气地用上?nbsp;

          后来q是不够用,于是q脆不再要求低字节一定是127号之后的内码Q只要第一个字节是大于127固定表C是一个汉字的开始,不管后面跟的是不是扩展字W集里的内容。结果扩展之后的~码Ҏ被称?GBK 标准Q?span style="COLOR: #0000ff">GBK 包括?GB2312 的所有内容,同时又增加了q?0000个新的汉字(包括J体字)和符受?/span>
 
          后来数民族也要用电脑了Q于是我们再扩展Q又加了几千个新的少数民族的字,GBK 扩成?strong style="COLOR: #0000ff">GB18030
。从此之后,中华民族的文化就可以在计机时代中传承了?nbsp;

          中国的程序员们看到这一pd汉字~码的标准是好的Q于是通称他们叫做 "DBCS"Q?strong style="COLOR: #0000ff">Double Byte Charecter Set 双字节字W集
Q?u style="COLOR: #333399">在DBCSpd标准里,最大的特点是两字节长的汉字字符和一字节长的英文字符q存于同一套编码方案里Q因此他们写的程序ؓ了支持中文处理,必须要注意字串里的每一个字节的|如果q个值是大于127的,那么pZ个双字节字符集里的字W出C?/u>那时候凡是受q加持(q里不知道原作者是啥意?/span>Q,会编E的计算机僧侣们都要每天念下面这个咒语数NQ?nbsp;

          "一个汉字算两个英文字符Q一个汉字算两个英文字符……" 
          
          因ؓ当时各个国家都像中国q样搞出一套自q~码标准Q结果互怹间谁也不懂谁的编码,谁也不支持别人的~码Q连大陆和台湾这样只盔R?50里Q用着同一U语a的兄弟地区,也分别采用了不同?DBCS ~码Ҏ——当时的中国人想让电脑显C汉字,必装上一?汉字pȝ"Q专门用来处理汉字的昄、输入的问题Q但是那个台湄愚昧徏人士写的命E序必d装另一套支?BIG5  ~码的什?倚天汉字pȝ"才可以用Q装错了字符pȝQ显C就会ؕ了套Q这怎么办?而且世界民族之林中还有那些一时用不上电脑的穷苦h民,他们的文字又怎么办? 

          真是计算机的巴比伦塔命题啊! 
          正在q时Q大天加百列及时出C——一个叫 ISOQ?strong style="COLOR: #0000ff">国际标准化组l?/strong>Q的国际l织军_着手解册个问题。他们采用的Ҏ很简单:废了所有的地区性编码方案,重新搞一个包括了地球上所有文化、所有字母和W号的编码!他们打算叫它"Universal Multiple-Octet Coded Character Set"Q简U?UCS, 俗称 "UNICODE"?nbsp;

         UNICODE 开始制订时Q计机的存储器定w极大地发展了Q空间再也不成ؓ问题了。于?span style="COLOR: #0000ff"> ISO q接规定必ȝ两个字节Q也是16位来l一表示所有的字符Q对于ascii里的那些“半角”字符QUNICODE 包持其原~码不变Q只是将光度由原来?位扩展ؓ16位,而其他文化和语言的字W则全部重新l一~码?/span>׃"半角"英文W号只需要用C8位,所以其?8位永q是0Q?/span>因此q种大气的方案在保存英文文本时会多浪费一倍的I间?nbsp;

         q时候,从旧C会里走q来的程序员开始发C个奇怪的现象Q他们的strlen函数靠不住了Q一个汉字不再是相当于两个字W了Q而是一个!是的Q从 UNICODE 开始,无论是半角的英文字母Q还是全角的汉字Q它们都是统一?一个字W?Q同Ӟ也都是统一?两个字节"Q?/span>h?字符"?字节"两个术语的不同,“字节”是一?位的物理存贮单元Q?#8220;字符”则是一个文化相关的W号?span style="COLOR: #0000ff">在UNICODE 中,一个字W就是两个字节。一个汉字算两个英文字符的时代已l快q去了?/span> 
          
         从前多种字符集存在时Q那些做多语a软g的公叔R上过很大ȝQ他们ؓ了在不同的国安售同一套YӞ׃得不在区域化软g时也加持那个双字节字W集咒语Q不仅要处处心不要搞错Q还要把软g中的文字在不同的字符集中转来转去。UNICODE 对于他们来说是一个很好的一揽子解决ҎQ于是从 Windows NT 开始,MS 机把它们的操作pȝ改了一遍,把所有的核心代码都改成了?UNICODE 方式工作的版本,从这时开始,WINDOWS pȝl于无需要加装各U本土语apȝQ就可以昄全世界上所有文化的字符了?br> 
          但是Q?span style="BACKGROUND-COLOR: yellow">UNICODE 在制订时没有考虑与Q何一U现有的~码Ҏ保持兼容Q?/span>q?GBK 与UNICODE 在汉字的内码~排上完全是不一LQ没有一U简单的术Ҏ可以把文本内容从UNICODE~码和另一U编码进行{换,q种转换必须通过查表来进行?nbsp;

         如前所qͼUNICODE 是用两个字节来表CZؓ一个字W,他d可以l合?5535不同的字W,q大概已l可以覆盖世界上所有文化的W号?/span>如果q不够也没有关系QISO已经准备?span style="COLOR: #0000ff">UCS-4ҎQ说单了是四个字节来表CZ个字W?/span>Q这h们就可以l合?span style="COLOR: #0000ff">21亿个不同的字W?/span>出来Q最高位有其他用途)Q这大概可以用到银河联邦成立那一天吧Q?nbsp;

         UNICODE 来到Ӟ一起到来的q有计算机网l的兴vQUNICODE 如何在网l上传输也是一个必考虑的问?/span>Q于是面向传输的众多 UTFQ?span style="COLOR: #0000ff">UCS Transfer FormatQ标准出CQ顾名思义Q?strong style="COLOR: #0000ff">UTF8
每次8个位传输数据Q?span style="COLOR: #0000ff">UTF16是每次16个位Q?span style="COLOR: #0000ff">只不qؓ了传输时的可靠性,从UNICODE?UTF时ƈ不是直接的对应,而是要过一些算法和规则来{换?nbsp;

         受到q网l编E加持的计算机僧侣们都知道,在网l里传递信息时有一个很重要的问题,是对于数据高低位的解读方式Q一些计机是采用低位先发送的ҎQ例如我们PC机采用的 INTEL 架构Q而另一些是采用高位先发送的方式Q?span style="BACKGROUND-COLOR: yellow">在网l中交换数据ӞZ核对双方对于高低位的认识是否是一致的Q采用了一U很便的ҎQ就是在文本的开始时向对方发送一个标志符—?span style="COLOR: #0000ff">如果之后的文本是高位在位Q那发?FEFF"Q反之,则发?FFFE"?/span>不信你可以用二进制方式打开一个UTF-X格式的文Ӟ看看开头两个字节是不是q两个字节? 
        讲到q里Q我们再Z说说一个很著名的奇怪现象:当你?windows 的记事本里新Z个文Ӟ输入"联?两个字之后,保存Q关闭,然后再次打开Q你会发现这两个字已l消׃Q代之的是几个ؕ码!呵呵Q有q就是联通之所以拼不过Ud的原因?nbsp;

        其实q是因ؓGB2312~码与UTF8~码产生了编码冲撞的原因?nbsp;
        从网上引来一D从UNICODE到UTF8的{换规则: 
Unicode UTF-8
0000 - 007F 0xxxxxxx
0080 - 07FF 110xxxxx 10xxxxxx
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx 

        例如"?字的Unicode~码?C49?C49?800-FFFF之间Q所以要?字节模板Q?110xxxx 10xxxxxx 10xxxxxx。将6C49写成二进制是Q?110 1100 0100 1001Q将q个比特按三字节模板的分段Ҏ分ؓ0110 110001 001001Q依ơ代替模板中的xQ得刎ͼ1110-0110 10-110001 10-001001Q即E6 B1 89Q这是其UTF8的编码?nbsp;
        而当你新Z个文本文件时Q?span style="BACKGROUND-COLOR: yellow">C本的~码默认是ANSI,如果你在ANSI的编码输入汉字,那么他实际就是GBpd的编码方式,在这U编码下Q?联?的内码是Q?
            c1 1100 0001
            aa 1010 1010
            cd 1100 1101
            a8 1010 1000 
          
        注意C吗?W一二个字节、第三四个字节的起始部分的都?110"?10"Q正好与UTF8规则里的两字节模板是一致的Q于是再ơ打开C本时Q记事本p认ؓq是一个UTF8~码的文Ӟ让我们把W一个字节的110和第二个字节?0LQ我们就得到?00001 101010"Q再把各位对齐,补上前导?Q就得到?0000 0000 0110 1010"Q不好意思,q是UNICODE?06AQ也是写的字?j"Q而之后的两字节用UTF8解码之后?368Q这个字W什么也不是。这是只有"联?两个字的文g没有办法在记事本里正常显C的原因?nbsp;

        而如果你?联?之后多输入几个字Q其他的字的~码不见得又恰好?10?0开始的字节Q这样再ơ打开ӞC本就不会坚持q是一个utf8~码的文Ӟ而会用ANSI的方式解MQ这时ؕ码又不出C?nbsp;
          
        好了Q终于可以回{NICO的问题了Q?span style="BACKGROUND-COLOR: yellow">在数据库里,有n前缀的字串类型就是UNICODEcdQ这U类型中Q固定用两个字节来表CZ个字W,无论q个字符是汉字还是英文字母,或是别的什么?nbsp;

        如果你要试"abc汉字"q个串的长度Q在没有n前缀的数据类型里Q这个字串是7个字W的长度Q因Z个汉字相当于两个字符。而在有n前缀的数据类型里Q同L试串长度的函数会告诉你是5个字W,因ؓ一个汉字就是一个字W?/span>



]]>
þۺ97ɫֱ| ޹˾þһþ| þùӰԺ| ݺɫþþۺϲ| ĻȾþþþþþ| ޾ƷþëƬ| պľþ| þþþ99оƷ10| þþþ޾Ʒһ| Ʒ۲ӰԺþ| þþþþþþþѾƷ | Vþþ| ɫվwwwþþ| ˳˳ۺþþ| ɫۺϾþþþ| 99þù¶Ʒ| 91Ʒɫ۾þ| þˬ˾ƷƵ| ŷպƷþ| þþþAVƬ| þþƷҹҹҹҹҹþ| ˬˬƬaþ| þþƷһպ| þþƷƷʢۿ| þþƷձҰ | žžþȻ㽶ͼƬ| þùһ| һɫۺϾþ| þùѹۿƷ| ഺþ| þۺĻ| þþƷۺ| ޹˾þۺ3d | ݾþþù| þþƷĻ | þþƷ99þ˿| պƷþþվ| һƷþ| 鶹һ99þþþ| þӰԺþ㽶߿ۿ| þۺϹ׾Ʒ|