最近又开始看放下了很久的汇编,从初学入手开始看起,以下为radsm编写代码,部分做了备注
希望有兴趣的朋友多多交流,共同进步
[code]
.386
.model flat, stdcall ;32 bit memory model
option casemap :none ;case sensitive

include FirstApp.inc
include macros.asm
include rsrc.inc

;************* DbgView 调试包含文件 ********************
include masm32.inc
includelib masm32.lib
include DbgViewDeBug.asm

DBGVIEW_DEBUG_ON EQU 1
DBGVIEW_EXT_INFO EQU 1
;************************************************************

DlgProc PROTO :HWND,:UINT,:WPARAM,:LPARAM

abc struct
db11 db ?
dw11 dw ?
dd11 dd ?
abc ends

.data
db1 db 3
dw1 dw 4
dd1 dd 5

.radix 16
dd3 dd 12

.radix 10
dd4 dd 12

dd2 dd 2 dup(3)

ghi dd (123+45)*20 /3 mod 15

mno equ 123

szHello db '第一节演示程序',0

.data?
hInstance dd ?

.code

;******************* 对话框回调函数 ***********************************************************
DlgProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM

mov eax,uMsg
.if eax==WM_INITDIALOG
MOV ECX, 123456H ;将123456的值给ecx,mov是传送指令,ecx为数据寄存器
DbgPrintHex ecx ;打印ecx的值

; jmp @test1 ;jmp是跳转,这里是跳转到@test1,也就是跳到105行开始执行,前面加了;表示注注释掉

mov ebx,1234h ;表示数据寄存器的值是1234h
MOV EAX, EBX ;将ebx的值给eax,因为eax只有两个字节,用汇编写程序的时候尽量多用eax
DbgPrintHex eax

; mov eax,dw1;mov eax,[12345678h] ;这里是寻指方式,程序中声明一个dw1的指令给一个值,然后这里将值给eax用
; mov ebx,eax ;将eax的值在传递给ebx
; DbgPrintDec ebx ;打印ebx

movzx ecx,db1 ;由与数据类型不同,所以这里要用movzx而不在是mov
DbgPrintHex ecx

movzx ecx,dw1
DbgPrintHex ecx

mov ecx,dd1
DbgPrintHex ecx

DbgPrintStringByAddr offset szHello

mov eax,offset dd2
DbgDumpMem eax,20

MOV EAX, ghi
DbgPrintDec eax

mov eax,3
shl eax,1
DbgPrintDec eax

mov eax,sizeof real8
DbgPrintDec eax

mov eax,lengthof dd2
DbgPrintDec eax

mov eax,dd3
DbgPrintDec eax

mov eax,dd4
DbgPrintDec eax

@test:
invoke MessageBox,NULL,CTXT("演示程序"),NULL,MB_OK ;程序运行时弹出一个对话框
; retn

.elseif eax==WM_COMMAND

.elseif eax==WM_CLOSE
@test1::
DbgPrintText "程序结束了!"
invoke EndDialog,hWnd,0

.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret

DlgProc endp

;******************* 程序从这里开始执行 ***********************************************************
start:

invoke GetModuleHandle,NULL
mov hInstance,eax

invoke InitCommonControls
invoke DialogBoxParam,hInstance,IDD_DIALOG1,NULL,addr DlgProc,NULL
invoke ExitProcess,0

end start
[/code]

win32汇编界面编程系列教程
第一讲

1. 开发环境的搭建

RADASM = RAPID APPLICATION DEVELOPMENT ASSEMBLY
RADASM 功能简介
RadASM是一款著名的WIN32汇编可视化开发环境,支持MASM、TASM等多种汇编编译器,Windows界面,支持语法高亮,
自带一个资源编辑器和一个调试器。拥有较强的工程管理功能,加之众多插件的支持,使得它用汇编语言编写
Windows 程序变得得心应手。

radasm2.2.1.8b 最新汉化版下载地址:
http://www.rayfile.com/files/ee4e77ae-c2f4-11de-883f-0014221b798a/

MSDN

汇编指令手册

2. 预备知识

寄存器
32位CPU所含有的寄存器有(见图2.1中的寄存器):

4个数据寄存器(EAX、EBX、ECX和EDX)
2个变址和指针寄存器(ESI和EDI)

2个指针寄存器(ESP和EBP)
6个段寄存器(ES、CS、SS、DS、FS和GS)

EAX累加器
EBX在计算存储器地址时,可作为基址寄存器使用。
ECX常用来保存计数值。
ESI、EDI寄存器可以象数据寄存器一样在运算过程中存放操作数,它们更经常的用途是在存储器寻址时,提供偏移地址。
ESP称为堆栈指针寄存器,用来指出栈顶的偏移地址。
EBP称为基址指针寄存器,在寻址时作为基地址寄存器使用,但它必须与堆栈段寄存器SS联用来确定堆栈段中的存储单元地址。

