汇编语言的高级语言特性

合集下载

高级语言、汇编语言及机器语言的区别

高级语言、汇编语言及机器语言的区别

计算机语言具有高级语言和低级语言之分。

而高级语言又主要是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。

低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。

机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。

高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如目前流行的java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,VC,易语言,中文版的C语言习语言等等,这些语言的语法、命令格式都不相同。

高级语言与计算机的硬件结构及指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。

但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。

所以汇编语言适合编写一些对速度和代码长度要求高的程序和直接控制硬件的程序。

高级语言、汇编语言和机器语言都是用于编写计算机程序的语言。

高级语言程序“看不见”机器的硬件结构,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件。

为此,一些高级语言提供了与汇编语言之间的调用接口。

用汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址。

机器语言(machine language)是一种指令集的体系。

这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。

机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指指令系统它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。

机器语言具有灵活、直接执行和速度快等特点。

一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如,操作码字段和地址码字段,其中操作码指明了指令的操作性质及功能,地址码则给出了操作数或操作数的地址。

机器语言汇编语言高级语言特点和区别

机器语言汇编语言高级语言特点和区别

机器语言汇编语言高级语言特点和区别机器语言、汇编语言和高级语言是计算机编程中常见的三种语言类型。

它们分别具有不同的特点和使用场景,在计算机编程领域起着重要的作用。

下面将对这三种语言进行详细介绍,并分析它们之间的区别。

一、机器语言机器语言是计算机唯一能够直接识别和执行的语言,它由一串二进制代码组成。

每个指令和数据在计算机内存中都有唯一的二进制表示形式,这些二进制指令被称为机器指令。

机器语言具有以下特点:1. 低级别:机器语言是最低级别的编程语言,它直接与计算机硬件进行交互。

每个机器指令对应着一项硬件操作,如加法、乘法等。

2. 难以理解和编写:机器语言使用二进制代码表示,对于人类来说非常难以理解和编写。

编写大型程序时,工作量极大且易出错。

3. 高效执行:由于机器语言直接操作硬件,因此可以实现高效的程序执行。

机器语言程序在执行速度上通常是最快的。

二、汇编语言汇编语言是一种使用助记符号(mnemonics)来代替机器语言指令的低级语言。

它在机器语言的基础上进行了简单的封装和抽象,使得程序员更容易理解和编写程序。

汇编语言具有以下特点:1. 直接与硬件交互:汇编语言提供了对机器指令的直接控制,程序员可以使用助记符号来编写程序,进而生成对应的机器指令。

2. 程序可读性较高:相对于机器语言,汇编语言使用助记符号,使得程序的可读性更高,对于程序员来说易于理解和维护。

3. 硬件依赖性强:不同的硬件平台上,汇编语言的指令集不尽相同,因此使用汇编语言编写的程序具有较强的硬件依赖性。

三、高级语言高级语言是相较于机器语言和汇编语言而言的更高级别的编程语言。

高级语言使用更接近自然语言的语法和结构,使得程序的编写更加简单和高效。

高级语言具有以下特点:1. 抽象性强:高级语言通过封装复杂的底层细节,提供了丰富的编程工具和库,使程序员能够更加关注问题的本质,而不必过多关注底层实现。

2. 可移植性好:高级语言编写的程序通常具有较好的可移植性,同一份代码可以在不同的平台上执行,只需对应的编译器将高级语言代码编译成相应的机器语言。

计算机语言分为哪三类

计算机语言分为哪三类

计算机语言分为哪三类计算机语言是一种用于人机交流的工具,它是人类与计算机之间互相理解和沟通的桥梁。

计算机语言可以分为三类:机器语言、汇编语言和高级语言。

一、机器语言(Machine Language)机器语言是计算机可以直接执行的二进制代码。

它由0和1组成的位模式,代表不同的计算机指令和数据。

机器语言的执行速度非常快,因为它与计算机的硬件结构直接交互。

但是,机器语言非常难以理解和编写,因为它对人类来说是不直观且晦涩的。

机器语言是计算机内部运行的编码方式,它通过编码和解码方式将人类可理解的指令翻译成二进制形式。

计算机的中央处理器(CPU)可以理解和执行机器语言。

机器语言非常底层,它与计算机的硬件细节紧密相关。

每种计算机架构都有自己的机器语言。

二、汇编语言(Assembly Language)汇编语言是对机器语言的符号化表示。

