文档库 最新最全的文档下载
当前位置:文档库 › 机器语言浅谈

机器语言浅谈

第5卷第21期(2009年7月)机器语言浅谈

杜宜同

(广东省财政职业技术学校计算机专业部,广东广州510445)

摘要:当今高级语言流行,介绍机器语言的文章极少。机器语言是计算机的母语,理解了机器语言也就理解了计算机的本质。二进制而不是十进制作为机器语言是历史的必然。机器语言烦琐,难于理解,但依然有它的用武之地,甚至有些情况下必须使用机器语言。关键词:机器语言;汇编语言;二进制;十六进制;计算机原理

中图分类号:TP312文献标识码:A 文章编号:1009-3044(2009)21-5755-02

Introduction of the Machine Language

DU Yi-tong

(Guangdong Finance Institute,Guangzhou 510445,China)

Abstract:Today high-level language is popular,the article about the machine language is very few.machine language is the computer ’s mother tongue,understanding the machine language is equal to understanding the nature of the computer.binary code becoming machine language is a historical necessity.Machine language is cumbersome,difficult to understand,but it is useful in some cases.

Key words:machine language;assemble language;binary system;hexadecimal system;principle of computer

现在我们的生活已经离不开电脑了,我们存取款是通过电脑,我们用电脑听歌,看电影,玩游戏,我们上网看新闻,购物,……,可是,电脑只认识两个数字:0和1,也就是说,如此丰富多彩的任务只是利用0和1完成的。

计算机发展到今天,软件层出不穷:操作系统软件Windows ,办公软件Office ,游戏软件魔兽世界……等等,要让计算机执行它们,必须要转化成0和1;电脑里的多媒体素材如图片,mp3音乐,高清电影,所有这些要变成0和1计算机才能识别它们。例如Windows XP 自带的图片Water lilies.jpg (图1)

要转化成这样一些数字:

1111111111011000111111111110000000000000……

Windows XP 自带的音乐Beethoven's Symphony No.9(Scherzo).wma 要转化成

这样一些数字:

0011000000100110101100100111010110001110……

由二进制数字0和1构成的语言我们称为机器语言,它是计算机唯一能直

接识别的语言。

1机器语言发展简史

早期的计算设备曾使用十进制,如我国的算盘,法国的帕斯卡计算机;莱布

尼兹从中国的八卦图得到启发,意识到计算机的设计可以采用二进制;布尔代数

理论的成熟为二进制的应用奠定了理论基础;香农把布尔代数理论应用到了电

路实践;先是继电器用于计算机的制造,随着电子管的出现,电子时代来临,1946

年,第一台电子计算机ENIAC 在美国诞生,它通过打孔的纸带(或打孔卡片,见图

2)向计算机内输入数据:有孔的地方表示0,没孔的地方表示1(或相反);1974

年,第一台微机“牛郎星”诞生(图3),它通过扳动面板上的开关来向电脑输入数

据:开关闭合表示1,开关断开表示0(或相反);通过面板上的指示灯来表示输出

信息:灯亮表示1,灯灭表示0(或相反)。可见,电脑发展初期人们通过机器语言

实现人机交互。随着电脑的进一步发展,键盘、显示器的出现了,汇编语言以及

BASIC 语言、C 语言等高级语言也出现了,机器语言的使用已经越来越少了。2机器语言语句举例

窥斑见豹,我们通过一个语句来了解一下机器语言的语法,有兴趣的读者可

以自行搜集资料深入研究。

例句:0000000111011000

我们解释一下:

翻译成汇编语言:ADD AX ,BX

涵义:寄存器AX 和BX 的内容相加,结果存储于AX 。收稿日期:2009-06-19

作者简介:杜宜同(1972-),男,山东滕州人,讲师,硕士,主要研究方向为计算机教学。

图1Water lilies 图2打孔卡片

图3第一台微机“牛郎星”

ISSN 1009-3044Computer Knowledge and Technology

电脑知识与技术Vol.5,No.21,July 2009,pp.5755-5756,5762E-mail:eduf@https://www.wendangku.net/doc/3112181298.html, https://www.wendangku.net/doc/3112181298.html, Tel:+86-551-56909635690964

详细解释:此语句由两个字节组成:第一个字节:头6位000000为操作码,表示“相加”的意思;第7位0表示第二个字节中的头2位及后3位为目的操作数的寻址方式,其余3位为源操作数的寻址方式;第8位1表示为字运算。

第二个字节:头2位11及后3位000表示操作数位寄存器AX ;其余3位011表示另一个操作数为BX 。

由此可见:机器语言枯燥,繁琐,不易理解,难以掌握。

3机器语言的应用及程序举例

在某些时候机器语言还是有它的用武之地的,例如在对空间、效率的要求很严格的领域。微软赖以起家的BASIC 语言就是比尔盖茨用机器语言写出来的。这里有必要提一下某些病毒,显然是某些心怀叵测的电脑高手所编写,他们为了减少病毒的大小,某些代码就是用机器语言写的。某些软件的破解,就是通过逆向工程得到到

