博文

[置顶] 别了,朋友们!(2007-1-23 10:18:00)

 

一年前,我来到了这里.

一年后,我将悄悄离去.

这是我第一次见到 elva 时说过的话. 如今这一时刻到来了. PFAN注定成为我生命历程中的一座驿站.

一年来, 我认识了很多不错的朋友,大家有着共同的兴趣和志向,讨论着关心的话题, 或共同修改一个不成熟的算法,然后拿出比较. 同悲同喜, 扯淡,揶揄. 从那一刻起, 这里便成了我的牵挂. 学了新技术和大家一起分享心得和体会, 互相发问, 祝福, 其乐融融.

 

标哥, 风飞, 创意 ,harm, j**  , 还有那个叫我大叔的小姑娘…….  太健忘,能记起的也就这些了. 请原谅我的无情, 只是为了履行诺言!

标哥: 考研已经过了, 知道你对自己的表现不是很满意, 可这毕竟是个结果, 只要努力了, 就该拿的起,放的下. 我相信你会成功的,自信点啊, 起码你是哥几个唯一有老婆的人啊. 呵呵, 下次和 祥哥喝可乐的时候可别忘了我们这帮兄弟哦.

风飞: 本想你卖了自己, 该请我们戳一顿了, 可后来又听说你运气不佳.也就算了吧. 没等着我出手, 你就自己爆料了, 有自知之明啊!(呵呵,开个玩笑). 进公司还好吧, 其实你有很多和我相似的地方, 就像我俩的生日一样.我最羡慕的是你有个特疼你的妹妹, 小伙子要珍惜啊. 我俩生日那天, 真的很想和你喝几杯啊!!! 我们干着同样的事情, 或许以后真的能见面, 还记得我在深圳的时候, 你和我说的话吗?

Love-me: 开始感觉你很怪, 又很乖, 风飞怎么会有你这个小妹妹, 经常乘着老爸不在的时候和我们一起灌水. 真不知被你老爸发现后会有什么反应? 据说因为考了全班第二名就被家人斥责, 大家都能感受到你的家教之严厉. 其实最让我感动的是你对哥哥的关心. 看你们这对无话不谈的兄妹. 让人感触良深.  好好珍惜吧, 或许几十年也抹不去这么美好的回忆.

创意: 第一次遇到你,就感觉是个有想法,不错的个人. 没有深交,加油吧,BOY, 你是最棒的.

 

………..

朋友们, 请再次原谅我的离别吧!

May you lucky!

 

 


阅读全文(2902) | 评论:4 | 复制链接

汇编通讯录系统[代码](2007-1-4 11:14:00)

 

 

            汇编课程设计报告

 

 

 

 

题目: 通讯录系统

 

 

 

 

 

 

姓名: 何xx

   学号: 2004xx

      班级:计科04-x

       指导老师: 郑xx

 

 

 

 

1.1   设计要求.

题目要求设计一个通讯录管理系统.需要具有以下功能和模块.

(1) 输入模块: 输入新的通讯条目,包括:姓名,性别,电话,E-mail,通讯地址,邮编,QQ

(2) 删除模块: 删除功能.

(3) 查询模块: 查询,输入姓名可以查询该人其他信息.

(4) 修改模块: 修改某一条记录.

(5) 存储模块(附加功能,可以不完成): 能够将输入的信息存储到硬盘文件;并能读入存储在该文件中的信息.

1.2   环境.

软件: windows xp, masm 6.x, notepad

硬件: PC

1.3   分析,设计思想.

看到题目,感觉就像是个简单的数据库系统.支持数据的增///改操作.具有应用价值.在数据库系统中,数据是以数据库文件的形式存在.通过访问/操作数据库中的表或表中的字段,获取我们想要的信息.

本系统可以归结为4个功能: select, insert, update,delete.

在这里不可能建立一张数据表来维护这种关系型数据.必须要借助汇编中的结构类型.定义一个结构数组,用来维护数据条目及信息的处理.

如图: 修改和删除操作都要依赖查询功能.

故把整个程序分为4个模块是比较明智的.

1.4   模块说明

由于变量较多,故没有采用多模块设计方案.

几个功能分别在6个子过程中完成.

(1)    Insert : 添加新的数据项. 自动将条目总数加一.

(2)    Select : 查询信息,查询条件为姓名. 对结构数组无影响.

(3)    Update: 修改数据信息, 查询条件为姓名,修改查询结果的值,修改文件.

(4)    Delete : 删除数据信息, 查询条件为姓名,删除查询结果值,具体做法是: 不停的将后面的一条信息,前移,就达到删除的效果.

