当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

Win32Asm教程[VC/C++编程]

赞助商链接



  本文“Win32Asm教程[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

这是我的Win32Asm教程.它老是成立中,但我会不断地增添内容.通过上面的next和prev链接,你可以转到背面和前面一页.

介绍

先来对这个教程做个小介绍.Win32Asm不是一个非常风行的编程语言,并且只有为数不多(但很好)的教程.大大都教程都集合在编程的win32部份(比方,winAPI,利用尺度Windows编程技术等),而不是汇编语言本身,比方伪代码(opcodes),存放器(registers)的利用等.固然你能在其他教程中找到这些,但那些教程普通是注释Dos编程的.它当然可以帮你学汇编语言,但在Windows中编程,你不再需求理解Dos中止(interrupt)和断口(port)In/our函数.在Window中,WindowsAPI供应了你可在你的程序中利用的尺度功效(function),背面还会对此有更多内容.这份教程的目标是在注释用汇编编Win32程序的同时学习汇编语言本身.

1.0汇编语言

汇编是创造出来替换原始的由处理器理解的二进制代码的.好久从前,但是尚没有任何高级语言,程序是用汇编写的.汇编代码直接描写处理器可以履行的代码,比方:

add eax,edx

这条指令-add-把两个值加到一同.Eax和edx被称为存放器,它们可以保存值在处理器内部.这条代码被转换为66 03 c2(16进制).处理器读这行代码,并履行它所代表的指令,像C等高级语言把它们自己的语言翻译为汇编语言,而汇编程序又把它转换为二进制代码:

C 代码>> C编译器 > >汇编语言>>汇编器>>原始输出(十六进制)

a = a + b;add eax, edx66 03 C2

(注意该处的汇编语言的代码被简化了,实际输出决意于C代码的上下文)

1.1-为什么?(Why?)

既然用Asm写程序更艰难,为什么你用Asm而不是C大概别的什么??-汇编产生的程序更小并且更快.在有人工智能的高级编程语言中,编译器要产生输出代码变得(比汇编)更艰难.编译器必须指出最快(或最小)的方法产生汇编代码,并且固然编译器变得越来越好,你自己来写(汇编)代码(包含可选的代码优化)能生成更小更快的代码.但是,当然,这比高级语言难多了.还有另一个与某些利用运行时dll的高级语言差别的地方,它们在大大都时运行杰出,但有时由于dll版本(dll hell)产生问题而用户老是要安装这些Dll.关于Visual C++,这不是一个问题,它们是与Windows一同安装的.而Visual Basic乃至部把自己的语言转换为汇编语言(固然5版本及以上作了一些,但不完好).它高度依靠msvbvm50.dll-Visual Baisc虚拟机.由VB产生的exe文件仅仅存在简单的代码和很多对这些dll的调用.这就是vb慢的缘由.汇编是全部中最快的.它仅仅用系统的dll像Kernel32.dll, User32.dll等.


  以上是“Win32Asm教程[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • IIS配置PHP呈现1%不是有效WIN32利用程序
  • <b>nginx win32 版本静态文件测试 (Windows环境)</b>
  • Win32版与Unix版MySQL对比
  • Win32平台下运行的Mysql的一些特点
  • com.ms.win32包
  • JDK1.4下实现访谒WIN32注册表
  • 令Win32利用程序跳入系统零层
  • Win32Asm教程
  • Win32下两种用于C++的线程同步类(下)
  • <b>Win32下两种用于C++的线程同步类(上)</b>
  • 深化浅出Win32多线程程序计划综合实例
  • Win32调试接口计划与实现浅析
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .