汇编的一些基础知识。

刚学汇编的菜鸡,总结一下。

底层中数字的存储方式和运算
假设为8位cpu
1.无符号数
直接将正数转化为二进制数。
2.符号加绝对值数。(原码)
先将整数转化为二进制数。不足7位在左边补0,如果是正数在最左边加0,是负数在最左边加1,。
3.反码。
将除符号位以外的数取反。
4.取补码运算。
所有的数取反,再加上1(正常运算)。
5.以二进制补码形式存储整数。
如果是正数,其原码即是补码。
如果是负数,除符号位以外的数取反,再加上一。
将二进制补码形式存储的整数转化为原码。
如果最左位是0,即是本身。
如果最左位是1,除符号位以外的数取反,再加1.
6.二进制补码中的加减法。
1.如果是加法,两个补码直接相加(5中的以二进制补码形式存储整数的补码。) 加号两边是 负数 ,(也是用二进制补码形式存储的整数)。
2.如果是减法,将减号右边的 补码 再进行取补码运算。然后将减号改为加号,然后相加。

下面是读王爽的《汇编语言》总结的一些。
1.汇编语言的组成:
汇编指令(机器码助记符,有对应的机器码),伪指令(没有对应的机器码),其他符号(没有对应的机器码)。
2.指令和数据:(在存储器中存放)
两者是应用上的概念。但是在内存或者磁盘上,指令和数据没有任何区别,都是二进制信息。CPU在工作时把有的信息看作指令,有的看作数据。同样的二进制信息,可以有不同的意义。
操作数有三种:寄存器操作数,存储器操作数,立即数
寄存器操作数即是寄存器里的数,存储器操作数是内存中的数,立即数就是类似常数 例如 mov ax,1 这个1 就是立即数。
3.存储单元:
一个存储单元有8个位。8个位=1个字节,即1个存储单元是1个字节。
1个字=2个字节。 存储单元从0 顺序编号。 从上往下 依次增大。上面是低位,下面是高位。
4.CPU对存储器的读写:
cpu想要进行数据的读写,必须和外部器件(芯片)进行下面的数据交换:1.存储单元的地址(地址信息)2.器件的选择,都或者写的命令.(控制信息) 3.读或者写的数据(数据信息)
cpu先通过地址线将地址信息发出,再通过控制线发出内存读写命令,选中存储器芯片,通过数据线传输数据.
5.地址总线,数据总线,控制总线。
地址总线:地址总线的个数为n,则表示可以传送n位二进制数据,则可以对2的n次方 个存储单元寻址。
数据总线:宽度n,则可以一次传输 n位二进制数据
控制总线:决定对其他器件的控制能力。
一个多少位的cpu,是由地址总线的位数决定的。

猜你喜欢

转载自blog.csdn.net/qq_43394612/article/details/84175956