导航:首页 > 编程语言 > windows汇编程序设计

windows汇编程序设计

发布时间:2022-08-13 01:08:41

‘壹’ 汇编语言程序设计的一般步骤是什么

汇编语言程序设计的基本步骤 了解了汇编语言指令的功能和用法,了解了汇编语言程序的编写格式,就可以编制完整的汇编语言程序了。一个程序通常具有顺序、分支、循环和子程序4种结构形式。顺序程序结构就是指完全按顺序逐条执行的指令序列。在程序设计过程中,顺序结构大量存在,屡见不鲜。但一个完整的程序只是逐条去执行指令,这非常少见。常见的程序结构,是上述4种结构的混合体。一般来说,编制一个汇编语言程序的步骤如下:(1) 分析题意,确定算法或算法思想。算法是指解决问题的方法和步骤。比如现有的一些计算方法和日常生活中解决问题的逻辑思维推理方法等。(2) 根据算法画出流程图,简单的情况也可不画。画出描述算法的流程图,可以首先从图上检验算法的正确性,减少出错的可能,使得动手编写程序时的思路更加清晰。(3) 分配存储空间和工作单元,合理地使用寄存器。分配存储空间和工作单元,是指存储空间的分段和数据定义。另外,由于寄存器的数量有限,编写程序时经常会感到寄存器不够用。因此,对于字节数据,要尽量使用8位寄存器。而采用适当的寻址方式,也会达到节省寄存器的目的。(4) 根据流程图编写程序。这是编制汇编语言程序最为重要的一步。算法里规定的功能,是要通过一条条指令描述出来的。为了提高编程能力,对于初学者,一是要多阅读现有的程序,以学习别人的编程经验;而更为重要的是,必须多亲自动手编写,不要怕失败,只有通过无数次失败,才能从中积累自己的编程经验。(5) 上机调试运行程序。通过汇编的源程序,只能说明它里面不存在语法错误。但是它是否能达到算法所要求的预期效果,还必须经过上机调试,用一些实验数据来测试,才能够真正地得出结论。可以这么说,即使是一个非常有经验的程序员,也没有百分之百的把握说他编写的程序一次就成功。 用流程图表示算法 流程图用一些图形框来代表各种操作。用图形表示算法,直观形象,可以用来帮助人们对算法的理解。下图给出了一些常用的流程图符号。

上图中的判断框(菱形)用来对一个给定的条件作出判断,以决定如何执行其后的操作。它有一个入口,两个出口,如下图(a)所示。

连接点(圆圈)是用来将画在不同地方的流程线连接起来。例如在下图(b)里,有两个圈里写着数字1的圆圈,它表示是从左边的1出来,进到右边图的1里(这由流程线的方向给出)。可以看出,这两个点其实就是同一个点,只是由于画不下而分开来画的。用连接点,可以避免流程图中的流程线相互交叉或过长,从而使流程图清晰。

注释框不是流程图中必需的部分。在流程图中使用它,是为了对流程图中的某些框的操作做一些必要的说明,以便使人们能够更好地通过流程图来理解算法。

处理框反映做些什么样的操作,如把某个单元的内容送入某个寄存器,从某个存储单元取出数据等。它是流程图里最为本质的、出现最多的图形框。

输入/输出框反映程序的输入和输出情况。计算机程序无外乎接收数据,进行处理,然后加以输出,所以输入/输出框是必不可少的。

‘贰’ 请问既然学习了王爽的《汇编语言》为什么还要学习《windows环境下32位汇编语言程序设计(第二版)》呢

王爽书中的汇编语言,是16位实模式下的汇编语言。
罗云斌的书讲的是工作在32位环境下保护模式的汇编。
时至今日,传统的dos时代已经过去了。
很少应用程序还设计为工作在16位环境下。大部分都工作在32位环境下。
而16位和32位是两码事,16位中是调用各种中断完成功能,
但在32位保护模式中,这是非法指令,只能调用windwos系统提供的api而不能直接调用中断了。
32位环境的汇编的风格越来越接近c。
对于逆向而言,用16位的方法来反汇编32位,是不可行的。
同样,把32位程序反汇编结果以16位的方法来解也是不可行的。
在windows32下的逆向是必须掌握win32汇编。熟悉各种win32api,熟悉pe结构,熟悉脱壳,熟悉各种算法等等。
win32汇编只是学习逆向的基础,只会汇编不可能在逆向的路上走多远,还必须学习很多高级语言,和熟悉这些高级语言的反汇编形式和结构。
对于采用虚拟机的语言,则需要学习其虚拟机上运行的指令。
比如.net逆向,就必须掌握IL.
逆向很有趣,也很辛苦。希望lz坚持。