段寄存器CS指向存放程序的内存段,EIP是用来存放下条待执行的指令在该段的偏移量,
把它们合在一起可在该内存段内取到下次要执行的指令。

段寄存器SS指向用于堆栈的内存段,ESP是用来指向该堆栈的栈顶,把它们合在一起可访问栈顶单元。
另外,当偏移量用到了指针寄存器EBP,则其缺省的段寄存器也是SS,并且用EBP可访问整个堆栈,不仅仅是只访问栈顶。

段寄存器DS指向数据段,ES指向附加段,在存取操作数时,二者之一和一个偏移量合并就可得到存储单元的物理地址。
该偏移量可以是具体数值、符号地址和指针寄存器的值等之一,具体情况将由指令的寻址方式来决定。
通常,缺省的数据段寄存器是DS,只有一个例外,即:在进行串操作时,其目的地址的段寄存器规定为ES。

FS 附加段寄存器
GS 附加段寄存器

标志寄存器FLAG
条件码标志用来记录程序中运行结果的状态信息,它们是根据有关指令的运行结果由(CPU)自动设置的。由于这些状态信息往往作为后续条件转移指令的转移控制条件,所以称为条件码。
  ① 进位标志 CF,记录运算时最高有效位产生的进位值。
  ② 符号标志 SF,记录运算结果的符号。结果为负时置1,否则置0。
  ③ 零标志  ZF,运算结果为0时ZF位置1,否则置0。
  ④ 溢出标志 OF,在运算过程中,如操作数超出了机器可表示数的范围称为溢出。溢出时OF位置1,否则置0。
  ⑤ 辅助进位标志 AF,记录运算时第3位(半个字节)产生的进位值。
  ⑥ 奇偶标志 PF,用来为机器中传送信息时可能产生的代码出错情况提供检验条件。当结果操作数中1的个数为偶数时置1,否则置0。

操作数的寻址方式
微机系统有七种基本的寻址方式:

立即寻址方式
寄存器寻址方式
直接寻址方式
寄存器间接寻址方式
寄存器相对寻址方式
基址加变址寻址方式
相对基址加变址寻址方式

其中,后五种寻址方式是确定内存单元有效地址的五种不同的计算方法,用它们可方便地实现对数组元素的访问。

立即寻址方式
操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。
如:MOV ECX, 123456H

寄存器寻址方式
寄存器寻址方式是一种简单快捷的寻址方式,源和目的操作数都可以是寄存器。
如:MOV EAX, EBX

直接寻址方式
指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址方式为直接寻址方式。
如:MOV EBX, [12345678H],还有程序中的变量值传给寄存器如MOV EAX,dwValue 这类也属于直接寻址。

寄存器间接寻址方式
如: MOV EAX,[EBX]
在不使用段超越前缀的情况下,有下列规定:
若有效地址用ESI、EDI和EBX等之一来指定,则其缺省的段寄存器为DS;
若有效地址用EBP来指定,则其缺省的段寄存器为SS(即:堆栈段)。

寄存器相对寻址方式
操作数在存储器中,其有效地址是一个基址寄存器(EBX、EBP)或变址寄存器(ESI、EDI)的内容和指令中偏移量之和。
如:MOV EBX, [ESI+1234H]
在不使用段超越前缀的情况下,有下列规定:
若有效地址用ESI、EDI和EBX等之一来指定,则其缺省的段寄存器为DS;
若有效地址用EBP来指定,则其缺省的段寄存器为SS。

基址加变址寻址方式
操作数在存储器中,其有效地址是一个基址寄存器(EBX、EBP)和一个变址寄存器(ESI、EDI)的内容之和。
如:MOV EBX, [EBX+ESI]

相对基址加变址寻址方式
操作数在存储器中,其有效地址是一个基址寄存器(EBX、EBP)的值、一个变址寄存器(ESI、EDI)的值和偏移量之和。
如:MOV EAX, [EBX+ESI+1234H]

标识符和表达式
在汇编语言中,标号、内存变量名、子程序名和宏名等都是标识符,它一般最多由31个字母、数字及规定的特殊字符(?、@、_、$)等组成,并且不能用数字开头。
在WIN32汇编语言中,区分标识符中字母的大小写。

内存变量定义的一般形式
[变量名]  数据定义符  表达式1[, 表达式2, …, 表达式n]  ;注释

数据类型

基本类型
DB/BYTE(Define Byte),字节变量
DW/WORD(Define Word),字变量
DD/DWORD(Define Doubleword),双字变量
DF/FWORD(Define Farword),六字节变量
DQ/QWORD(Define Quadword),八字节变量
DT/TBYTE(Define Tenbytes),十字节变量
REAL8,八字节变量
REAL10,十字节变量