它使用助记符(mnemonic)代替了二进制的位模式,使得程序的编写和阅读更容易理解。

每个助记符都对应着一条机器语言指令,与机器语言一一对应。

汇编语言的编写和阅读相对机器语言来说更加容易,因为它使用了更加可读的符号表示法。

汇编语言的编译器将汇编语言程序翻译成对应的机器语言程序,然后由计算机执行。

通过使用汇编语言,程序员可以直接控制和操作计算机的硬件资源,如寄存器、内存等。

汇编语言相对机器语言来说更加高级,但仍然比较底层。

汇编语言程序的编写需要对特定计算机架构的硬件细节有一定的了解。

三、高级语言(High-level Language)高级语言是一种比较接近人类自然语言的计算机程序设计语言,它是在机器语言和汇编语言之上的更高级的抽象。

高级语言使用英语、中文等常用语言的单词和语法结构,使得程序的编写更加简单和易懂。

高级语言将复杂的底层计算任务封装成相对简单的语句和函数,使得程序员可以更加专注于算法和逻辑的实现,而不需要过多关注底层细节。

高级语言具有跨平台特性,可以在不同的计算机和操作系统上运行。

机器语言汇编语言高级语言的特点

机器语言汇编语言高级语言的特点

机器语言汇编语言高级语言的特点机器语言、汇编语言和高级语言是计算机编程中常用的三种语言级别。

它们各自具有不同的特点和优势,下面将详细介绍它们的特点。

一、机器语言的特点机器语言是计算机能够直接识别和执行的最低级别语言。

它是由二进制代码组成的,使用0和1表示指令和数据。

机器语言的特点如下:1. 可执行性强:由于机器语言是计算机硬件能够直接执行的语言,因此具有最高的执行效率和最快的执行速度。

2. 受限制性:机器语言是针对特定计算机体系结构编写的,不同类型的计算机使用的机器语言是不相同的,因此不具备通用性,可移植性较差。

3. 低层次:机器语言直接操作计算机硬件,对计算机内部结构的了解要求较高,编写和调试难度较大。

二、汇编语言的特点汇编语言是机器语言的一种符号表示形式,使用助记符号来代替二进制代码,便于程序员编写和理解。

汇编语言的特点如下:1. 可读性好:相比机器语言,汇编语言使用助记符号来代替二进制代码,可读性更高,更易于理解和维护。

2. 直接访问硬件:汇编语言可以直接访问计算机硬件,并使用低级别的指令控制计算机的操作。

3. 低层次:汇编语言仍然比较接近机器语言,需要对计算机硬件细节有一定了解,并且编写和调试相对困难。

三、高级语言的特点高级语言是相对于机器语言和汇编语言而言的,它是一种更接近自然语言的编程语言,可以用更抽象的方式描述算法和数据结构。

高级语言的特点如下:1. 可移植性好:高级语言不依赖于具体的计算机体系结构,将程序编写成高级语言的源代码后,可以在不同的平台上编译和执行,具有较好的可移植性。

2. 抽象性强:高级语言使用抽象的语法和数据结构,使程序的编写更加简洁和易于理解。

程序员无需了解底层硬件细节即可进行开发。

3. 程序开发效率高:高级语言提供了丰富的库函数和工具,简化了程序员的开发工作,大大提高了程序开发的效率。

总结:机器语言、汇编语言和高级语言各自具有不同的特点和优势,适用于不同的编程需求。

高级语言的定义

高级语言的定义

高级语言的定义高级语言是计算机科学中的一个概念,它是相对于低级语言而言的。

低级语言指的是与计算机硬件直接相关的语言,如机器语言和汇编语言。

而高级语言则是更加接近人类自然语言的一种编程语言。

高级语言的特点是抽象性强、可读性好、易于学习和理解。

它通过使用更接近人类自然语言的语法和结构,使得程序员能够更直观地表达自己的思想和逻辑,从而更容易编写出复杂的程序。

高级语言的出现和发展,极大地提高了程序开发的效率和质量。

与低级语言相比,高级语言的程序更易于维护、修改和重用,减少了编程过程中的错误。

同时,高级语言还提供了丰富的库和工具,使得程序员能够更加便捷地完成复杂的任务。

高级语言可以分为面向过程和面向对象两种不同的编程范式。

面向过程的高级语言主要关注解决问题的步骤和流程,通过函数和模块的方式来组织代码。

而面向对象的高级语言则更加注重将问题划分为对象,通过对象之间的交互和继承来解决问题。

