首页
社区
课程
招聘
[旧帖] [原创]菜鸟与你分享如何写程序 0.00雪花
发表于: 2011-4-10 12:25 6320

[旧帖] [原创]菜鸟与你分享如何写程序 0.00雪花

2011-4-10 12:25
6320

菜鸟与你分享如何写程序
    如何写程序是个很深的话题,不敢妄加臆断.在这里只想通过一个小程序与大家分享一下心得,纯属个人经验,不足之处还请老鸟斧正.
    相信很多和我一样的朋友曾经有这样的困惑,看书上的例子都懂,课后习题也大概的懂.或者看着书上的例子也能敲出一点东西来,但是一离
 开书本基本就没什么头绪了.感觉想写什么都无从下手,学了那么长时间那么多东西感觉无一点用处.于是乎,很苦恼的坐在电脑前发呆,看看网页
 ,玩玩游戏,慢慢的时间混过去了...
    首先我们要明白一点,程序是为了解决问题的.而解决问题就需要工具,语言就是写程序的工具,仅仅是个工具.一定要确定语言的地位,战略上藐视它,实践中重视它.
有些初学者被语言奴役了,学完这个学那个,整天被不同语言的语法区别搞的晕头转向.要意识到我们才是主人,语言才是奴隶.我们让它做什么,它就要不停的做,直到收到停止指令.
    编程重要的是思想.一个问题出来后,我们要想到怎么去解决它,然后用语言实现就好了.好了,废话说多了.举个简单的例子,王爽汇编书中的一个实验题,相信很多人看过或者正在看或者即将要看.
    题目:
                            '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.

            mov cx,4  ;先设置一下循环次数
            mov bx,0  ;初始设为0,从第一个字母开始.
        s:  and byte ptr [bx],11011111B
            inc bx    ;每次循环+1,指向下个字母.
            loop s
            mov cx,4  ;先设置一下循环次数
            mov bx,0  ;初始设为0,从第一个字母开始.
        s:  and byte ptr [bx+3],11011111B
            inc bx    ;每次循环+1,指向下个字母.
            loop s
            mov cx,4 ;4行循环4次
           mov di,0 ;从第一行开始
        s0: {每行变大写}
            add di,16  ;每次循环变到下一行.或者 add di,10h.每行大小是16个字节,不足的用空格填充的.
            loop s0

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (38)
雪    币: 656
活跃值: (448)
能力值: ( LV12,RANK:360 )
在线值:
发帖
回帖
粉丝
2
友情支持下
2011-4-10 12:37
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持一下楼主
2011-4-10 13:37
0
雪    币: 1
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
lz说的确实有道理
2011-4-10 14:15
0
雪    币: 288
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
还好啦!用汇编搞哇!厉害!不过我学的汇编知识只是用来看汇编而不是用他来编程的
2011-4-10 14:20
0
雪    币: 408
活跃值: (156)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
6
友情支持下~~~
2011-4-10 14:37
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
路过,帮顶一下
2011-4-10 14:40
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
大爷们不都是从孙子走过来的么?

这句话,好犀利~~我喜欢。。。。

汇编写程序。。。高端玩具。。感觉很难的啊~~
2011-4-10 22:50
0
雪    币: 234
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
支持一下楼主

文章写得很好

比较喜欢这种循序渐进、步步为营的讲述风格
2011-4-11 20:40
0
雪    币: 265
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
汇编还是用来看程序好些吧!编程就算了,不过很赞同楼主的分享精神!
2011-4-11 22:48
0
雪    币: 28
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
作为一个新人,我得说楼主很有心,很强大,佩服。
表示感谢。
2011-4-11 23:48
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
看看有都少kx了!
2011-4-12 09:40
0
雪    币: 505
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
支持楼主了,
2011-4-12 11:42
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
终于有个我能看懂的,泪流满面。
2011-4-27 22:30
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
感谢LZ的讲解,很详细呀
2011-4-27 22:49
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
顶下lz。。。加油
2011-4-27 22:58
0
雪    币: 42
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
谢谢楼主分享
2011-4-28 14:11
0
雪    币: 31
活跃值: (48)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
楼主真是我的偶像呀
2011-4-28 14:30
0
雪    币: 148
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
写得不错哦...学了这么久的语言..编程还是菜鸟,愧疚啊
2011-4-28 14:50
0
雪    币: 80
活跃值: (112)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
支持一下楼主
2011-4-28 15:24
0
雪    币: 33
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
练习练习成就自我
2011-4-28 17:45
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
我晕,怪不得呢我看不懂...上面写些什么...原来是汇编啊... 哎 小白了
2011-4-28 19:55
0
雪    币: 56
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
大爷们不都是从孙子走过来的么?
========================
就喜欢这句。
2011-4-28 20:27
0
雪    币: 2323
活跃值: (4113)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
24
通俗易懂,谢谢分享~~
2011-4-28 23:55
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
虽然看不懂、、、但还是要看地。。  学习下了。。。
2011-4-29 10:22
0
游客
登录 | 注册 方可回帖
返回
//