分享
 
 
 

_masta_的 Win95 汇编教程 Part 0

王朝system·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

-

-----=========-----

-------==========================================----------

--------===== _masta_的 Win95 汇编教程 Part 0 =====---------

-------==========================================----------

--==介绍==--

Hi, 当我在网络上苦苦寻觅基于 Win95 的汇编教程而一无所获时,我决定向大家

贡献出一点我自己的东西,并希望能够抛砖引玉。

--==我们需要什么?==--

1. 大脑 ;)

2. 一台装有 Win95 的计算机。(有一颗 INTEL 兼容的CPU)

3. TASM 5.0 (有 Tlink, 库文件, 等等 ...)

4. 一本 API 参考手册 (Win32.HLP) (PS: Sendfree说用 MSDN 就可以!)

---> 这些东西都能够从网上找到

[>Cracking.home.ml.org<]

--==预备知识==--

假设你已经具有汇编语言的基本知识了,这是一个 Cracker, Coder(变态的追求

Speed 的家伙) 所应当具备的。

-==我们要注意什么?==--

(和DOS的汇编相比)最主要的不同就是我们要使用 API 而不再是中断了。

API 函数执行以前我们要把参数 PUSH 到堆栈里面。它的运行有点像

C语言(最後一个参数先放进去,然后是倒数第二个...)...

此外,还有大小写的区别,一定不要搞错啊:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

要这样写: "MessageBoxA" <-------------> 而不是!!!: "messageboxa"

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

--==在这篇教程中我们能够学到什么?==--

很简单!: 最流行的 "Hello World" -的显示 :-).

--==HELLO WORLD !!==--

大家都看到了,只有两个单词...

先想想看,怎么把它显示在屏幕上?我所作的仅仅是调用一下 MessageBox,

我们要充分利用 win95 的 32位的威力嘛,命令就变成了:"MessageBoxA".

翻开手边的 API 参考手册吧,开始查找 "MessageBoxA",查询的结果应该是:

---------------------------------------------------------------------

int MessageBox(

HWND hWnd, // 所属窗口的 handle (句柄)

LPCTSTR lpText, // 消息框中字符串的地址

LPCTSTR lpCaption, // 消息框标题的地址

UINT uType // 消息框的 style (风格样式)

);

---------------------------------------------------------------------

- 因为我们没有窗口,所以就把 "hWnd" 设为 0

- "lpText" 所要显示的文本的偏移地址 (放在哪里)

- "lpCaption" ---> 标题的偏移地址

- "uType" 设置也为 "0",意思是显示一个很普通的消息框,

就带着一个 OK 按钮的那种。(0就是 mb_ok 的类型码)

现在看看我们的源程序...

;-------------------------------START--------------------------tut.asm

; 设置一下编译器

.386P

Locals

jumps

.Model Flat ,StdCall

mb_ok equ 0 ;设置 mb_ok 为 "0"

hWnd equ 0

lpText equ offset text ;设置一个指向文本的指针

lpCaption equ offset caption ;设置一个指向标题的指针

; 声明一下所用到的 API 函数

extrn ExitProcess : PROC ;关闭一个进程的过程

extrn MessageBoxA : PROC ;显示消息框的过程

; 从这里开始放我们的数据

.Data

text db "Hello World",13,10 ; 文本的第一行(带换行的)

db "_masta_ greets everybody who reads this tut",0

; 第二行, 以 "0" 作为结束

caption db "Hello",0 ;标题, 以 "0" 作为结束

; 从这里开始放我们的代码啦

.Code

Main:

; 向世界问好 :))

push mb_ok ;PUSH uType 的值

push lpCaption ;PUSH Caption 的指针

push lpText ;PUSH Text 的指针

push hWnd ;PUSH Masterhandle

call MessageBoxA ;CALL MessageBoxA

CALL ExitProcess ;结束程序

End Main ;代码结束,Main 是整个程序的进入点

;-----------------------------------END------------------------tut.asm

;----------------------------------START-----------------------make.bat

tasm32 /mx /m3 /z /q tut

tlink32 -x /Tpe /aa /c tut,tut,, import32.lib

;-----------------------------------END------------------------make.bat

你看到啦,这段代码很短,但是我希望它将成为你学习 Windows 的汇编的良好开端。

--==最后的话==--

这时我第一个Windows汇编教程,但不是最后的...

Ok,下一课见 ...

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有