常见的高级语言有C、C++、Java、Python、Ruby等。

这些语言都有自己的特点和应用领域。

例如,C语言是一种通用的高级语言,广泛应用于系统软件和嵌入式开发;Java语言则是一种跨平台的高级语言,适用于开发网络应用和大型软件系统;Python语言则以其简洁的语法和丰富的库而受到广泛关注,适用于各种领域的开发。

高级语言的使用需要编译器或解释器的支持。

编译器将高级语言的程序代码转换为机器语言,使得计算机能够直接执行;而解释器则一行一行地解释执行高级语言的程序代码。

不同的语言和平台有不同的编译器和解释器。

高级语言是计算机科学中的重要概念,它通过提供更接近人类自然语言的语法和结构,使得程序员能够更直观地表达自己的思想和逻辑。

高级语言的出现和发展,大大提高了程序开发的效率和质量,成为现代计算机编程的重要工具。

汇编语言的优缺点

汇编语言的优缺点

汇编语言的优缺点汇编语言作为一种低级编程语言,在计算机系统中扮演着关键的角色。

它具有一些独特的优点和不可忽视的缺点。

本文将讨论汇编语言的优缺点,并探讨它在现代计算机编程中的地位和应用。

一、汇编语言的优点1. 直接控制底层硬件:汇编语言允许程序员直接访问和控制底层硬件,包括处理器、内存和输入输出设备等。

这使得程序可以更加高效地利用计算机资源,提高系统性能。

2. 可以进行高度优化:由于汇编语言与底层硬件密切相关,程序员可以进行各种优化,包括减少指令数、提高指令执行速度和减小程序体积等。

这使得汇编语言编写的程序更加高效。

3. 具备良好的可移植性:与高级语言相比,汇编语言的可移植性较高。

虽然不同计算机架构下的汇编语言存在差异,但相对于相同计算机架构下的不同高级语言,汇编语言编译为机器码的过程相对简单,因此可以更容易地移植到不同的操作系统和硬件平台上。

4. 对硬件特性了解更深入:通过编写汇编语言程序,程序员对计算机硬件的工作原理和结构有更深入的了解。

这对于开发和调试底层系统软件、设备驱动程序等具有重要意义。

二、汇编语言的缺点1. 学习和使用门槛高:相对于高级语言,汇编语言的学习和使用门槛更高。

汇编语言的语法较为繁琐,需要对计算机体系结构有一定的理解。

此外,错误的汇编语言程序可能导致系统崩溃或不可预测的结果。

2. 开发效率低:由于汇编语言的编写过程相对繁琐,对程序员的编程技巧和经验要求较高,因此开发效率较低。

相对于高级语言,汇编语言编写相同的程序需要更多的时间和精力。

3. 可维护性差:汇编语言的代码可读性较差,语法冗长,不利于维护和修改。

当需求变化或程序出现问题时,修改汇编语言程序往往需要牵扯到底层细节,增加了维护的难度和风险。

4. 缺乏抽象能力:汇编语言缺乏高级语言的抽象能力,需要程序员手动处理各种底层细节,如内存管理、指针操作等。

相对于高级语言,汇编语言编写的代码更加冗长和复杂。

三、汇编语言的应用和发展尽管汇编语言的使用受到了高级语言的冲击,但它仍然在某些领域具有重要地位。

汇编语言的特点及应用

汇编语言的特点及应用

汇编语言的特点及应用汇编语言是计算机硬件能够理解和直接执行的一种底层语言。

汇编语言的特点主要包括以下几个方面:1. 低级别汇编语言是一种低级别的语言,它直接操作计算机硬件,包括寄存器、内存等。

相比高级语言,汇编语言更加接近计算机的硬件层面,因此执行效率更高。

2. 精确性汇编语言是一种非常精确的语言,每一条指令的含义都是确定的。

汇编程序员需要对硬件结构和指令集非常熟悉,才能够正确地编写程序。

3. 直接访问硬件汇编语言可以直接访问计算机硬件,包括CPU、寄存器、内存等。

这使得汇编语言可以完成一些高级语言无法完成的任务,比如编写操作系统和驱动程序等。

4. 易于嵌入其他程序汇编语言程序可以很容易地与其他程序嵌入在一起,使得程序的执行效率得到大幅提升。

这是由于汇编语言程序相比高级语言程序需要更少的处理器时间和内存空间。

