上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
1.1 汇编语言概述
作者:未知 申领版权
2010年12月12日 共有 2364 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    
    

1.1 汇编语言概述

1.1.1 汇编语言

按照确定的算法解决具体问题所必须的指令序列称为程序,它是由数据、指令和字符等构成的,在执行前应预先将它们以二进制代码形式存储在存储单元中。 
    所谓指令是指控制计算机执行某一特定操作的命令。而一台计算机所能识别的指令的全体称为指令系统,它反映计算机基本功能的强弱。机器指令是以二进制代码形式表示的,能直接为计算机识别而执行的命令,它通常由操作码和操作数两部分组成。8086/8088指令系统有约100多条基本指令。
    汇编语言是一种面向机器的语言,汇编语言的指令与机器指令是一一对应的。它用符号、文字来表示指令,所以它又称符号语言。用汇编语言编写的程序是不能被计算机直接识别和执行的(如同用高级语言编写的程序),它需要翻译成目标程序后方可执行,这个过程我们称为汇编。汇编语言虽然没有高级语言在使用上简单方便,但因它与机器语言是一一对应的,故可充分利用计算机硬件系统的特性,提高编程技巧和编程质量。另外,利用汇编语言处理I/O设备是汇编语言的独到之处,所以它是无法为其他语言所取代的。
    汇编程序的类型有:自汇编程序、交叉汇编程序、微汇编程序、浮动汇编程序和宏汇编程序。
    汇编语言(ASM)虽然较机器语言在阅读、记忆及编写方面都前进了一大步,但对描述任务、编程设计仍感不便,于是产生了具有机器语言优点,而又能较好地面向问题的语言,即宏汇编语言(MASM)。
    宏汇编语言不仅包含一般汇编语言的功能,而且用了高级语言使用的数据结构,是一种接近高级语言的汇编语言。例如它提供了记录、结构和字符串操作;具有宏处理、条件汇编及磁盘操作系统DOS功能调用等多种功能;程序的开发以及调试手段也比较完善,因而宏汇编语言是一种更高级的汇编语言。
    
    

1.1.2 汇编语言的特点

由于汇编语言使用指令助记符和符号地址,所以他要比机器语言容易掌握得多。与高级语言相比,汇编语言具有以下特点:
    (1)汇编语言与及其关系密切
    (2)汇编语言程序效率高
    (3)编写汇编语言源程序繁琐
    (4)汇编语言程序调试困难
    
    

1.1.3 汇编语言的主要应用场合:

(1)程序执行占用较短的时间,或者占用较小存储容量的场合。 
    (2)程序与计算机硬件密切相关,程序直接控制硬件的场合。 
    (3)需提高大型软件性能的场合。 
    (4)没有合适的高级语言的场合。 
    
    

1.2数据表示和类型

1.2.1 进位计数制以及不同计数制间的相互的转换

在日常生活中我们所用的是十进制数,但在计算机中我们用的是二进制数,作为汇编语言程序设计对二进制数与十进制数的转换是必不可少的。
    1. 各种进位计数制 
    表1.1  二、八、十和十六进制数码的对照关系表
    
    

十进制
    
二进制
    
八进制
    
十六进制
    
0
    
0
    
0
    
0
    
1
    
01
    
1
    
1
    
2
    
10
    
2
    
2
    
3
    
11
    
3
    
3
    
4
    
100
    
4
    
4
    
5
    
101
    
5
    
5
    
6
    
110
    
6
    
6
    
7
    
111
    
7
    
7
    
8
    
1000
    
10
    
8
    
9
    
1001
    
11
    
9
    
10
    
1010
    
12
    
A
    
11
    
1011
    
13
    
B
    
12
    
1100
    
14
    
C
    
13
    
1101
    
15
    
D
    
14
    
1110
    
16
    
E
    
15
    
1111
    
17
    
F
    
16
    
10000
    
20
    
10
    

(1)十进制数 
    十进制数就是我们在日常生活中所用的数,它共有0,1,2,3,4,5,6,7,8,9这十个数码,它的计数方法是“逢十进一”。对于十进制数的运算大家应该都知道,这里就不多说了。                
    (2)二进制数
    二进制数是最简单的进位计数制,它只有0,1二个数码,计数方法是“逢二进一”。二进制数的运算十分简单,加法是“逢二进一”,减法是“借一当二”。例如“11 10=101;101-10=11”至于乘法和除法和我们日常相似,只不过不是“逢十进一”而是“逢二进一”罢了。
    (3)八进制数和十六进制数
    很显然八进制数是0到7这八个数码组成,且是“逢八进一”,而十六进制数是由0到9和A,B,C,D,E和F(英语大写字母分别代表10到15)这十六个数码组成的,它的进位方式是“逢十六进一”。在下面我将给出二,八,十和十六进制数码的对照关系表。如表1.1所示:
    2.数制的转换 
    (1)将十进制数转换成二进制数
    例  试将十进制数 125.6875转换成二进制数。
    ①整数的转换:除2取余
    先将125除以2在右边记下余数,然后以此类推,直到最后的差为0,最后我们将余数倒着排列即得结果。   
    ②小数的转换:乘2取整
    小数的转换正好与整数的转换相反,先将0.6875乘以2得结果1.3750,则在右边记下整数位1,再将去整数位后的0.375乘以2记下结果,依此类推,直到最后小数部分为0或结果以达到精度要求。
    (2)将十进制数转换成八/十六进制数
    方法如上,只不过乘/除数为8或16。
    (3)二,八/十六进制数转换成十进制数
    转换方法是利用数制的一般表达式写成相应的幂运算形式,然后求和得到。
    例:572.34(8)=5*82 7*8 2 3*8-1 4*8-2=378.4375  
    (4)二进制数与八进制数的转换
    因为23=8,所以二进制数转换成八进制数只需将二进制数从小数点开始每3位转成一位八进制数(整数由左向右,小数相反)。 例如:101 111 010 . 011 100(2) =572.34(8)
    八进制数转换成二进制数只需将每一位八进制数用三位二进制数表示,小数点位置不变。 例如:175.54(8)=001 111 101.101 100B=1111101.1011B。
    至于十六进制数与二进制数的转换只需将每隔3位改为每隔4位即可。
    
    