结构类型,
用STRUC和ENDS可以把一系列数据定义语句括起来作为一种新的、用户定义的结构类型。
结构名 STRUCT [Alignment][, NONUNIQUE]
数据定义语句序列
结构名 ENDS

联合数据类型,
联合数据类型是一种特殊的数据类型。它可以实现:以一种数据类型存储数据,以另一种数据类型来读取数据
[联合类型名] UNION [Alignment] [,NONUNIQUE]
数据定义语句序列
[联合类型名] ENDS

B1 DB 'A'
W1 DW 'AB'
DW1 DD 12345678H
DF1 DF 1234567890abH
DQ1 DQ 12345678H
DT1 DT 12345678H

标号
标号是一种特殊的标识符,它代表代码段中的某个具体位置,它主要用于表明转移的目标位置。其说明形式如下:
标号:  汇编语言指令   ;注释
标号必须是一个合法的标识符,在其后面紧跟一个冒号":",冒号与汇编语言指令之间要有分隔符。

偏移量属性操作符
偏移量属性操作符(OFFSET)返回该标识符离它所在段的段地址有多少字节。
一般情况,程序员只会取内存变量的偏移量,而不太关心标号的偏移量。
ADDR

类型属性操作符
类型属性操作符(TYPE)是返回该变量所占字节数,或标号的“远”(FAR)、“近”(NEAR)类型。
标识符种类 字节变量 字变量 双字变量 近标号(NEAR) 远标号(FAR)
TYPE的值 1 2 4 -1 -2

长度属性操作符
长度属性操作符(LENGTH)是针对内存变量的操作符,它返回重复操作符DUP中的重复数。
如果有嵌套的DUP,则只返回最外层的重复数;如果没有操作符DUP,则返回1。

强制属性操作符
在程序中,我们有时需要对同一个存储单元以不同的属性来访问,
或对一些不确定的存储属性需要显式指定等,这时,我们就需要强制属性操作符PTR。
数据类型 PTR 地址表达式
MOV byte ptr [EBX], 1
MOV word ptr [EBX], 1
MOV dword ptr [EBX], 1

stsa STARTUPINFOA

lpsa typedef ptr stsa

Student struct
StuName db 20 dup(?)
next lpStudent ?
Student ends

存储单元别名操作符
汇编语言提供了一种操作符THIS,它为同一存储单元取另一别名,该别名可具有其自身的数据属性,但其段地址和偏移量是不变的。
操作符THIS的一般格式为:
THIS 数据类型
WBUFFER EQU THIS WORD
BUFFER DB 20 DUP(?)

运算符
算术运算符

1、常量
例如:10101011B、324Q、1234D、1234H、0abcdH、'AB'等都是常量。

2、算术运算符
算术运算符包括符号:+(正)、-(负),运算符:+(加)、-(减)、*(乘)、/(除)和MOD(取模)。
ghi dd (123+45)*20 /3 mod 15

3、关系运算符
关系运算符包括符号:EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于等于)和GE(大于等于)。
这些关系运算符和常量、括号也可组成数值表达式。该表达式的计算结果规定如下:

若关系不成立,则该数值表达式的计算结果为0;否则,其结果为0FFFFH。

4、逻辑运算符
逻辑运算符包括按位操作符和移位操作符。具体是:AND(逻辑与)、OR(逻辑或)、NOT(逻辑非)、XOR(异或)、SHL(左移位)和SHR(右移位)
这些逻辑运算符和常量、括号可组成数值表达式。

如:1 SHL 3,47H AND 0FH,NOT 56H等,它们的计算结果分别为:8,7和0A9H。

SIZEOF 与 LENGTHOF

定义语句
等价语句
符号名 EQU 表达式

等号语句
符号名=数值表达式
ABC = 10 + 200 * 5 ;ABC的值为1010

符号名定义语句
符号名定义语句LABEL与前面的操作符THIS功能类似,该语句定义一个指定的符号名,
该符号名的段地址和偏移量与下面紧跟存储单元的相应属性相同,但该符号的类型是新指定的。
LABEL语句的一般格式如下:
符号名 LABEL 类型

伪指令与说明符
对齐伪指令ALIGN
偏移量计数器的值 $
重复说明符DUP
进制伪指令RADIX
宏汇编开始时所默认的整数进制为十进制。

.RADIX exp
.radix 16
abc dd 10 ;abc = 16
.radix 10
def dd 10 ;def = 10

十一月 21st, 2009

Posted In: 未分类

今天看到GOOGLE的BLOG里面写了一个新的文章,喜欢测试各种新产品的我当然免不了要去测试一下,感受了一下功能的强大,在你的BLOG里面加入这段代码
[code]

[/code]
你的页面就可以在瞬间被翻译成51种语言,是否很强,真的很好很好,本人测试过,只是未域图,可以试一下我左边的侧边栏的效果,google good

十一月 17th, 2009