汇编语言的应用非常广泛,主要体现在以下几个方面:1. 系统编程汇编语言可以直接访问和操作系统内存和硬件资源,因此在编写操作系统和驱动程序时非常常用。

2. 嵌入式系统嵌入式系统非常关注程序的执行效率和系统的稳定性,因此汇编语言常常被用于编写嵌入式系统程序。

3. 科学计算对于某些需要高效计算的科学计算问题,汇编语言可以显著提高程序的执行效率。

4. 维护和优化汇编语言可以直接访问计算机内存和硬件,因此在维护和优化程序时非常有用。

尽管汇编语言有着非常显著的优点,但也存在一些缺点。

首先汇编语言学习难度较高,需要掌握计算机硬件和指令集,且程序的开发和调试比高级语言更加繁琐。

其次,在大型软件开发中,使用汇编语言开发可能会导致代码量急剧增加,且代码可维护性和可读性下降,增加了软件开发成本。

因此将汇编语言与高级语言结合使用,是常见的软件开发模式。

程序设计语言的分类及特点

程序设计语言的分类及特点

程序设计语言的分类及特点:1)机器语言(第一代语言):由机器指令构成的语言称机器语言,即用二进制编码组成。

(如01110101)特点:○1费时费事○2难懂容易错○3只能在一种型号计算机上运行○4可以直接在计算机上运行2)汇编语言(第二代语言:50年代初期出现):用容易记忆的符号来代替机器指令中操作码和地址码的一种语言.(如:ADD 代表“+” SUB代表“-” MOV代表“传递”)特点:优点——(1)程序直观容易阅读;(2)编程工作量相对小;缺点——(1)只能在一种型号机器上运行;(2)不能直接在计算机上运行。

3)高级程序设计语言(第三代语言:50年代中期提出):高级程序设计语言是一种面向过程或者面向对象的语言,不面向机器,用一些符号或者数字对求解的问题或者现实世界进行描述。

特点:a) 直观、易写、易读、工作量小b) 不依赖于具体的机器c) 便于程序交流d) 不可直接在计算机上运行,经编译程序编译成机器语言后方可运行4)超高级程序设计语言(第四代语言):只需指出所求问题、输入数据及输出形式,就能得到输出结果,无需对算法和计算过程描述的语言。

特点:a) 语言功能强,效率高,使用方便;b) 开发应用系统修改方便、维护容易;c) 系统复杂,不但要编译还要生成程序。

1.三种翻译程序的定义解释程序:将高级语言写的源程序作为输入数据,但并不产生目标程序,而是边解释边执行源程序本身的一种程序。

编译程序:是将高级语言写的源程序翻译成目标语言(汇编语言、机器语言)的程序。

这种翻译过程称为编译。

编译系统:目标程序,再加上运行系统(如服务子程序、动态分配程序、装配程序等)就可获得计算结果,整个系统称为编译系统。

汇编程序:把汇编语言写的源程序翻译成机器语言的目标程序,这个翻译过程称为汇编。

4.编译基本过程编译过程基本包括以下几个步骤:1.词法分析 2.语法分析 3.语义分析 4.中间代码生成 5.修饰优化 6.生成目标程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言的高级语言特性现在写汇编语言,就象写结构化的高级语言一样,非常的方便。

不信?你看看下面写的小程序就知道啦,没有程序跳转,完全的结构化设计。

最后还附有 Glow Glove 总结的小篇文章,供大家学习参考。

;-------------------------------------------------------;例:计算一个数据的阶乘;若结果较小,可放在 EAX 寄存器;若结果较小,可放在 EDX:EAX 寄存器;文件名:7.asm.386.model flat,stdcalloption casemap:noneinclude windows.incinclude masm32.incinclude kernel32.incinclude user32.incincludelib masm32.libincludelib kernel32.libincludelib user32.lib.data?CharOut db 100 dup(?).codeOutEdxEax PROTO :DWORD ;将EDX:EAX中的数据转换成十进制输出字符串形式!OutEdxEax proc lpString ;比如:EDX=0,EAX=01234567H,则转换后的字符串为:-> '19088743',0mov edi,lpString ;指向存放结果的地址mov esi,lpStringmov ecx,10 ;转换成十进制.while eax!=0 || edx!=0push eaxmov eax,edxxor edx,edxdiv ecxmov ebx,eaxpop eaxdiv ecxadd dl,'0'mov [edi],dl ;存放结果inc edimov edx,ebx.endwmov BYTE ptr [edi],0;字符串以0为结尾dec edi.while edi>esi ;结果前变后,后变前!mov al,[esi]xchg al,[edi]mov [esi],alinc esidec edi.endwretOutEdxEax endpstart: ;程序开始xor eax,eax ;存放结果的寄存器EDX:EAX=1xor edx,edxinc eaxmov ecx,20 ;计算20的阶乘。

