- 博客(53)
- 资源 (1)
- 收藏
- 关注
转载 java中的事件监听
Java中的事件监听是整个Java消息传递的基础和关键。牵涉到两类对象:事件发生者和事件监听者。事件发生者是事件的起源,它可以是一个按钮,编辑框等。事件监听者就是事件的接受者,如果要想接收某个事件,它必须对该事件的发生者说一声:嗨,哥们,有事吱一声。这个过程相当与在事件发生者那儿注册了一下。当事件发生者真的有事件发生时,就会对所有对该事件注册的所有监听者送一份参考消息说:有内幕,有内幕!!事件监听
2014-11-29 20:01:04 481
原创 3. HelloWin
/*------------------------------------------------------------ HELLOWIN.C -- Displays "Hello, Windows 98!" in client area (c) Charles Petzold, 1998 ------------------------------
2014-11-26 21:02:01 426
原创 Unicode字符的引入--支持Unicode和Ascii编码的程序
/*----------------------------------------------------- SCRNSIZE.C -- Displays screen size in a message box (c) Charles Petzold, 1998 --------------------------------------------
2014-11-16 22:48:13 647
原创 1.1 起步 一个简单的win32程序
/*-------------------------------------------------------------- HelloMsg.c -- Displays "Hello, Windows 98!" in a message box (c) Charles Petzold, 1998 --------------------------
2014-11-16 22:05:06 516
原创 浮点型变量
//c++float fFloat=(float)argc;//汇编后0040e9d8 fild dword ptr [ebp+8]0040e9db fst dword ptr [ebp-4]取出argc到ST(0)中,并将它放到 fFloat中//c++printf("%f",fFloat);//汇编后0040e9de sub esp,80040e9e1 fstp
2014-11-16 18:33:37 878
原创 在窗口间传递数据
对于不同应用程序之间的窗口中可以互发消息 方法是通过SendMessage 或者PostMessage 函数,用法为:invoke PostMe
2014-11-14 18:20:36 483
原创 FirstWindow
窗口程序的运行过程这是主程序的结构流程:1.得到应用程序的句柄 GetModuleHandle2.注册窗口类 RegisterClassEx 注册前先填写RegisterClassEx的参数WNDCLASSEX结构3.建立窗口 CreateWindow4.显示窗口 ShowWindow5.刷新窗口客户区 UpdateWIndow6.进入无限的消息获取和处理的循环。
2014-11-14 17:45:19 578
原创 makefile 文件样例
#namke工具的描述文件例子EXE = Test.exe #指定输出文件OBJS = x.obj \ y.obj #需要的目标文件RES = x.res #需要的资源文件LINK_FLAGS= /subsystem:windows #链接选项ML_FLAG= /c /coff
2014-11-09 16:59:55 410
原创 Str_compare proc Str_length PROC Str_copy PROC
;Str_CompareINVOKE Str_compare,ADDR string1,ADDR string2Str_compare PROC uses eax edx esi edi, string1:ptr byte string2:ptr byte;;compare two strings;return nothing,but the zero and carry fla
2014-11-08 14:12:16 696
原创 Comparing Strings
TITLE Comparing StringsINCLUDE Irvine32.inc.datasource BYTE "MARTIN "dest BYTE "MARTINEZ"str1 BYTE "Source is smaller",0dh,0ah,0str2 BYTE "Source is not smaller",0ah,0dh,0.codemain P
2014-11-08 13:43:02 688
原创 Swap Procedure Example
;TITLE Swap Procedure ExampleINCLUDE Irvine32.incSwap PROTO,pValX:PTR DWORD,pValY:PTR DWORD.dataArray DWORD 10000h,20000h.codemain PROC ;Display the array before exchange mov esi,OFFSET Ar
2014-11-07 19:39:16 520
原创 INVOKE ADDR PROC PROTO
INVOKE ADDR PROC PROTOINVOKE 过程名[,参数列表]eg: push TYPE array push LENGTHOF array push OFFSET array call DumpArray 等价于: INVOKE DumpArray,OFFSET array,LENGTHOF array,TYPE arrayADDRADDR操作符
2014-11-07 19:04:15 820
原创 ;递归求和;递归计算阶乘
;递归求和 INCLUDE Irvine32.inc .code main PROC mov ecx,5 mov eax,0 call CalcSumL1: call WriteDec call Crlf exitmain ENDP;------------------------------------------------------CalcSum PROC;C
2014-11-07 18:07:03 1265 1
原创 伪指令 LOCAL ENTER LEAVE
伪指令ENTERENTER指令自动为被调用过程创建堆栈框架,为局部变量保留堆栈空间并在堆栈空间上保存EBP执行动作为:1.在堆栈上压入ebp2.把ebp设为堆栈的基指针3.为局部变量保留空间 格式: ENTER numbytes,nestingleveleg: MySub PROC enter 8,0等价于MySub PROC
2014-11-07 17:44:10 892
原创 ;lea 返回间接操作数的偏移地址
;;;void makeArray();{; char myString[30];; for(int i=0;i<30;i++); myString[i]='*';;};;----------------------------------------------------;lea 返回间接操作数的偏移地址;;makeArray PROC push ebp
2014-11-07 17:00:48 738
原创 ;ArrayFill 使用16位的随机整数序列填充一个数组
;ArrayFill 使用16位的随机整数序列填充一个数组;该过程接收两个参数 第一个参数是数组的偏移 第二个参数指示数组长度的整数;第一个参数通过传递引用方式传递,第二个参数通过传值方式传递.datacount=100array WORD count DUP(?).codepush OFFSET arraypush COUNTcall ArrayFillArrayF
2014-11-07 16:55:45 848
原创 ;以表格驱动分支选择
;以表格驱动分支选择;This program contains a table with offsets of procedures;it uses the table to execute indiret procedure callsINCLUDE Irvine32.inc.dataCaseTable BYTE 'A' ;查找值 DWORD Process_A
2014-11-07 16:06:55 523
原创 常用操作对cpu标志位的影响
AND,OR,XOR 指令总是清楚溢出标志和进位标志,它依据目的操作数的值修改该符号标志、零标志和奇偶标志。NOT 不影响任何标志TEST不修改目的操作数,其他与AND相同CMP 对目的操作数进行假减法 修改 溢出标志 符号标志 零标志 进位标志 辅助进位表示 和 奇偶标志stc可以设置进位标志 clc清楚进位标志
2014-11-06 20:13:51 848
原创 整数求和程序的流程设计和实现
流程设计如下:TITLE Integer Summation Program ;This program prompts the user for three integers;stores them in an array,calculates the sum of the;array,and displays the sumINCLUDE Irvine32.inc
2014-11-06 19:32:11 906
原创 一个编写过程的例子 ArraySum PROC
;TITLE INCLUDE Irvine32.inc.dataarray DWORD 10000h,20000h,30000h,40000h,50000htheSum DWORD ?.codemain PROC mov esi,OFFSET array mov ecx,LENGTHOF array call ArraySum mov theSum,eax exitma
2014-11-06 18:57:55 484
原创 ;TITLE Reversing a String
;TITLE Reversing a StringINCLUDE Irvine32.inc.dataaName BYTE "Abraham Lincoln",0nameSize=($-aName) -1.codemain PROC;----push aName mov ecx,nameSize mov esi,0L1: movzx eax,aName[esi] p
2014-11-06 18:35:46 458
原创 Test #3:性能度量
TITLE LINK LIBRARY Test #3:性能度量;计算执行嵌套循环用去的时间INCLUDE Irvine32.incOUTER_LOOP_COUNT=3.datastartTime DWORD ?msg1 BYTE "Please wait...",0dh,0ah,0msg2 BYTE "Elapsed milliseconds:",0.codemai
2014-11-06 18:07:58 446
原创 Test #2:Random
TITLE LINK LIBRARY Test #2(TestLib2.asm);测试Irvine32.inc 链接库中的随机数生成过程INCLUDE Irvine32.incTAB=9.codemain PROC call Randomize ;初始化随机数发生器 call Rand1 call Rand2 exitmain ENDPRand1 PROC ;
2014-11-06 17:16:39 464
原创 test #1: Integer I/O
TITLE Library test #1: Integer I/O;tests the Clrscr,Crlf,DumpMem,ReadInt,;SetTextColor,WaitMsg,WriteBin,WriteHex;and WriteString proceduresINCLUDE Irvine32.inc.dataarrayD DWORD 1000h,2000h,3000
2014-11-06 16:46:02 558
原创 ;复制字符串
;复制字符串TITLE COPY A STRING.datasource BYTE "this is the source string",0target BYTE SIZEOF source DUP(0),0.CODEmain PROC mov esi,0 mov ecx,SIZEOF sources: mov al,source[esi] mov target[esi]
2014-11-06 09:18:12 403
原创 ;整数数组求和
;整数数组求和TITLE SUMMING AN ARRAYINCLUDE Irvine32.inc.dataintarray WORD 100H,200H,300H,400H.codemain PROC mov esi,offset intarry mov ecx,LENGTHOF intarry mov ax,0s: add ax,[esi] add esi,TYPE
2014-11-06 09:12:00 528
原创 CPU 是如何检测溢出的
CPU 是如何检测溢出的在加法和减法运算完成后,运算结果的最高有效位向高位的进位值(也就是CF)与到最高位有效位的进位制异或,其结果放到溢出标志中。例如8位二进制数1000 0000 和1111 1110 相加,第六位向最高有效位(第七位无进位),但第七位向高位有进位(CF=1)这里都是补码:1000 00001111 1111-------------
2014-11-05 20:46:58 2144
原创 外中断 及 动手修改int9键盘中断例程 小例子
端口的读写端口地址范围 0~~65535命令in outin al,60h ;从60端口号读入一个字节到alout 20h,al ;将20h端口的字节输出到al中端口读写只能使用 al,ax0~255端口可以直接用立即数访问 256~~~65535端口读写时,端口号放在dx中mov dx,3f8hin al,dxout dx
2014-11-04 18:17:08 1266
原创 8086内中断
8086的终端向量表存放在 0000:0000~0000:03FF 共1024个单元 每个中断向量4个字节高地址存放段地址,低地址存放偏移地址。8086CPU收到中断信息后,引发的中断过程。1.从中断信息中取得中断类型码2.标志寄存器入栈3.设置标志寄存器的第八文TF和第九位IF值为04.cs,ip 一次入栈6.从中断类型码m 在地址m*4和m*4+
2014-11-04 17:10:41 663
原创 ;用7ch中断例程 完成loop指令的功能
;用7ch中断例程 完成loop指令的功能;;loop s ;:;cx=cx-1;jcxnz s;举例 在屏幕中间显示80个!assume cs:codecode segmentstart: mov ax,0b800h mov es,ax mov di,150*12 mov bx,offset s-offset se mov cx,80s: mov b
2014-11-04 17:06:46 1313
原创 ;编写安装中断7ch的中断例程 2 字符串转化为大写
;编写安装中断7ch的中断例程;功能: 将一个全是字母,以0结尾的字符串转化为大写;参数: ds:si指向字符串首地址;将data段中的字符串转化为大写;安装程序如下assume cs:code;编写实现求平方功能的程序;安装程序,将其安装在0:200处;设置中断向量表code segmentstart: mov ax,cs mov ds,ax mov si,of
2014-11-04 16:43:19 914
原创 ;编写安装中断7ch的中断例程
;编写安装中断7ch的中断例程;功能: 求一word型数据的平方;参数 (ax)=要计算的数据;返回值 dx ,ax 中存放结果的高16位和低16位。;应用举例:求2*3456^2assume cs:code;编写实现求平方功能的程序;安装程序,将其安装在0:200处;设置中断向量表code segmentstart: ; mov ax,cs mov ds,ax
2014-11-04 16:32:03 1070
原创 ;动手制作do0程序
;动手制作do0程序assume cs:codecode segmentstart: ;do0安装程序 mov ax,cs mov ds,ax mov si,offset do0 mov ax,0 mov es,ax mov di,200h mov cx,offset do0end-offset do0 cld rep movsb ;设置中断向量0 mov
2014-11-04 16:11:06 895
原创 标志寄存器相关
ZF 判断结果是否等于0 结果为0时ZF=1 结果不为0时ZF=0PF 判断结果中1的个数是否为偶数 如果1的个数为偶数 PF=1,1的个数为奇数表示PF=0SF 判断结果是否为负数CF 判断(无符号运算)是否产生进位,借位 OF 判断(有符号运算)是否产生溢出,上溢出,下溢出adc 带进位的加法 adc ax,bx ax=ax+bx+CFsbb 带借位
2014-11-04 11:30:01 541
原创 ;用串传送指令 将data段中的第一个字符串复制到它后面的空间
;用串传送指令 将data段中的第一个字符串复制到它后面的空间assume ds:data,cs:codedata segment db 'Welcome to masm!' db 16 dup(0)data endscode segment mov ax,data mov ds,ax mov si,0 mov di,16 mov cx,16 cld r
2014-11-04 11:24:41 1029
原创 条件判断je jnb
;判断data中值为8的字节个数assume ds:data,cs:codedata segmentdb 8,11,8,1,8,5,54,38data endscode segmentstart: mov ax,data mov ds,ax mov bx,0 mov ax,0 mov cx,8s: cmp byte ptr [bx],8 jne next inc a
2014-11-04 11:14:57 672
原创 ;将data中的以0结尾的字符串转化为大写 使用栈避免寄存器冲突
;将data中的以0结尾的字符串转化为大写assume cs:codedata segment db 'word',0 db 'unix',0 db 'wind',0 db 'good',0data endscode segmentstart: mov ax,data mov ds,ax mov bx,0 mov cx,4s: mov si,bx call ca
2014-11-04 09:14:31 741
原创 ;将data中的字符串转化为大写
;将data中的字符串转化为大写assume cs:codedata segment db 'conversation'data endscode segmentstart: mov ax,data mov ds,ax mov si,0 mov cx,12 call capital mov ax,4c00h int 21hcapital: and byte pt
2014-11-04 08:57:01 915
原创 ;分析一个奇怪的程序 jmp short s
;分析一个奇怪的程序 assume cs:codesgcodesg segment mov ax,4c00h int 21hstart: mov ax,0s: nop nop mov di,offset s mov si,offset s2 mov ax,cs:[si] mov cs:[di],axs0: jmp short ss1: mov ax,0
2014-11-03 22:49:27 871
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人