(5)    Load : 加载文件到内存,涉及文件读//打开操作.

(6)    Save : 保存缓冲区数据至文件.

1.5   流程详细

1.6   主要代码

;=================================

;                     何xx          

;              完成日期:  11-13  /2007

;              汇编课程设计

;              第二题:  通讯录设计

;=================================

(1)    宏定义

;清空当前item(输入缓冲区)

setitem macro a,b

;清空关键字

clearkey macro a

(2) 数据段

dseg segment

    ;文件路径

   filename db 'G:\programs\asm\design\items.txt',0

   ;错误提示: 没有找到文件或无法打开

   errshow db 0ah,0dh,'can not open or find this file! ','$'

    ;选择菜单

   menu db 0ah,0dh,'pleate enter your choice!',0ah,0dh       

        db '1: Insert',0ah,0dh

        db '2: Select/Search',0ah,0dh

        db '3: Update',0ah,0dh

        db '4: Delete',0ah,0dh

        db '5: Save',0ah,0dh

        db '6: Exit',0ah,0dh

        db '$'

    ;命令选择

   command db 0

   ;提示输入姓名

   namelabel db 0ah,0dh,'name:$'

   ;提示输入性别(F/M)

   genderlabel db 0ah,0dh,'gender:$'

   ;提示输入电话

   phonelabel db 0ah,0dh,'phone:$'

   ;提示输入E-MAIL

   maillabel db 0ah,0dh,'email:$'

   ;提示输入通讯地址

   addresslabel db 0ah,0dh,'address:$'

   ;提示输入邮编

   postalcodelabel db 0ah,0dh,'postalcode:$'

   ;提示输入QQ

   qqlabel db 0ah,0dh,'qq:$'

   clr db 0ah,0dh,'$'

   ;添加成功提示

   inserted db 0ah,0dh,'new item has been added successfully!',0ah,0dh,'$'

   ;编辑成功提示

   changed db 0ah,0dh,'you have changed this item successfully!',0ah,0dh,'$'

   ;删除成功提示

   deleted db 0ah,0dh,'delete successfully!',0ah,0dh,'$'

   ;保存成功提示

   saved db 0ah,0dh,'save successfully!',0ah,0dh,'$'

   ;查询失败

   selected db 0ah,0dh,'nothing to match!',0ah,0dh,'$'

   ;显示数据条数

   numshow db 0ah,0dh,'the count of items:$'

   ;=============================================================

   ;定义结构体

   item struct

      pid db 0

      pname db 10,?,10 dup('$')

      pgender db 10,?,10 dup('$')

      ptel db 10,?,10 dup('$')

      pemail db 10,?,10 dup('$')

      paddress db 10,?,10 dup('$')

      ppostalcode db 10,?,10 dup('$')

      pqq db 10,?,10 dup('$')

      pnum db 0

   item ends 

   ;定义结构体结束

   ;==============================================================

   olditem item {}

   ;输入缓冲区

   newitem item {}

   ;结构数组长度

   len equ type item

   ;结构总数,文件中此变量位于最后一位

   num db 0

   ;定义结构数组

   items item 100 dup({})

   ;inititems item 100 dup({})

   ;,,改条件/通过姓名

   key db 10,?,10 dup('$')

   oldkey db 10,?,10 dup('$')

   ;flag,作为查找结果标志,0表示查找失败.

   flag db 0

   ;自定义指针

   pointer db 0

   ;标号地址表

   addrtbl dw insertbegin,selectbegin,updatebegin,deletebegin,savebegin,done

dseg ends


(3) 标号定义:

Insertbegin                               

Selectbegin                                        

Updatebegin

Deletebegin

Savebegin

Done                                                              

(4) 子过程 (由于篇幅限制,不给出代码)

;添加记录子过程

insert proc

;查找子过程

select proc

;编辑子过程

update proc

;删除子过程

delete proc

;保存至文件

save proc

;加载文件内容到缓冲区: 结构数组,其中最后一位为数据条数

load proc

;打印子过程

print proc

    

