`
junzai
  • 浏览: 14514 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

初涉汇编语言

阅读更多

     早就听说了汇编语言,刚开始时把它当做一门计算机语言(像C/C++/java)来看,加上学了计算机组成与体系结构,感觉有些偏硬件,还是挺有趣的,就初步研究了一下。

 

    据说,汇编语言很重要。它虽然有些原始,但原始并不代表简单。它是真正学会学懂计算机的基础,是加密解密的基础,适用于信息安全专业(哈哈,恰好我是保密管理偏重技术也就是信息安全的,正中下怀),更是××制造的基础。今天金山网络的笔试,看到了反病毒工程师的招聘这一项中刚好对汇编语言和x86有要求也。由于初涉汇编且对反病毒完全木有概念(即使感兴趣),就没有选择这个而选了C++进行笔试(现在想想也是可以去试试的哈)。so汇编语言是很有用滴!只是学习它需要些毅力。。。。。。它用来编写程序的核心,使程序运行变快,效率更高,还可用于实时控制等。

 

先讲讲它的优点哈,别急:

     首先,汇编语言的大部分语句直接对应着机器指令,执行速度快,效率高,代码体积小,在那些存储器容量有限,但需要快速和实时响应的场合比较有用,比如仪器仪表和工业控制设备中。

     其次,在系统程序的核心部分,以及与系统硬件频繁打交道的部分,可以使用汇编语言。比如操作系统的核心程序段、I/O接口电路的初始化程序、外部设备的低层驱动程序,以及频繁调用的子程序、动态连接库、某些高级绘图程序、视频游戏程序等等。

     再次,汇编语言可以用于软件的加密和解密、计算机病毒的分析和防治,以及程序的调试和错误分析等各个方面。

     最后,通过学习汇编语言,能够加深对计算机原理和操作系统等课程的理解。通过学习和使用汇编语言,能够感知、体会和理解机器的逻辑功能,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础

 

 

再来讲讲几个常用的指令:

-r命令查看,改变寄存器的内容

-d命令查看内存中的内容

-e 改写内存中的内容

-u将内存命令中的机器指令翻译成汇编指令

-t 执行一条机器指令

-a 命令以汇编指令的格式在内存中写入一条机器指令

物理地址=段地址*16+偏移地址

这里的乘16实际是左移一位

8086CPU不支持将数据直接送入段寄存器的操作

 

由于图片较多,上传较麻烦,就不放上来啦,所有内容均在附件中,欲知详情,请点击下载附件哟~~~~~~~(里面有汇编指令详解,还有有趣的汇编代码病毒哟)

 

 

     这学期学校开设了《计算机组成与体系结构》,做实验的时候发现还是蛮有趣的,对汇编语言突发兴趣,所以想趁此机会研究一下。 由于我的电脑是win7系统,没法进入DOS方式,

 

1.下载MASM5.0,将解压后的文件压保存在D盘(C盘也可以,这里以D盘为例了)

 

2.点击开始,在搜索栏里输入command,进入DOS方式,输入edit如下图所示,点回车进入Edit。 在Edit中编辑程序,编辑完成后,将程序保存为文件1.asm,将生成的1.asm文件放在文件夹MASM中。 进入命令提示行(开始--输入cmd--回车),进入程序所在文件夹。键入"d:",回车,键入"cd masm”,回车,键入"masm 1”, 一直按回车4下(若在上图masm 1之后加“;”,则只用按一下回车就可以完成编译),便会得到如下图所示界面, 此时,源程序已经完成编译,在MASM文件夹中会生成一个1.OBJ文件。

再键入"link 1",再回车4下(若在上图link 1之后加“;”,则只用按一下回车就可以完成连接),就完成了连接,完成界面如下, 连接完后,会在masm5.0文件夹中生成应用程序1.exe。 再键入"1",回车,程序就就运行完了。

是不是很奇怪呢?竟然没有任何结果,就和没运行一样,那么,程序到底运行了吗? 程序当然是运行了,只是从屏幕上我们看不到任何运行结果,因为我们根本没有向显示器输出任何信息。程序只是做了一些将数据送入寄存器和加法的操作,而这些我们根本不可能从显示屏上看出来。程序执行完后,返回,屏幕上再次出现操作系统的提示符。 不过,我们可以通过debug 1.exe将程序加载入内存,这样就能查看每一条指令的执行结果。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics