_masta_的 Win95 汇编教程 Part 0

该博客是基于Win95的汇编教程,介绍了所需工具,如TASM 5.0、API参考手册等,指出与DOS汇编的不同在于使用API而非中断。通过“Hello World”示例,详细讲解了调用MessageBoxA函数显示消息框的代码实现,包括参数设置和源程序编写。

   -         
     -----=========-----
      -------==========================================----------
--------=====   _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,下一课见 ...

给定的参考引用中未提及masta有限元全流程的相关内容,以下是masta有限元全流程的通用介绍: ### 前期准备 在进行masta有限元分析前,要收集分析对象的详细信息,如齿轮的几何参数(模数、齿数、齿宽等)、材料特性(弹性模量、泊松比、密度等)、工况条件(转速、扭矩、载荷分布等)。同时,安装好masta软件,并确保其版本能满足分析需求。 ### 模型创建 打开masta软件,依据收集的几何参数,利用软件的建模工具构建齿轮系统的三维模型。这包括定义齿轮的形状、尺寸、位置关系,以及轴、轴承等相关部件的模型。准确设置各部件的材料属性,从软件材料库中选取合适材料,或自定义材料特性。 ### 边界条件设置 根据实际工况,对模型施加边界条件。例如,约束轴的自由度,模拟轴承的支撑方式;施加扭矩、转速等载荷,模拟齿轮的实际工作状态。确保边界条件的设置符合实际情况,以保证分析结果的准确性。 ### 网格划分 对创建好的模型进行网格划分,将连续的实体模型离散成有限个单元。合理设置网格密度和单元类型,在关键部位(如齿面、齿根等)适当加密网格,以提高分析精度。同时,要平衡网格数量和计算效率,避免因网格过于密集导致计算时间过长。 ### 求解设置 选择合适的求解器和分析类型,如静态分析、动态分析等。根据分析需求,设置求解参数,如求解精度、时间步长等。检查模型设置的完整性和正确性,确认边界条件、材料属性、网格划分等设置无误后,提交求解任务。 ### 结果分析 求解完成后,利用masta软件的后处理功能查看分析结果。这包括应力分布、应变分布、变形情况、疲劳寿命等。通过对结果的分析,评估齿轮系统的性能和可靠性,判断是否满足设计要求。 ### 优化与验证 根据结果分析,若发现齿轮系统存在问题或不满足设计要求,对模型进行优化。这可能涉及修改几何参数、调整材料属性、优化载荷分布等。优化后,重新进行分析,验证优化效果,直至满足设计要求。 ### 报告生成 将分析过程和结果整理成详细的报告,包括模型介绍、边界条件设置、求解结果分析、优化建议等内容。报告应具有清晰的逻辑结构和可视化图表,以便于他人理解和参考。 ```python # 这里是一个简单示意的伪代码,实际masta有限元分析并非用Python实现 # 以下仅为模拟流程步骤 def masta_finite_element_analysis(): # 前期准备 collect_data() install_software() # 模型创建 create_3d_model() set_material_properties() # 边界条件设置 apply_boundary_conditions() # 网格划分 mesh_generation() # 求解设置 select_solver() set_solve_parameters() submit_solve_task() # 结果分析 view_results() evaluate_performance() # 优化与验证 optimize_model() re_analyze() # 报告生成 generate_report() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值