不能大于20,否则会溢出,结果将不再正确!.while ecx>0.if edx==0 ;结果在EAX中mul ecx.else ;结果在EDX:EAX中push edxmul ecxpop ebxpush eaxpush edxmov eax,ecxmul ebxpop edxadd edx,eaxpop eax.endifdec ecx.endw.if edx==0 ;结果在EAX中invoke dw2a,eax,addr CharOut.else ;结果在EDX:EAX中invoke OutEdxEax,addr CharOut ;用我们自己的程序转换!.endifinvoke StdOut,addr CharOut ;控制台输出结果invoke ExitProcess,NULL ;结束程序end start----------------------------------------------------------------生成7.exe的详细操作过程D:\MASM7>ml /coff /I include 7.asm /link /subsystem:console /libpath:lib Microsoft (R) Macro Assembler Version 6.14.8444Copyright (C) Microsoft Corp 1981-1997. All rights reserved.Assembling: 7.asmMicrosoft (R) Incremental Linker Version 5.12.8078Copyright (C) Microsoft Corp 1992-1998. All rights reserved./subsystem:console /libpath:lib"7.obj""/OUT:7.exe"D:\MASM7>72432902008176640000D:\MASM7>_---------------------------------------------------------------------用W32dasm反编译后的结果,大家可看看“汇编语言”是怎样翻译成“机器语言”的。