1.2.2 原码,补码和反码

在计算机中参加运算的数有正负之分,通常在计算机中我们用X=X0X1X2``````XN-1来表示一个二进制数,并规定当X0=0时X为正数,X0=1时X为负数.在计算机中这种表示法有原码,补码和反码三种。
    1. 原码
    原码的定义为:  
    所能表示数的范围为:
    例: 根据[X](原)所能表示的整数范围公式,我们可以计算出当n=8时,原码表示范围是[-127,127]。原码的表示法简单易懂,但是它最大的缺点是运算复杂。所以人们引进了补码。
    2. 补码
    补码的定义为:
    所能表示数的范围为:
    例: 根据[X](补)所能表示的整数范围公式我们可以计算出当n=8时补码表示范围是[-128,127];根据补码的定义公式我们可以计算出任何一个数的补码,如X=-2FH根据公式[X](补)=100H-2FH=D1H。
    用补码进行加减运算是很简单的,公式为[X Y]补=[X]补 [Y]补;[X-Y]补=[X]补 [-Y]补。加法公式是非常简单的,但减法中我们只知道[Y]补而不知道[-Y]补,利用一个口诀就可解决这个问题,口诀是"将[Y]补连同符号位一起按位求反后末为加一可得[-Y]补"。我们现在虽然有了公式和口诀,但是还有符号位的问题没有解决,而另一个口诀可以解决这个问题。口诀是"符号位参加运算,符号位相加,若有进位,则进位舍去"。如:63H-72H=63H 8EH=0F1H(用十六进制时最高位为字母时前加0)。
    注意:运算有时会产生溢出,如57 81>127。当我们用N=8的补码运算就会溢出,因为当字长N=8时补码的表示范围是 [-128,127]。
    3. 反码
    反码的定义为:
    所能表示数的范围为:
    例: 根据[X](反)所能表示的整数范围公式,我们可以计算出当n=8时反码表示范围是    [-127,127]。 
    
    

1.2.3  数的定点和浮点表示法

在计算机中,针对小数点的处理有两种方法:定点表示法浮点表示法。
    1. 定点表示法
    定点表示法就是小数点固定在某个位置上。在定点计算机中,为了简单通常将小数点定在最高位(即纯小数)或将小数点定在最低位(即整数)。
    2. 浮点表示法
    浮点表示法就是小数点的位置并不固。浮点数在计算机中通常的表示形式为"浮点数=2的正/负阶码次方*尾数"其中阶码是个正整数,尾数是个小数,我们规定尾数的区间为[0.5,1],如果尾数不在此区间,那我们可通过调节阶码来满足区间,此方法称为规格化。 
    
    

1.2.4 BCD码和字符编码 

在日常生活中人们用的是十进制数,而机器又只能处理二进制数,因此我们引进了BCD码。BCD码是用四位的二进制数来表示一位十进制数(可参照下表)。例子:我现在将8351表示成BCD码为1000 0011 0101 0001。当用一个字节来表示十进制数时,称为非压缩的BCD码。例如6可表示为00000110。当用一个字节表示二个十进制数时,称为压缩的BCD码。例如79可表示为01111001。
    除了数值数据外,计算机还可处理人们常用的符号,如字母,标点符号等。在计算机中这些符号是用ASCII码来表示的。ASCII码用一个字节的二进制数来表示一个字符,但实际只用了七位,最高位被用来做奇偶校验位。这一位置1或0,使字节含1的个数为奇数(或偶数)称为奇校验或偶校验。如表1.2十进制数与BCD码对换关系表。
    表1.2 十进制数与BCD码对换关系表
    
    

十进制数
    
BCD码
    
十进制数
    
BCD码
    
0
    
0000
    
5
    
0101
    
1
    
0001
    
6
    
0110
    
2
    
0010
    
7
    
0111
    
3
    
0011
    
8
    
1000
    
4
    
0100
    
9
    
1001
    

 

相关新闻

成为运营大牛(数据二):数据使用的三测
成为运营大牛(数据一):运营中的那些数据
成为运营大牛(结构四):一图览运营
成为运营大牛(结构三):一张图看清活动运营
成为运营大牛(结构二):一张图看清内容运营
成为运营大牛(结构一): 运营的基础结构
今日看市5.23
【视频】4月25号庖丁解牛 公开课
【视频】4月26号实战体系学员陪练课
【视频】4月28号下午解盘

您可能对这些感兴趣  

干货分享|10本最受国外孩子喜爱的英文词典——上
从孩子的表现看父母的缺点!请家长对号入座,看看你是哪一类?
20条制作PPT的视觉原则
培训简史:培训者必知的历史轨迹
广田丰管理培训生人才培养调查报告
第4讲 作为上司的职业经理
第3讲 作为同事的职业经理
第2讲 作为下属的职业经理
第1讲 培养经理人的管理素养
酒店前台新员工上岗培训计划

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》