![汇编语言、微机原理及接口技术(第3版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/360/655360/b_655360.jpg)
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所示。
![](https://epubservercos.yuewen.com/FFA6BB/3590306403831101/epubprivate/OEBPS/Images/figure_0013_0001.jpg?sign=1738870618-k7QozLfnxFNTJrKtTnfp0XY46DJfqYNe-0-6e7f9a309c7cac5fa1e8d7c582ff8c09)
图1.1 任意进制数与十进制数之间转换关系图
![](https://epubservercos.yuewen.com/FFA6BB/3590306403831101/epubprivate/OEBPS/Images/figure_0014_0001.jpg?sign=1738870618-qJB0oEBmOCPIBbusy8Awuarcd4mcUkcp-0-afa351240ae64f6646624164cf882594)
图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进制转化为十进制的一般式子:
![](https://epubservercos.yuewen.com/FFA6BB/3590306403831101/epubprivate/OEBPS/Images/figure_0014_0002.jpg?sign=1738870618-6CV7VyzIm2ldIqTfXNFGaZ39pOAaV1XP-0-4209a70cbf13434d9902f09091d9768c)
例1.4 123.25=(1111011.01)2=(173.2)8=(7B.4)16
解题步骤如图1.3所示。
![](https://epubservercos.yuewen.com/FFA6BB/3590306403831101/epubprivate/OEBPS/Images/figure_0014_0003.jpg?sign=1738870618-HB2f84MaMvTMFSmgRyU9CrXRuU4L833d-0-b02309a5aa667b5fb376563979891502)
图1.3 十进制转换为其他进制的一般方法
1.1.3 进制快速转换方法
掌握进制快速转换方法的前提是记住16的倍数或2的n次方,如表1.1所示。
表1.12的指数及16的倍数表
![](https://epubservercos.yuewen.com/FFA6BB/3590306403831101/epubprivate/OEBPS/Images/figure_0014_0004.jpg?sign=1738870618-KCReC52RUEMMacXsqDLPSGv3oOTY8W8A-0-0d66b5fbeadc580546927deae091c3c5)
记住表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所示。
![](https://epubservercos.yuewen.com/FFA6BB/3590306403831101/epubprivate/OEBPS/Images/figure_0015_0002.jpg?sign=1738870618-pL7b1ElxPApdvHRwvJdQ7vSIvIRw65UI-0-5fb3948811af78982f6958c44764f91e)
图1.4 三种位逻辑运算真值表
在本书3.3节的汇编指令部分和4.2节的表达式部分将给出具体举例。