Posted In: 未分类

1、自己租房开灶到现在2月有余。体重由116上升到120,再升级到130,今天早上一边刮胡子一边站在以前住房子里的那个女的留下的体重秤上,一看,我靠,138了。
注:a)116是我保持了多年的体重,很精准,很平稳,曾经羡煞无数女生。那时,一旦有男女朋友吵架,谈到体重问题,我必是他们比喻的对象。(唉,造孽啊,不知道毁了多少对恋人….所以,唉….)
b)以前住房子里的那个女的,此处是指,我搬来之前住在我隔壁房间里的那个卖化妆品的女人,我搬来1周之后搬走。(想闹绯闻,结果没机会,唉….)

2、我和小宋一起住,小宋吃素,标准素食主义者,我属于标准最好养活的男人,除了不能吃的,都吃。所以,总是在我做完米饭,他做完大部分菜的时候,我操刀做一个荤菜结束,然后,一人啤酒一瓶,开吃。
注:a)所谓最标准的最好养活的男人,就是我这样的:饭能做熟就可以了,实在不会做的话能买回来就可以,实在实在不行的话,我自己就是了。不忌口,不专味,农村的孩子就这么好养活。
b)小宋,我公司同事,网络安全出身,也写代码。目前,是我的私人技术顾问兼生活保姆。绝对钻石王老五型的绝种好男人,各位未婚思春MM…..HOHO
c)小宋嗜酒,我嗜酒好烟。于是,我俩平均1周去楼下小卖部拎啤酒一箱上来,我外带烟一条。以前,我们喝口杯,但是喝的没意思,于是改喝啤酒,另一个原因是啤酒能刮到奖。什么时候带会小宋抽烟,做我第三个弟子(大学成功出师2个),是我最大心愿。

3、大早上扯淡了半天,还没看邮件呢。赶紧下结论:
幸福与金钱多寡无关,体重与吃食好坏无关,生活与自己心态息息相关!
注:a)昨天一个哥们在gtalk上给我发了一段很长很长的开头的,祝我元旦快乐的话,很抱歉,前面都没看,就看到最后一句“元旦快乐”了。其实,想说祝福的话,没有必要搞那么长,直白简单点多好哇!copy那么多文字不累啊!

PS:准备两件事情中:
1)独立出来,用W.p
2)08年一路走好,不送。迎接运交华盖的09年

以上是我们刚租房是一块的同事,现在想想幸福

以下为转载地址
http://www.ikent.me/blog/1160

十一月 16th, 2009

Posted In: 未分类

非常自信的我却做什么事情都粗心,连感情也是一样,结果了当然是一败涂地,自由人是挺好,像个傻子或是更像个呆子,唯一面对着的除了我的笔记本还有什么,偶尔玩玩单排,出去摄影,爬山,还能做什么了,当然,还有就是一个人可以安心的看书,研究技术,可这些在生活中占的比例是多少,最多的可能还是两个人在一起,输了感情还有什么,追求技术,智者永存

十一月 15th, 2009

Posted In: 未分类

