汇编语言、微机原理及接口技术(第3版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 进制转换及计算

本节主要讲解进制的快速转换方法,学会此法可在10秒内实现万以内的数值转换。

1.1.1 进制

现实生活中除了最常用的十进制外,还有秒分时之间的六十进制、月年之间的十二进制以及古代钱两斤之间的十六进制等,在计算机内主要采用的是二进制(后缀B,Binary)、八进制(后缀O或Q,Octal,O易与0混淆,所以一般用Q替代O)、十进制(后缀D,Decimal,或不要后缀)和十六进制(后缀H,Hex)。

N进制的每个数据位取值范围为0~N-1,其算术运算规则同十进制,只不过是逢N进一、借一等于N而已。例如,二进制只有0和1 两个数字,逢2进1,借1等于2;十六进制有0~9、A~F(分别代表10~15)16个数字,逢16进1,借1等于16。

1.1.2 进制转换的一般方法

进制转换的一般方法如图1.1和图1.2所示。

图1.1 任意进制数与十进制数之间转换关系图

图1.2 二进制、八进制、十六进制之间转换关系图

例1.1(101101)2=101101B=1×25+0×24+1×23+1×22+0×21+1×20=45

例1.2 156.4Q=1×82+5×81+6×80+4×8-1=110.5

例1.3 6C.4H=6×161+12×160+4×16-1=108.25

下式中ai代表b进制的第i位,任意的b进制转化为十进制的一般式子:

例1.4 123.25=(1111011.01)2=(173.2)8=(7B.4)16

解题步骤如图1.3所示。

图1.3 十进制转换为其他进制的一般方法

1.1.3 进制快速转换方法

掌握进制快速转换方法的前提是记住16的倍数或2的n次方,如表1.1所示。

表1.12的指数及16的倍数表

记住表1.1的主要数据后,就可以在10秒内完成进制转换。

具体方法为:

将十进制转换为十六进制,只要把它拆成16的倍数之和还原成十六进制即可,再利用一展四转换为二进制,而后再用三合一转换为八进制(注:有时视情况可用16的倍数之差)。

例1.5 280=256+16+8=118H=100011000B=430Q

例1.6 2000=2048-48=800H-30H=7D0H=11111010000B=3720Q

例1.7 5000=4096+768+128+8=1388H=1001110001000B=11610Q

将十进制转换为二进制,只要把它拆成2的n次方之和,有n次方的二进制位写成1,无n次方的二进制位写成0即可,再利用四合一转换为十六进制及用三合一转换为八进制(注:有时视情况可用2的几次方之差)。

例1.8 280=28+24+23=100011000B=118H=430Q

例1.9 2000=210+29+28+27+26+24=11111010000B=7D0H=3720Q=211-25-24

例1.105000=212+29+28+27+23=1001110001000B=1388H=11610Q

1.1.4 进制计算

进制计算主要有加减乘除等算术运算及与或非等逻辑运算。其他进制加、减、乘、除等算术运算的运算方法与十进制的运算方法类似,要点是逢N进一、借一等于N。与、或、非等逻辑运算一般是指变量取值为二值(0或1)的逻辑运算,将1 当成真,将0当成假,与、或、非的真值表如图1.4所示。

图1.4 三种位逻辑运算真值表

在本书3.3节的汇编指令部分和4.2节的表达式部分将给出具体举例。