菜鸟与你分享如何写程序
菜鸟与你分享如何写程序
如何写程序是个很深的话题,不敢妄加臆断.在这里只想通过一个小程序与大家分享一下心得,纯属个人经验,不足之处还请老鸟斧正.
相信很多和我一样的朋友曾经有这样的困惑,看书上的例子都懂,课后习题也大概的懂.或者看着书上的例子也能敲出一点东西来,但是一离
开书本基本就没什么头绪了.感觉想写什么都无从下手,学了那么长时间那么多东西感觉无一点用处.于是乎,很苦恼的坐在电脑前发呆,看看网页
,玩玩游戏,慢慢的时间混过去了...
首先我们要明白一点,程序是为了解决问题的.而解决问题就需要工具,语言就是写程序的工具,仅仅是个工具.一定要确定语言的地位,战略上藐视它,实践中重视它.
有些初学者被语言奴役了,学完这个学那个,整天被不同语言的语法区别搞的晕头转向.要意识到我们才是主人,语言才是奴隶.我们让它做什么,它就要不停的做,直到收到停止指令.
编程重要的是思想.一个问题出来后,我们要想到怎么去解决它,然后用语言实现就好了.好了,废话说多了.举个简单的例子,王爽汇编书中的一个实验题,相信很多人看过或者正在看或者即将要看.
题目:
'1. display '
'2. brows '
'3. replace '
'4. modify '
要求:将上面4个字符串前四个字母变成大写.
拿到题目后,我们开始糊涂了....
不急,这时候我们有可能只记得一个最重要的知识点就是 二进制ASCII码 和11011111B,与(and)一下就变成大写了.这点应该是看书后的绝大多数人记得的吧.有时候,确实我们能想到的就是一些解决问题的关键步骤,但是具体实现完全没头绪.没事,想到这里我们立刻转变成程序语句.
二进制ascii码 and 11011111B
到这里,自然的想到:哎呀,这样的东西,程序怎么能执行呢,管他呢,想到了就写出来吧.知道一点语法的知道,汇编不能识别(二进制ASCII码)这样的东西的.对了,汇编书不都是介绍了8086有很多寄存器么,既然是汇编给的那肯定能认识了吧.那就拿过来存放字符串吧,随便选个寄存器.就bx吧.
于是就变成:
and [bx],11011111B
问题又来了:and操作需要指明2个操作数的大小的,后面11011111B一看就知道是8位的.前面[bx]就需要我们指明了.其实这里不指明也不要紧,编译时,肯定出错一看提示就明白了.这也是我们经常遇到的这类情况,很正常的.我们还是指明下不用编译时候再回来改了.
and byte ptr [bx],11011111B ;指明[bx]"三维"是byte型的和后面的对应
好了,这里实现了一个字符的大写转换,那要实现4个呢.那就循环一下吧
我们希望bx从0变到3.那就每次循环加1吧,初始值设为0.
注意:上传附件及图片大小不得大于30M。
⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。