Program Entry Point = 00401042 (7.exe File Offset:00001642):00401000 55 push ebp:00401001 8BEC mov ebp, esp:00401003 8B7D08 mov edi, dword ptr [ebp+08]:00401006 8B7508 mov esi, dword ptr [ebp+08]:00401009 B90A000000 mov ecx, 0000000A:0040100E EB14 jmp 00401024* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:|:00401026(C), :0040102A(C)|:00401010 50 push eax:00401011 8BC2 mov eax, edx:00401013 33D2 xor edx, edx:00401015 F7F1 div ecx:00401017 8BD8 mov ebx, eax:00401019 58 pop eax:0040101A F7F1 div ecx:0040101C 80C230 add dl, 30:0040101F 8817 mov byte ptr [edi], dl:00401021 47 inc edi:00401022 8BD3 mov edx, ebx* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0040100E(U)|:00401024 0BC0 or eax, eax:00401026 75E8 jne 00401010:00401028 0BD2 or edx, edx:0040102A 75E4 jne 00401010:0040102C C60700 mov byte ptr [edi], 00:0040102F 4F dec edi:00401030 EB08 jmp 0040103A* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0040103C(C)|:00401032 8A06 mov al, byte ptr [esi]:00401034 8607 xchg byte ptr [edi], al:00401036 8806 mov byte ptr [esi], al:00401038 46 inc esi:00401039 4F dec edi* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00401030(U)|:0040103A 3BFE cmp edi, esi:0040103C 77F4 ja 00401032:0040103E C9 leave:0040103F C20400 ret 0004//******************** Program Entry Point ********:00401042 33C0 xor eax, eax:00401044 33D2 xor edx, edx:00401046 40 inc eax:00401047 B914000000 mov ecx, 00000014:0040104C EB17 jmp 00401065|:00401068(C)|:0040104E 0BD2 or edx, edx:00401050 7504 jne 00401056:00401052 F7E1 mul ecx:00401054 EB0E jmp 00401064* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00401050(C)|:00401056 52 push edx:00401057 F7E1 mul ecx:00401059 5B pop ebx:0040105A 50 push eax:0040105B 52 push edx:0040105C 8BC1 mov eax, ecx:0040105E F7E3 mul ebx:00401060 5A pop edx:00401061 03D0 add edx, eax:00401063 58 pop eax* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00401054(U)|:00401064 49 dec ecx* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0040104C(U)|:00401065 83F900 cmp ecx, 00000000:00401068 77E4 ja 0040104E:0040106A 0BD2 or edx, edx:0040106C 750D jne 0040107B:0040106E 6804304000 push 00403004:00401073 50 push eax:00401074 E81F000000 call 00401098:00401079 EB0A jmp 00401085* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0040106C(C)|:0040107B 6804304000 push 00403004:00401080 E87BFFFFFF call 00401000|:00401079(U)|:00401085 6804304000 push 00403004:0040108A E825000000 call 004010B4:0040108F 6A00 push 00000000* Reference To: KERNEL32.ExitProcess, Ord:0075h |:00401091 E88E000000 Call 00401124:00401096 CC int 03:00401097 CC int 03* Referenced by a CALL at Address:|:00401074|:00401098 55 push ebp:00401099 8BEC mov ebp, esp:0040109B FF7508 push [ebp+08]* Possible StringData Ref from Data Obj ->"%lu" |:0040109E 6800304000 push 00403000:004010A3 FF750C push [ebp+0C]* Reference To: USER32.wsprintfA, Ord:02A5h|:004010A6 E88B000000 Call 00401136:004010AB 83C40C add esp, 0000000C:004010AE C9 leave:004010AF C20800 ret 0008:004010B2 CC int 03:004010B3 CC int 03* Referenced by a CALL at Address:|:0040108A|:004010B4 55 push ebp:004010B5 8BEC mov ebp, esp:004010B7 83C4F4 add esp, FFFFFFF4:004010BA 6AF5 push FFFFFFF5* Reference To: KERNEL32.GetStdHandle, Ord:013Dh |:004010BC E869000000 Call 0040112A:004010C1 8945FC mov dword ptr [ebp-04], eax:004010C4 FF7508 push [ebp+08]:004010C7 E820000000 call 004010EC:004010CC 8945F4 mov dword ptr [ebp-0C], eax:004010CF 6A00 push 00000000:004010D1 8D45F8 lea eax, dword ptr [ebp-08]:004010D4 50 push eax:004010D5 FF75F4 push [ebp-0C]:004010D8 FF7508 push [ebp+08]:004010DB FF75FC push [ebp-04]* Reference To: KERNEL32.WriteFile, Ord:02B9h|:004010DE E84D000000 Call 00401130:004010E3 8B45F8 mov eax, dword ptr [ebp-08]:004010E6 C9 leave:004010E7 C20400 ret 0004:004010EA CC int 03:004010EB CC int 03* Referenced by a CALL at Address:|:004010C7|:004010EC 55 push ebp:004010ED 8BEC mov ebp, esp:004010EF 53 push ebx:004010F0 8B4508 mov eax, dword ptr [ebp+08]:004010F3 8D5003 lea edx, dword ptr [eax+03]* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0040110B(C)|:004010F6 8B18 mov ebx, dword ptr [eax]:004010F8 83C004 add eax, 00000004:004010FB 8D8BFFFEFEFE lea ecx, dword ptr [ebx+FEFEFEFF]:00401101 F7D3 not ebx:00401103 23CB and ecx, ebx:00401105 81E180808080 and ecx, 80808080:0040110B 74E9 je 004010F6:0040110D F7C180800000 test ecx, 00008080:00401113 7506 jne 0040111B:00401115 C1E910 shr ecx, 10:00401118 83C002 add eax, 00000002* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00401113(C)|:0040111B D0E1 shl cl, 1:0040111D 1BC2 sbb eax, edx:0040111F 5B pop ebx:00401120 C9 leave:00401121 C20400 ret 0004* Referenced by a CALL at Address:|:00401091|* Reference To: KERNEL32.ExitProcess, Ord:0075h|:00401124 FF2508204000 Jmp dword ptr [00402008]* Referenced by a CALL at Address:|:004010BC|* Reference To: KERNEL32.GetStdHandle, Ord:013Dh|:0040112A FF2500204000 Jmp dword ptr [00402000]* Referenced by a CALL at Address:|:004010DE|* Reference To: KERNEL32.WriteFile, Ord:02B9h|:00401130 FF2504204000 Jmp dword ptr [00402004]* Reference To: USER32.wsprintfA, Ord:02A5h|:00401136 FF2510204000 Jmp dword ptr [00402010]:0040113C 00000000000000000000 BYTE 10 DUP(0)------------------------------------------------------------------ MASM 6.x 新增指令列表: Glow Glove 制 (请体谅小弟辛苦,勿消去)MASM 6.x 推出以久,但市面上有关之书籍及资料却少得可怜,小弟当初接触MASM 6.x 时,辛辛苦苦才找出资料的,为了那些後进不用踏著先烈的血迹前扑後继,特将小弟「翻」出来的东东公布出来。

相关文档
最新文档