软件的汇编代码甚至机器代码来进行分析实现的。

应用一:用机器语言输入:How are you?

前面说过,电脑里面的任何内容都是0和1的组合,字符也不例

外,字符与二进制数字的对应关系如表1所示。

为了输入的方便,我们把二进制数字用十进制表示,结果如表2所

示。

下面我们看一下具体的输入方法:

打开记事本,按住alt 键不要松开,用小键盘输入72,松开alt 键,这

时你看到“H ”已经显示在屏幕上了。其它输入同理,结果如图4。

说明一下,上述二进制码就是字符的ASCII 码。

你当然可以用这种方法创建一副图片,一首mp3歌曲,前提是要有

足够的耐心!

应用二:用机器语言实现字符的连续显示。(以ASCII 值为序)

机器语言程序如下:10110100

0000100111111110

1100000011111110

1100001111111110

1100000111001101

0001000011101011

11110100为了输入方便,转换为十六进制为:

B409

FE C0

FE C3

FE C1

CD 10

EB F4向电脑里输入程序的步骤如下:

1)单击开始→单击运行,在输入框输入“cmd ”,确定,启动命令行程

序。2)输入debug ,回车,出现“-”提示符,表明进入debug 状态。

3)输入“e 100”,表示从地址100处开始修改内存。

4)输入上述十六进制的程序,即先输入B4,然后按空格键,同理依次输入其它字符,直到最后一个字符F4,按回车键,回到“-”提示符状态。

5)输入rcx ,出现“:”提示符,由于我们共输入了12个字节,所以在“:”后输入“c ”,c 是十六进制的12。

6)输入“n https://www.wendangku.net/doc/3112181298.html, ”为程序命名,输入w ,保存程序,屏幕提示保存了12个字节,输入q ,退出debug 状态。(图5)

7)输入https://www.wendangku.net/doc/3112181298.html, ,执行效果如图6所示。

为程序简洁起见,程序为死循环,退出时请使用强制退出。

图5程序输入示意图6程序执行效果

程序解释如下:上述程序转换为汇编语言为:(下转第5762页)

表1字符和二进制的对应关系表2字符和二进制、十进制的对应关系

图4字符输入示意

(上接第5756页)

mov ah ,9;显示参数

inc al

;显示字符ASCII 码加1inc bl

;字符颜色属性值加1inc cl

;字符个数加1int 10h

;调用显示中断jmp 100h

;跳转到开头4结束语

虽然我们现在很少用到机器语言,但是了解机器语言必会大大加深对计算机原理的理解,对病毒、计算机安全等的认识也能提高到一个新的层次。

参考文献:

[1]

沈美明,温冬禅.IBM PC 汇编语言程序设计[M].北京:清华大学出版社,1998.[2]

王爽.汇编语言[M].2版.北京:清华大学出版社,2008.[3]

Petzold C.编码的奥秘[M].北京:机械工业出版社,2000.[4]

叶平.电脑史话[M].北京:北京大学出版社,1999.[5]

杜宜同.利用Debug 命令浅析微机的工作原理[J].电脑知识与技术:技术论坛,2005(7).[6]

电脑报编辑部.电脑报1994年合订本(上册)[M].重庆:西南师范大学出版社,1995.[7]

尼亚克.我是沃兹[M].北京:北京师范大学出版社,2007.[8]刘云楚.CASL 语言精解[M].北京:北京航空航天大学出版社,1999.

参考文献:

[1]吴哲辉.Petri 网导论[M].北京:机械工业出版社,2006.

[2]王柏.形式语言与自动机[M].北京:北京邮电大学出版社,2002.

[3]蒋昌俊,刘关俊.Petri 网语言的Pumping 引理[J].计算机学报,2006,29(02):274-

278.

[4]姜春英,房立金,赵明扬.基于有限状态机与Petri 网的系统分析与设计[J],计算

机工程,2007,33(18):245-248.

[5]何建伟,姚淑珍.基于Petri 网的状态机变迁的形式化方法研究[J],系统仿真学

报,2007,19(A1):65-68.

[6]汪琳.基于Petri 网的词法分析器的研究[J].长沙理工大学学报,2004,11(02):57-

62.

[7]汪琳.基于Petri 网建模的语法分析的研究[J].长沙交通学院学报,2004,09(06):

57-63.

[8]Bouabana -Tebibel,T.Belmesk,M.Formalization of UML Object Dynamics and

Behavior[C].//2004IEEE International Conference on Systems,Man and Cybernet -ics,IEEE,2004.

[9]ZHAO Yu,FAN Yu-shun,BAI Xin-xin.Towards Formal Verification of UML Diagrams based on Graph Transformation [C].//Proceed -

ings of 2004IEEE International Conference on E-Commerce Technology for Dynamic E-Business,IEEE,2004.

图2实例的PNM

相关文档