自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 菜单和加速键

1.菜单的定义在资源

2014-11-15 11:33:23 626

原创 在窗口间传递数据

对于不同应用程序之间的窗口中可以互发消息 方法是通过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关注的人

提示
确定要删除当前文章?
取消 删除