﻿<?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++博客-小吴的技术思考-随笔分类-汇编语言</title><link>http://www.cppblog.com/Tim/category/16367.html</link><description>灵活的思考，严谨的实现&lt;br&gt;
什么是未定义的行为：你的计算机可能崩溃、地球可以停止自转、你可能飞到云上，也可能掉到了地狱里...</description><language>zh-cn</language><lastBuildDate>Thu, 14 Jun 2012 00:47:56 GMT</lastBuildDate><pubDate>Thu, 14 Jun 2012 00:47:56 GMT</pubDate><ttl>60</ttl><item><title>汇编语言学习笔记</title><link>http://www.cppblog.com/Tim/archive/2012/06/13/178666.html</link><dc:creator>Tim</dc:creator><author>Tim</author><pubDate>Wed, 13 Jun 2012 08:51:00 GMT</pubDate><guid>http://www.cppblog.com/Tim/archive/2012/06/13/178666.html</guid><wfw:comment>http://www.cppblog.com/Tim/comments/178666.html</wfw:comment><comments>http://www.cppblog.com/Tim/archive/2012/06/13/178666.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Tim/comments/commentRss/178666.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Tim/services/trackbacks/178666.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 汇编语言学习笔记&nbsp;&nbsp;<a href='http://www.cppblog.com/Tim/archive/2012/06/13/178666.html'>阅读全文</a><img src ="http://www.cppblog.com/Tim/aggbug/178666.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Tim/" target="_blank">Tim</a> 2012-06-13 16:51 <a href="http://www.cppblog.com/Tim/archive/2012/06/13/178666.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>王爽《汇编语言第二版》第11章 实验11</title><link>http://www.cppblog.com/Tim/archive/2012/06/04/177468.html</link><dc:creator>Tim</dc:creator><author>Tim</author><pubDate>Mon, 04 Jun 2012 06:55:00 GMT</pubDate><guid>http://www.cppblog.com/Tim/archive/2012/06/04/177468.html</guid><wfw:comment>http://www.cppblog.com/Tim/comments/177468.html</wfw:comment><comments>http://www.cppblog.com/Tim/archive/2012/06/04/177468.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Tim/comments/commentRss/177468.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Tim/services/trackbacks/177468.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 编写一个子程序，将包含任意字符，以0结尾的字符串中的小写字母转变成大写字母，描述如下。<br>名称：letterc<br>功能：将以0结尾的字符串中的小写字母转变成大写字母<br>参数：ds:si指向字符串首地址<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/Tim/archive/2012/06/04/177468.html'>阅读全文</a><img src ="http://www.cppblog.com/Tim/aggbug/177468.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Tim/" target="_blank">Tim</a> 2012-06-04 14:55 <a href="http://www.cppblog.com/Tim/archive/2012/06/04/177468.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>王爽《汇编语言第二版》第10章 课程设计1 </title><link>http://www.cppblog.com/Tim/archive/2012/06/04/177429.html</link><dc:creator>Tim</dc:creator><author>Tim</author><pubDate>Mon, 04 Jun 2012 02:20:00 GMT</pubDate><guid>http://www.cppblog.com/Tim/archive/2012/06/04/177429.html</guid><wfw:comment>http://www.cppblog.com/Tim/comments/177429.html</wfw:comment><comments>http://www.cppblog.com/Tim/archive/2012/06/04/177429.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Tim/comments/commentRss/177429.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Tim/services/trackbacks/177429.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 总结：<br><br>1、程序实现中基本都用到了栈，主要用于暂存寄存器数据。不过在子程序dtoc和ddtoc中，我还用栈存放参数%10的值，因为形成字符串时需要逆序写到内存。<br><br>2、在dtoc和ddtoc中，为了区分保存的寄存器数据和十进制数的ascii值，特意往栈中压入一个0，作为“桩”。<br><br>3、主程序中在循环跳转的loop语句被注释掉：“;loop show ;报错：jump destination too far ，所以自己手动判断cx来跳转。”，原因正如说明，偏移超过了一个字节，所以我自己修改判断cx而利用jmp(jmp near)来实现跳转。因为所有有条件跳转都是短转移，是不是把循环中间的一些内容也写到子程序来减少偏移更好？<br><br>4、对显示时的起始行和列偏移的数据，我都统一放在数据段中，可以很方便的修改来查看效果。&nbsp;&nbsp;<a href='http://www.cppblog.com/Tim/archive/2012/06/04/177429.html'>阅读全文</a><img src ="http://www.cppblog.com/Tim/aggbug/177429.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Tim/" target="_blank">Tim</a> 2012-06-04 10:20 <a href="http://www.cppblog.com/Tim/archive/2012/06/04/177429.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>王爽《汇编语言第二版》第9章实验9 解答</title><link>http://www.cppblog.com/Tim/archive/2012/06/04/177420.html</link><dc:creator>Tim</dc:creator><author>Tim</author><pubDate>Mon, 04 Jun 2012 01:30:00 GMT</pubDate><guid>http://www.cppblog.com/Tim/archive/2012/06/04/177420.html</guid><wfw:comment>http://www.cppblog.com/Tim/comments/177420.html</wfw:comment><comments>http://www.cppblog.com/Tim/archive/2012/06/04/177420.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Tim/comments/commentRss/177420.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Tim/services/trackbacks/177420.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串"welcome to masm!"。<br><br>1、这种实现是我的第二个版本，第一个版本是将要显示的字符和字符的颜色属性都一起定义，然后就是从偏移地址读取写到显存，比如，绿色显示的定义如下：<br>db 'w',82h,'e',82h,'l',82h,'c',82h,'o',82h,'m',82h,'e'...<br>但是这样的话，首先'welcome to masm!'要重复3次，然后颜色属性就要重复更多了。既占用内存，修改也很麻烦。所以就将字符串和颜色属性分开定义，在逻辑处理时来写内存。<br>2、对字符颜色属性，可以很方便的通过修改“db 82h,0ach,0f9h”一句来查看不同的效果。<br>3、关于行偏移和列偏移的计算，我在代码中已经给出了详细的说明，应该很清楚了。同样的，我也将这些数据单独定义在数据段，可以很方便的修改以查看效果。&nbsp;&nbsp;<a href='http://www.cppblog.com/Tim/archive/2012/06/04/177420.html'>阅读全文</a><img src ="http://www.cppblog.com/Tim/aggbug/177420.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Tim/" target="_blank">Tim</a> 2012-06-04 09:30 <a href="http://www.cppblog.com/Tim/archive/2012/06/04/177420.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>王爽《汇编语言第二版》第8章实验7 解答</title><link>http://www.cppblog.com/Tim/archive/2012/06/01/177066.html</link><dc:creator>Tim</dc:creator><author>Tim</author><pubDate>Fri, 01 Jun 2012 06:41:00 GMT</pubDate><guid>http://www.cppblog.com/Tim/archive/2012/06/01/177066.html</guid><wfw:comment>http://www.cppblog.com/Tim/comments/177066.html</wfw:comment><comments>http://www.cppblog.com/Tim/archive/2012/06/01/177066.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Tim/comments/commentRss/177066.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Tim/services/trackbacks/177066.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 实验7 寻址方式在结构化数据访问中的应用<br><br>本题设计的好处就在于：<br>1、年份year是用ascii表示，所以要4个字节。而公司收入又是一个dd类型，也是4个字节。所以这两个数据可以共用一个寄存器表偏移，我的程序用的是si。<br>2、读入收入时，就有意用dx存高位，用ax存低位；读入雇员数时，用bx来存储，这样就能直接用div求人均收入，也就不需要额外的寄存器转存的过程。<br>3、故意将table段地址用ss存，这样就顺理成章的用bp作为table段的偏移。就不需要显式标出段寄存器了。<br>基于以上设计，也就不需要额外弄堆栈，寄存器等，而且一个循环就能实现了。&nbsp;&nbsp;<a href='http://www.cppblog.com/Tim/archive/2012/06/01/177066.html'>阅读全文</a><img src ="http://www.cppblog.com/Tim/aggbug/177066.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Tim/" target="_blank">Tim</a> 2012-06-01 14:41 <a href="http://www.cppblog.com/Tim/archive/2012/06/01/177066.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>王爽汇编语言（第2版）实验2 学习</title><link>http://www.cppblog.com/Tim/archive/2012/05/31/176883.html</link><dc:creator>Tim</dc:creator><author>Tim</author><pubDate>Thu, 31 May 2012 02:13:00 GMT</pubDate><guid>http://www.cppblog.com/Tim/archive/2012/05/31/176883.html</guid><wfw:comment>http://www.cppblog.com/Tim/comments/176883.html</wfw:comment><comments>http://www.cppblog.com/Tim/archive/2012/05/31/176883.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Tim/comments/commentRss/176883.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Tim/services/trackbacks/176883.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 仔细观察图3.19中的实验过程，然后分析：为什么2000:0~2000:f中的内容会发生改变？<br><br>可能要再做些实验才能发现其中的规律。如果你在这里就正确回答了这个问题，那么要恭喜你，因为你有很好的悟性。大多数的学习者对这个问题还是比较迷惑的，不过不要紧，因为随着课程的进行，这个问题的答案将逐渐变得显而易见。&nbsp;&nbsp;<a href='http://www.cppblog.com/Tim/archive/2012/05/31/176883.html'>阅读全文</a><img src ="http://www.cppblog.com/Tim/aggbug/176883.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Tim/" target="_blank">Tim</a> 2012-05-31 10:13 <a href="http://www.cppblog.com/Tim/archive/2012/05/31/176883.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]汇编语言课程设计——调试并修改一个小的内存驻留程序（http://www.4ngel.net/article/31.htm）</title><link>http://www.cppblog.com/Tim/archive/2009/09/25/97241.html</link><dc:creator>Tim</dc:creator><author>Tim</author><pubDate>Fri, 25 Sep 2009 10:03:00 GMT</pubDate><guid>http://www.cppblog.com/Tim/archive/2009/09/25/97241.html</guid><wfw:comment>http://www.cppblog.com/Tim/comments/97241.html</wfw:comment><comments>http://www.cppblog.com/Tim/archive/2009/09/25/97241.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Tim/comments/commentRss/97241.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Tim/services/trackbacks/97241.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 学习DOS下内存驻留程序的基本思想，了解与熟悉用汇编语言编写程序。本课程设计将完成一个小的.com程序，运行程序后，你的所有按键输入（指在DOS或Windows的DOS模式下）将不被接受，所有输入将被替换成特定的字符串（回车键除外）。&nbsp;&nbsp;<a href='http://www.cppblog.com/Tim/archive/2009/09/25/97241.html'>阅读全文</a><img src ="http://www.cppblog.com/Tim/aggbug/97241.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Tim/" target="_blank">Tim</a> 2009-09-25 18:03 <a href="http://www.cppblog.com/Tim/archive/2009/09/25/97241.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】MASM32开发环境和MASM汇编器版本</title><link>http://www.cppblog.com/Tim/archive/2008/06/09/52679.html</link><dc:creator>Tim</dc:creator><author>Tim</author><pubDate>Mon, 09 Jun 2008 10:49:00 GMT</pubDate><guid>http://www.cppblog.com/Tim/archive/2008/06/09/52679.html</guid><wfw:comment>http://www.cppblog.com/Tim/comments/52679.html</wfw:comment><comments>http://www.cppblog.com/Tim/archive/2008/06/09/52679.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Tim/comments/commentRss/52679.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Tim/services/trackbacks/52679.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: MASM32开发环境和MASM汇编器版本&nbsp;&nbsp;<a href='http://www.cppblog.com/Tim/archive/2008/06/09/52679.html'>阅读全文</a><img src ="http://www.cppblog.com/Tim/aggbug/52679.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Tim/" target="_blank">Tim</a> 2008-06-09 18:49 <a href="http://www.cppblog.com/Tim/archive/2008/06/09/52679.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>