初学汇编语言之基础知识整理

和机器语言一样,汇编语言属于低级语言,所以学习汇编语言就要求学习者能够掌握机器内部的运算细节,为此特做一下基础知识梳理,为更好的学习汇编语言打下基础。本梳理有的放矢,对于容易掌握的知识点一带而过。本梳理包括以下几点:一、进位计数值与不同基数的数之间的转换;二、二进制数和十六进制数之间的转换;三、计算机中数和字符的表示;四、几种基本的逻辑运算。

一:进位计数值与不同基数的数之间的转换

1、在计算机中,十进制数一般用D(decimal)做结尾,八进制数用O(octal)作结尾,十六进制数用H(hexadecimal)结尾,二进制数用B(binaty)结尾;如十进制数32D,八进制数8O;

2、二进制数转换为十进制数可以用各位二进制数码乘以与其对应的权之和得到,例如:1011100.10111B=2^6+2^4+2^3+2^2+2^(-1)+2^(-3)+2^(-4)+2^(-5)D;十进制转换为二进制数可以采用两种方法,第一种是降幂法,采用将该十进制相近的二进制权值相减,若能够减去则相应位置置一,否则置零;示例如下,N=117D:

64     32     16     8     4     2     1

1        1       1     0     1     0     1    

故N=1010111B

第二种是除法;采用十进制数不断的除以二,并记下余数,直到得到的商为零为止;例如:N=117D;

117/2=58......1;58/2=29......0;29/2=14......1;14/2=7......0;7/2=3......1;3/2=1......1;1/2=0......1得到N=1110101B

若十进制中存在小数部分,则将小数部分乘以2,记录得到的整数部分,直到结果小数部分为零为止;

3、十六进制转换为二进制可以将十六进制的每一位采用四位二进制数来表示,组合起来就得到该十六进制的二进制表示;二进制转换为十六进制则将二进制的每四位组成一组,计算每一组的数值组合起来就得到十六进制数;十六进制数转换为十进制数与十进制数转换为十六进制数和二进制数与十进制数相互转换原理相同,权值只需将权值改为16的相应位的次幂,以及除法时除数改为16即可;

二:二进制数和十六进制数运算

此处和十进制数原理相同,但有一点二进制数1+1=0(进位1)需注意;

三:计算机中数和字符

1、计算机中大多数采用二进制的补码表示法:正数的补码为正数本身,负数的补码为该负数对应的正数的二进制按位取反加一得到;

2、对于n位有符号数来讲,取值范围为2^(n-1)<=n<=2^(n-1)-1;对于无符号数来说范围为0<=n<=2^n;

3、计算机中采用补码形式则数的加减法都可通过补码的加法进行运算;

4、字符采用ASCII码表示,需注意0用十六进制30表示,A用十六进制41表示,a用十六进制61表示;

四:逻辑运算

1、“与”(AND),当只有A、B两个都为1时结果为1;

2、“或”(OR),当只有A、B两个都为0时结果为0;

3、“非”(NOT),对该变量取反操作;

4、“异或”(XOR),变量相同时取0,不同时取1;

推荐阅读更多精彩内容