日子实在过不下去了,离婚对我们来说,是最明智的选择,反正也没小孩的拖累。我说出离婚这两个字后的第三天,我们就去街道把这事给办了。 她是我大学同学,我们谈了三年恋爱,在一起又过了三年。
只是有一个问题,离婚之后,在她还没找到新住所之前,我们还得住一起。
自己想想都觉得搞笑,谈恋爱的时候,我们特纯洁,虽然彼此之间不止于牵手拥抱,但是同住这样的事情,压根没敢尝试过。没想到现在离婚了,倒赶了趟新潮。
一室一厅的房子,两个不再是夫妻的男女住在一起,特别别扭。
第一个晚上,我拿了一套卧具铺在沙发上。
第一夜,睡得真舒坦!没有人在耳边唠叨的夜晚,真美!只是,如果我们家的沙发是布沙发就好了,这个木头沙发让我在清晨醒来的时候,脖子有点酸。
到了洗手间的门口,听见里面有哗啦啦的水声。这个臭女人,不知道从什么时候养成的坏习惯,晚上睡觉前洗澡,早上起床后还要洗澡。算了算了,反正也已经习惯了。我顺手拉门就进去。
我刚掀起马桶准备方便,没想到她竟然“哇”地一声狂叫了起来。
大清早的,也不至于见鬼了啊,叫什么叫?吓得我尿都憋了回去。
“你没见我在洗澡吗?你是不是男人啊?有男人在女人洗澡的时候进来解手的吗?”她掀开浴帘,一只手用浴巾裹着身体,一只手指着我的鼻子就开始训斥。
“你叫什么叫啊?咱们之间不是还隔着浴帘吗?我能看到你什么啊?又不是第一次你洗澡的时候我进来解手,至于这么夸张吗?再说了,就你那身体,我都看了三年了,闭上眼睛都知道是什么样子了,值得我偷窥吗?”
“你……”她气得说不出话来。裹着浴巾就跑出浴室,就听到卧室的门“砰”的一声。
泼妇!就你这臭脾气,看以后还有谁敢要你!
解完手,我去卧室,我今天上班要穿的衣服还挂在橱子里呢。这死女人,竟然将卧室的门给锁上了。我敲了半天门,里面总算回了一句,我在穿衣服!
算了,反正离婚了,让让她吧。
半小时后她才出来,倒是衣着光鲜唇红肤白。可惜,她临出门时狠狠瞪了我一眼,破坏了她的形象。因为这半小时,我上班第一次迟到。
下班后,我在大街上胡乱溜达着消磨时间,虽然无聊,但是总比看她那张脸要好。就这样呆到九点,我在街角吃了碗面,回家。
我进家门,她老人家竟然在客厅里坐着。看见我进来,脸上竟然还带着微笑。我迟疑地在她面前坐下,天!她竟然给我沏了一杯茶。
她葫芦里卖什么药?我想到了一个词:笑里藏刀。
“今天呢,我仔细想了一下,咱们现在不是夫妻了,虽然我现在是借你的房子住一个月,但是我想,为了避免这一个月出现不必要的尴尬和误会,我们还是约法三章比较好。”说着,她温柔地拿起一张纸在我面前晃了晃。“你看看,要是没什么意见,那么就签一个字,咱们一人一份。”
我拿起纸看了看。
第一条:在一方使用洗手间的时候,另一方不得以任何借口进入;
第二条,一方不得以任何借口接触对方的身体;
……
我数了数,大小竟然有二十六条之多。
“没意见,那么就请签字。”她竟然连钢笔都准备好了。
我本来想冲她发火的,但是想想也没必要。反正最多也就一个月的时间,忍忍也就过去了。我冷眼看了看她,拿起钢笔就挥下我的大名。
“对了,作为你签字的回报,在我们共同生活的期间,我还继续给你做饭吃。”
有了这个条约,这日子可就真拘束。刚开始那几天,感觉做什么都被束缚着。并且,我还继续在外面晃悠着找地方吃饭。哼,以为做饭给我吃,我就会感恩?美去吧你!我一个月不吃你的饭,看我会不会饿死!唉,话是这么说,只是每次晃悠着的时候,闻到别人家的饭菜香,心里也还是十分羡慕。
一个星期相安无事。
一天我进门的时候,她刚好准备出去。
“出去?”我装着随口问了声,其实我不喜欢她这么晚出去还喷了香水。“是啊,阿铃说今晚介绍一个朋友给我认识。你看看我今天刚买的衣服,还不错吧?”她站在镜子前仔细端详着自己。
“是啊,是不错,钓傻帽最适合了。”傻子都听出我说的不是好话。
“你!”她的脸上又开始浮现厌恶我的表情了。只是,转而她又假惺惺地浅笑盈盈。
“是啊,反正我现在是单身了,就算是钓傻帽,我也有这个权利啊,总会有珍惜我的人出现的。你也老大不小了,也该考虑考虑自己的幸福了。”她眉毛吊着看我,向我示威啊?
“那我祝你今晚吊到一个大傻子!要是人家送你一个别墅,也借咱住两天。”“哟,说话怎么这么酸啊?你不会是看我出去吃醋吧?”她哈哈笑了起来。
“走吧走吧,别站那碍我的眼!”我随手就给她拉开了门。她斜着眼睛瞧着我,走了出去。出门的时候,还对我“哼”了一下。我“砰”地关上了门。
没有碍眼的人在了,我开始看球赛。只是心里怎么这么烦?难道我真吃醋了吗?哈哈,我开始笑我自己,怎么这么胡想?可是我主动提出离婚的啊!
大概过了两个小时,她就回来了。而且,在我面前走过的时候,我看到了她脸色很差。她直接回卧室睡觉了,竟然连澡都没出来洗。
她心情不好地回来,我竟然心情好了。嘿嘿,活该你出去,我也乐颠颠地睡下来。
半夜,我被她的一声尖叫吓醒。刚想起来看看什么情况,就见她穿着睡衣冲了出来,跳到沙发上搂着我的脖子直发抖。“怎么了?”我拍拍她的背问。“蟑螂……”她一说这两个字我就明白了。这个女人虽然对我很凶悍,但是天生害怕小动物,什么蟑螂、老鼠、猫、狗等等,每出现一次她都尖叫半天,害我一直想弄一个小狗回来养养都不成。
“乖,别怕。”我像往常一样安慰她,进房间给她消灭去。房间里四下找了半天,没发现蟑螂的影子,只得回来。
我一坐上沙发,她又将我的脖子搂住。“打死了吗?”她脸上被吓出眼泪,不过在夜晚黯淡的光线下,却有梨花带雨一枝春的感觉。“好了,被我打死了。别怕,你回去睡觉吧,明天大家都上班呢。”我骗了她。因为我知道我不说打死而说没找到的话,肯定会被她逼着再找下去。那么我的觉也算是不要指望睡了。“我害怕,我不回去睡。”
“你忘记我们离婚了。而且,你也破坏了我们的约法三章中的第二条。你首先接触我的身体了。”我语气冷淡,哼,叫你晚上出去钓傻子,看到蟑螂才想起我。她听到我这话,呆了一下,咬着嘴唇说了声“对不起”后,跑回了房间。又是“砰”地一声关门声。
我呆坐半晌,突然给自己一个大嘴巴。
我睡在沙发上,但是一点困意都没有。隐约中,房间里传来她哭泣的声音。进去还是不进去?我有点犹豫,我又给自己一个大嘴巴,是男人就进去!
我打开房间的门,看到她伏在被子里哭。我坐到床边,拉开被子,轻声地问她怎么了?说实话,我看到她满脸的泪水,心里真是好心疼。
“你进来做什么?我们不是离婚了吗?我不希罕你来关心我!给我出去,出去!”她冲我歇斯底里地叫,拿起枕头砸我。“对不起,刚才是我说错话了,原谅我好吗?”我不管她到底是因为什么,我还是坚持将她抱在怀里,轻轻吻她脸上的泪。她不再对我咆哮了,用力抱着我的脖子,开始没完没了地哭。
终于,她一边哭一边说今晚因为什么而不开心了。原来,她那个破姐妹阿铃给她介绍的人竟然是一个台湾老头子,坐下来没多久就开始动手动脚。阿铃竟然还劝她,反正你是离过婚的人了,将就着跟了这个老头子算了。“我离婚了,是不是就比别人矮一截?我们为什么要离婚?”她一边哭着问我,一边掐着我的脖子。
我没有办法回答她的问题,因为我自己也不知道答案。虽然脖子被她掐得好痛,但是掐就掐吧,反正又掐不死我,以后不住一起了,想被她掐都没机会了。
终于我们都累了,彼此沉沉睡去。
醒来的时候,太阳已经出来了。我还抱着她,她还搂着我的脖子。
我不敢动,怕自己惊了她的梦,好像已经很多年没有这样的感觉了。两个人在一起时间越久,清晨醒来就越没有感觉。想想从前的日子,我们几乎都是在匆忙中醒来,一边彼此抱怨着对方,一边收拾东西赶着上班。我们之间,为什么会走到今天这一步?到底因为什么?
她也醒了。
醒来后,她忽然意识到什么,松开了抱我脖子的手,脸上有一抹羞涩,“早!”
我也慌忙松开抱她的手,赶忙下床。
“昨夜……”
“昨夜没什么,快起来洗漱吧,要不上班快迟到了。”
有了这一晚之后,我感觉我们的关系也发生了微妙的变化。下班的时候,我在路边看到有卖海棠糕的,想起这是她家乡的特产,随手就买了点。只是买完之后,我不知道自己是现在就回家,还是像从前一样晃悠着消磨时间。
“先生啊,这个东西新鲜的时候最好吃,时间长了,就不好吃了。”找钱时,小贩特地关照我。
我硬着头皮回到了家,她在做饭。
“嗯……嗯,我给你买了海棠糕。下班时候,刚好看到的。”我对着在厨房里忙碌的她支支吾吾地解释着。
她很开心地走了出来,拿起一块就吃了起来。“去洗手吧,饭菜都好了。”
面对桌子上的饭菜,我心里酸酸的。
数数日子,我在外面混饭吃已经有二十多天了。她做的菜,真香。
“吃吧。”
我拿起了碗筷。
……
“慢慢吃,别噎着。来,喝碗汤。”她给我盛了一碗汤。
“这个菜挺新鲜的,吃一块。”她给我夹了一筷子。
“你最近瘦得很厉害,以后别在外面吃了,又贵又没营养,还是回家来吃吧。”
……
吃完了饭,我抢着收拾。
“算了,结婚这么久了,也没见你收拾过,还是我来吧。”
“我……”
“没事,我也收拾习惯了。你去看电视吧,我一会就收拾好了。”
我给自己沏了一杯茶,又给她沏了一杯。
她洗刷完毕,在我身边坐了下来。我赶紧将沏好的水端了过去。“你想看什么节目?”我拿着遥控器问她。
“你今天怎么这么客气啊?客气得我都不习惯了。”她咯咯地笑了起来。
我不好意思地摸摸我的头。“我以前,很坏吗?”
“坏?没人说你坏啊,只是你比较懒罢了。现在咱们都离婚了,你却忘了自己的衣服要自己洗。你也不想想,每天的干净衣服,是谁给你洗的?以后,自己要学会照顾自己啊!”
“离婚……是的,我们离婚了。”我默然不再言语。
她也陷入沉默。
那晚,我们坐在一起看了三个小时的电视,没有说话,没有换台,只是我不记得自己看了什么。
三十天的时间很快就到了。这天,她吃完饭告诉我,她已经找好房子,等星期天就可以搬家了。我的心立即变得很空很空。
星期六很快就来了,我坐在沙发上看她来来去去地收拾东西。
屋内显得很乱,但感觉空气是静止的。我们都没有说话。她会留下什么?我心里突然很想知道。但是,我没问。
“你慢慢收拾,我出去走走。”没等她回答,我就走出了门。
屋外的天空很蓝,多像三年前放风筝的那天啊。屋外的阳光很轻,三年前是否同样温暖过我们呢?屋外的情侣很多,我们也这样甜蜜地走过三年……
“妈妈,叔叔在哭。”身边的一个小孩子叫了起来。
我擦了擦眼睛,勉强一个笑容出来,“叔叔是被沙子迷进眼了。”
我对自己笑了笑,找了一个方向随便走了下去。
一直到傍晚,我还在外面闲逛。
手机响了,是她的短信:“饭菜已做好,我们最后吃一次饭吧。”
我马上跑回家里。
房间里没有开灯。她在餐桌上点了蜡烛,菜很丰盛,还有一瓶红酒。
她穿的是结婚时我给她买的一条黑色蕾丝裙子。
“我们结婚三年了,都没在一起喝过酒。过了今晚我就走了,我们喝一次好吗?”她一边给我倒酒一边说。“干。”我举起了杯子。
我们没有再多说什么,还能说什么呢?再多的话都改变不了明天的结局。算了,不要去想了,喝酒吃菜。最好是喝醉了,等我醒来的时候,她已经离开了。她离开,不是我一直期望的吗?我不是一直讨厌这个啰嗦的臭女人吗?我应该高兴啊!以后看球赛不管多晚都不会有人在我身边训斥我,叫我去睡觉了,多爽啊!我不洗脚就上床也没有人嫌我脏了,多美啊!我没有理由不开心啊!只是,为什么这酒喝在嘴里是苦涩的?
“你的衣服我都整理好放在橱子里了,内衣和袜子在床下面抽屉里,你的胃不好,以后要是一定要熬夜,记得给自己搞点东西吃。冰箱里我买了一些食品,你自己要慢慢学会做饭,不要总在外面吃。吃饭也要注意营养,别总是凑合。咱们的存折我放在床头柜里了,上面还有三万多块钱。咱们家每个月的电话费、煤气、水电费都在街角的银行交,就是这个卡,你收好,别到时候找不到。这个月给你父母汇的钱我也已经汇出去了,以后你要记得按时给他们汇钱,没事多打电话回家,爸妈都挺惦记你的。我今天给他们打了电话了,爸爸最近腿上的风湿有点厉害,上次我们给他买的药恐怕快吃完了,这个是药名和地址,你明天记得买一些寄回去。我没告诉他们我们已经离婚了,你以后有机会想好了再和他们说。不管你爸爸说你什么,记得不要让他生气。这是我给爸妈买的毛衣,你明天一起寄回去。”
她在一样一样地交待着,我希望我自己每件都能记得,但是又希望我什么都不要记得。我突然感觉自己很白痴。我在这个家里生活了三年,但是现在我却感到非常陌生。我开始害怕,我不知道我一个人是否有能力生活下去。
“这是咱们结婚的时候,妈给我的戒指。这个是你们传家的东西,我不带走了,请向妈妈说句对不起。”一枚碧绿色的翡翠戒指放在我的面前,它的光好强,让我的眼睛开始刺痛。“我带走的东西是按照我们离婚时候协商好的。”
她站了起来,四下看了看,笑了笑说,“你有什么不明白的要问吗?”
我还有什么不明白的要问呢?我什么都不知道,我只知道在我最想她留下来的时候,她却要走了。她一直说我不像个男人,我一直觉得这是她对我的侮辱。我现在终于明白,我的确不是一个男人,我像一个孩子一样肆意挥霍着她给我的幸福和安定。
“要是你没有事情要问的话,我们休息吧。今晚你睡房间我睡沙发。明天一早搬家公司的人就来搬家了,我在这多住了一个月,够麻烦你了,明早你在房间里睡,可以少打搅点。”
我不知道自己到底该怎么做,只是木然地对她点了点头,走进了房间,关上了门。
我看了一夜的天花板。
清晨的阳光照了进来。
我听到敲门声,我听到搬东西声,我听到她叫工人“轻点”。只是,我听不到自己的心跳声。
她敲了敲门,我没动。
“我走了,以后自己照顾自己。”她没有进来,隔着门声音低低地说。
我听到了关门声。
我没有再听到任何声音。
为什么我们要离婚?为什么我们要离婚?
“有空记得回来玩啊!”我听到邻居的声音。
你还是不是男人?一个声音在我心里对我吼。
你是男人,你现在去追她回来,还来得及!
我翻身下床,跑到窗边对着下面喊道:“等一下,先别走!”
我冲下了楼,我要做一个男人!
她站在车边,微笑地看着我,半晌轻轻地说:“谢谢你下来送我。”她的眼角有泪。
“你走了,我怎么办?”我抓住她的胳膊问她。
“我们已经离婚了。”
“我现在不要你走,我不能没有你。”我对着自己吼,对着她苦苦哀求。
“离婚是你提的。”
“我知道自己错了,求你原谅我一次,好不好?我求你了!”
“你是男人,怎么可以在这么多人面前哭?”她用手给我擦眼泪,她的手指好冷。
“只要你回来,我不要做男人!”
“我们在一起前后六年了,结婚后你就没再关心过我,没问过我要什么,没问过我想什么。我对你说话,你觉得唠叨;我要你安心家庭,你说我生活没有情趣。你知道吗?我和你生活三年,我也很累。我是爱你,但是你知道吗,这份爱我维持得好辛苦!”
“对不起,再给我一次机会,让我们重新来过,好不好?我错过了很多,我不想再继续错下去。你是爱我的,爱我就不要走,好不好?”我心里好痛,为什么到最后我才说出这样的话?
“我们离婚了。你要我回来,除非你现在再次向我求婚。”她的脸上有一种奇异的神情。
“好,我求婚。我求你再次嫁给我!”我单腿跪下,向她第二次求婚。
“求婚要有玫瑰,要有戒指,你有吗?”
玫瑰!戒指!天啊,我现在到哪里找?
“我们家二丫头昨晚刚收到一束玫瑰,傻小子你快去拿。”邻居大爷冲我直叫。我又想起那个家传的翡翠戒指!
我冲上了楼,闯进邻居家,拿了那束玫瑰就出来。我回到自己的家,可是我却怎么也找不到那枚翡翠戒指!
为什么?为什么上天要如此刁难我?戒指,你到底在哪里?
我在慌忙地四处翻找,她上了楼。在她的身后,跟着一大帮看热闹的邻居。
我一把抓住了她,将玫瑰塞进她的怀里,“我找不到戒指,求你先答应我好不好?”
她噗哧一声笑了出来,从包里拿出一个黑色的丝绒盒子。慢慢打开,一枚闪烁温润光亮的翡翠戒指端立在那里。
“对不起,我好像多拿走一样东西。”她扑到我的怀抱里笑了起来。
得不到的总是最美好的
可是,
亲爱的,
如果得到,拥有
会知足吗?