‘叁’ 汇编语言程序设计中使用哪种软件工具

1、MASM。

微软公司为x86微处理器家族开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm,是Windows下开发汇编的利器。

2、NASM。

全称The Netwide Assembler,是一款基于80x86和x86-64平台的汇编语言编译程序,其设计初衷是为了实现编译器程序跨平台和模块化的特性。

3、TASM。

Borland公司开发的汇编编译器,被广泛用于Turbo C,Quick Basic等编译器,用作中间过渡编译。它也能独立的编译纯汇编或是Win32Asm的代码。具有编译快速,高效的特点,至今依然是汇编开发的首选利器。

4、GAS。

GNU汇编器(GNU Assembler),简称为GAS,是由GNU计划所使用的汇编器,GNU的核心精神是自由与分享,所以GAS亦是自由软件。

5、RadASM。

一款着名的WIN32汇编编辑器,支持MASM、TASM等多种汇编编译器,Windows界面,支持语法高亮,自带一个资源编辑器和一个调试器。拥有较强的工程管理功能,加之众多插件的支持,使得它用汇编语言编写Windows软件变得得心应手。

‘肆’ 简单介绍一下汇编语言程序设计

汇编比较好的书有:王爽老师《汇编语言》,杨季文老师的《80X86汇编语言程序设计》。看汇编不看保护模式的程序设计的话,汇编也就白学了,所以保护模式非常重要。当然这也是汇编一些应用的基础,比如软件解密,驱动的编写。有了好书,肯定会事半功倍的。这些书上也会肯定会有HELLO WORLD的实现。学习汇编首先从数制学起,各种数制的转换肯定也是非常重要的基础。然后学习基本的8086指令,程序设计的3种语句形式(顺序,循环,选择)接着是学习调用DOS的一些系统功能实现简单的程序,最后进入了最重要的一部分保护模式的程序设计,开始学习80386指令等等,我就不详说了,路漫漫其修远兮。以上还只是停留在DOS时代,还没有进入复杂的windows世界。现在的windows都是VISTA了。
汇编其实也不是这么神秘,不过是很多人习惯了高级语言的东西,再看汇编就很不习惯了,因为很多事情都得自己做。包括栈的平衡等。楼主既然一定想做,那么就回答了2个问题,what,why。接下来就死haw了,编程的学习当时是要靠多上机练习。轻松汇编,这是一个大学生开发的汇编集成环境,初学的时候可以在上面用。学习编程,最重要的是调试,汇编代码级的调试也是软件解密的关键。所以学了汇编,比较高的境界就是看懂别人的程序,当然不是从源代码,而是反汇编代码。保护模式很重要,因为在windows下,自己肯定是弄不了保护模式了,我不知道能不能在cmd下面调用从实模式到保护模式的程序,没试过,应该是不行吧。如果不行的话,可以装个虚拟机,里面安装DOS,在windows里面写好程序后,做成ISO文件,再进入DOS,编译执行保护模式程序,我是这么做的,不知道还有其他更简便的方法没有,你可以自己摸索下。以上是个人意见哈,供参考。

阅读全文

与windows汇编程序设计相关的资料

热点内容
解压新奇特视频 浏览:702
图书信息管理系统java 浏览:548
各种直线命令详解 浏览:859
程序员泪奔 浏览:143
素材怎么上传到服务器 浏览:513
android百度离线地图开发 浏览:187
web可视化编程软件 浏览:288
java笔试编程题 浏览:742
win11什么时候可以装安卓 浏览:560
java不写this 浏览:999
云点播电影网php源码 浏览:95
pythonclass使用方法 浏览:226
移动加密软件去哪下载 浏览:294
php弹出alert 浏览:209
吉林文档课件加密费用 浏览:136
传感器pdf下载 浏览:289
随车拍app绑定什么设备 浏览:898
方维团购系统源码 浏览:993
linux反弹shell 浏览:159
打印机接口加密狗还能用吗 浏览:301