无我

让内心永远燃烧着伟大的光明的精神之火!
灵活的思考,严谨的实现
豪迈的气魄、顽强的意志和周全的思考

2012年6月4日

王爽《汇编语言第二版》第11章 实验11

     摘要: 编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母,描述如下。
名称:letterc
功能:将以0结尾的字符串中的小写字母转变成大写字母
参数:ds:si指向字符串首地址
  阅读全文

posted @ 2012-06-04 14:55 Tim 阅读(744) | 评论 (0)编辑 收藏

王爽《汇编语言第二版》第10章 课程设计1

     摘要: 总结:

1、程序实现中基本都用到了栈,主要用于暂存寄存器数据。不过在子程序dtoc和ddtoc中,我还用栈存放参数%10的值,因为形成字符串时需要逆序写到内存。

2、在dtoc和ddtoc中,为了区分保存的寄存器数据和十进制数的ascii值,特意往栈中压入一个0,作为“桩”。

3、主程序中在循环跳转的loop语句被注释掉:“;loop show ;报错:jump destination too far ,所以自己手动判断cx来跳转。”,原因正如说明,偏移超过了一个字节,所以我自己修改判断cx而利用jmp(jmp near)来实现跳转。因为所有有条件跳转都是短转移,是不是把循环中间的一些内容也写到子程序来减少偏移更好?

4、对显示时的起始行和列偏移的数据,我都统一放在数据段中,可以很方便的修改来查看效果。  阅读全文

posted @ 2012-06-04 10:20 Tim 阅读(964) | 评论 (0)编辑 收藏

王爽《汇编语言第二版》第9章实验9 解答

     摘要: 编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串"welcome to masm!"。

1、这种实现是我的第二个版本,第一个版本是将要显示的字符和字符的颜色属性都一起定义,然后就是从偏移地址读取写到显存,比如,绿色显示的定义如下:
db 'w',82h,'e',82h,'l',82h,'c',82h,'o',82h,'m',82h,'e'...
但是这样的话,首先'welcome to masm!'要重复3次,然后颜色属性就要重复更多了。既占用内存,修改也很麻烦。所以就将字符串和颜色属性分开定义,在逻辑处理时来写内存。
2、对字符颜色属性,可以很方便的通过修改“db 82h,0ach,0f9h”一句来查看不同的效果。
3、关于行偏移和列偏移的计算,我在代码中已经给出了详细的说明,应该很清楚了。同样的,我也将这些数据单独定义在数据段,可以很方便的修改以查看效果。  阅读全文

posted @ 2012-06-04 09:30 Tim 阅读(2858) | 评论 (3)编辑 收藏

<2012年6月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

公告

本博客原创文章,欢迎转载和交流。不过请注明以下信息:
作者:TimWu
邮箱:timfly@yeah.net
来源:www.cppblog.com/Tim
感谢您对我的支持!

留言簿(9)

随笔分类(173)

IT

Life

搜索

积分与排名

最新随笔

最新评论

阅读排行榜