计算机中1+1=2的过程(不是指电脑)
计算机中1+1=2,CPU无法直接执行1+1=2,必须要存储器配合,1+1=2实际上要2条指令。
mov ax,1 机器码是EB0100,实际是11101011 00000001 00000000
add ax,1 机器码是050100, 实际是00000101 00000001 00000000
当CS和IP寄存器存放了EB0100的段地址和偏移地址时,将EB0100放入指令缓冲器,执行mov ax,1后,ax寄存器就是1了,然后IP自动加指令的长度,mov ax,1占3个字节,IP寄存器=IP+3,指向了下一条指令的偏移地址,也就是050100的内存偏移地址,如此循环,这样CPU就可以自动一条一条执行指令了。
add ax,1指令等价于ax寄存器=ax+1,其实就是00000001+00000001,更具二进制加法,逢二进一,就是00000010,十进制就是2了,结果放在ax通用寄存器里,实际电路部可通过逻辑门电路和位移器作加法运算,比如都在高电平"1",则输出低电平"0"。
减法也可以做加法运算,负数用补码表示,1-1=0,就是00000001+11111111,更具逢二进一,就是1 00000000,1为符号位,也就是-0=0,乘法,除法也用加法模拟,比如3*2,可以使把3累加两次或把2累加3次,数据的传递,内存地址寻址和读写,则是通过CPU的三条总线,数据总线,地址总线和控制总线,地址加法器等完成内存中的指令。