十一月 6th, 2009

Posted In: 未分类

一个苦者找到一个和尚倾诉他的心事。
他说:“我放不下一些事,放不下一些人。”
和尚说:“没有什么东西是放不下的。”
他说:“这些事和人我就偏偏放不下。”
和尚让他拿着一个茶杯,然后就往里面倒热水,一直倒到水溢出来。
苦者被烫到马上松开了手。
和尚说:“这个世界上没有什么事是放不下的,痛了,你自然就会放下。

生活就是这样,痛到心里了就会麻木,一切都很平静,平静的像水一样

十一月 4th, 2009

Posted In: 未分类

今天在公司加班到七点半才回家,宝宝在等我,回家吃点东西,然后就打开电脑开始测试程序,宝宝洗完头发我也测试的差不多了,本打算给他在接着讲数据库的基本知识,宝宝说我不喜欢数据库,我喜欢FLASH这样的好玩的,即然宝宝喜欢,那就给她讲一下,结果宝宝开始说FLASH怎么怎么做,说原理都知道,我正奇怪了,宝宝说你以前讲过的吗,原来我以前不经意讲的东西宝宝全记在心里。
然后就打开我周六给宝宝改的一个FLASH,开始给她讲,宝宝看的很认真,然后又讲了一些帧与帧之间的切换,形状的动画和补间动画,明天会接着给宝宝讲后成的东西,我要让宝宝在最短的时间学会FLASH,就像三天让他学会DIV+CSS一样,讲了三天,自己写了一个页面出来,比较强吧,好了,不写了,晚安大伙

十一月 3rd, 2009

Posted In: 未分类

北京今天下雪了,天很冷,晚上去看了宝宝,好几天没见着宝宝了,然后去给宝宝买了个白色的帽子,天凉,宝宝常头痛,让她带着会舒服点,不要在头着头,然后又不舒服,就让她试了下带着帽子然后在带着我给她买的眼镜,真酷,可惜的是就是没拍张照片来晒下,晚安了大伙,每天都记录一下

十一月 2nd, 2009

Posted In: 未分类

无觅相关文章插件,快速提升流量