1.7  小结.        

    关于程序: 实现题目要求的功能(包括文件的存储),初步具备简单数据库系统的功能,虽然没有实用性, 但对整体机制的理解很有帮助.是一次不错的练手机会.

    体会: 通过本次课程设计.进一步掌握了ASM程序设计方法,由于考试在即,时间较紧张,未做界面的优化,16位下实现,总体来说题目较简单,功能区分明显,结果较清晰,写程序的时候未遇到太多困难, BUG倒很多,一口气写完,第一次调试居然198ERROR, 不段的调试程序和优化流程,花费了不少心思,频繁的参考课本和相关资料是不可避免的,也深刻的感受到了,汇编程序设计的繁琐和开发效率的低下,汇编好几行语句在高级语言里面只需要一条就可以完成,事物总有两面性,存在即具其合理性,ASM的优越的性能(时间和空间),高级是望尘莫及的,ASM让我们更加注重底层的东西,这也是一个优秀软件工程师必备的素质,处理繁琐的细节问题往往暂用了相当一部分的开发时间,相信课程设计的目的已经达到.

1.8 参考书籍或资料.

                                       

         (1) 教材

          (2) http://community.csdn.net/

          (3) BIOS_DOS.DOC(来自FTP)


阅读全文(3963) | 评论:2 | 复制链接

汇编冒泡排序算法(2006-12-11 14:11:00)

dseg segment

   Array dw 10,9,8,7,6,5,4 dup(8)
   Len = ($-Array)/2
   addr dw ?
dseg ends

cseg segment
   assume cs:cseg,ds:dseg
 
 start:
   mov ax,dseg
   mov ds,ax
  
   mov cx,Len-1
   mov di,0
   mov si,Len
 begin:
   dec si
   mov di,0
   again:
      mov bx,di
      shl bx,1
      mov ax,word ptr Array[bx]
      inc di
      cmp ax,Array[bx+2]
      jna next
      xchg ax,Array[bx+2]
      mov Array[bx],ax
     next:
      cmp di,si
      jb again
     
   loop begin
    
     mov ah,4ch
     int 21h
 cseg ends
    end start  
  


阅读全文(4854) | 评论:8 | 复制链接

容易忘事,不得不做个计划了(2006-12-4 21:57:00)

说实话最近有点小忙.

上周显示器抱修, 本人小憩了几天, 每天晚上10点前睡觉, 疯狂的补充了些睡眠.

梳理一下需要做的一些事情吧,有些乱了.

现在 15,今天124.

1.       CET-6 (12月底) :已经第三次了,从来没有认真准备过,宿舍一个哥们乘我不在偷偷的帮我报了,18,没办法啊.

2.       ANDES: 科技厅的项目的确不好做, 老大和那些”BOSS”们打交道,外行就是外行,需求复杂了,不能一次搞定,可怜了我们这些小鬼们.再来呗, ! 只当是练手.

3.       另外一个: 实验室并行的一个项目,也是省科技厅的,那些大佬们真够牛比,干什么都一口闷, 毫不给喘息的机会, B/S的按说很爽, 界面分配给我们俩个傻蛋,实话说,并不在行,也不喜欢,只能硬着头皮搞了.

4.       公共选修(2): 都在这周. 其实很无聊的课,只上过两次.好在老师够厚道,开卷,另加考题,庆幸半小时前从一位热心人那里搞到题目.

5.       ASM: 下周考试, 很多同学的课程设计都搞定了,虽然DEADLINE19,但我仍然坚持在下周搞定,原因很简单,边复习准备考试边做.

6.       小项目: 之所以叫小项目,是受朋友所托,没有DEADLINE,一个商场MIS系统, 需求不多,要求实现的功能也很简单,一两周的时间差不多是够了, 关键是 条形码扫描数据格式识别与转换, 这对我来说是个陌生的东西, 承诺的 薪水”,  我也没过多关心, 不指望那些发财.

7.       专业选修: 比同学选的都多,三下 再选一门, 除了大四的几门必修课和毕业设计,基本可以毕业了. 话说,当你满负的时候,再给你一个石块感觉就像是座大山.

8.       联系: 以前火车上认识的一个女孩, 上个月给我发了一份邮件, 留个电话, 要我联系她,

一直太忙, 也没那个心情, 这事总不能拖到明年吧. 老同学都说我回短信的速度太慢,MM骂我一条短信 好几天才有反应, 大一 一周给家里一个电话, 大二 半个月, 大三,我记得上上次 貌似是刚开学的时候,有时候真服了我自己.

9.       自修课程: 信息检索, 数据仓库, 有时也挺烦的.

………………….

 

怎么办啊.老爸昨天打来电话,说看新闻北大有跳楼的,问我们学校有没有,我说有,去年有两个,老爸让我保重,貌似这事和我没关系啊!!!!

很有必要计划一下,尤其是最近两周.

1.        早起: 6:30-8:00单词, 阅读(英语新闻),国内外新闻.

2.        上课时间如果没课,自习,准备考试,外加复习线性代数(急需使用).

3.        正常晚自习需上(考试 喝酒除外).

4.