
在电脑内部,所有的运算都是加法。
首先,计算机把数转换成二进制(全是0、1代码,转换都是按现成的程序进行),
如果计算加法,则把两数按位相加。
如果是计算减法,则把减数取补码(就是按位把0换成1,取后八位为 00000010 ,13=00001101 ,取13的补码为 11110010 ,加1 后为 11110011 ,相加有 00001111+11110011=100000010 ,转换都是按现成的程序进行)
拓展资料
二进制是计算技术中广泛采用的一种 数制。 二进制数据是用0和1两个 数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师 莱布尼兹发现。
当前的 计算机系统使用的基本上是 二进制系统,数据在 计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
首先有PC+1 *** 作的指令字长与没有的是有区别的,有PC+1的是双字指令,没有PC+1的是单字指令。第一条指令 ADD A,#12H(这是一条加法指令)
*** 作码是ADD 表示加法,
取指令阶段:1>M[PC]=IR
执行指令:2>PC+1,M[PC]→W,(W用来表示工作寄存器,因为加法运算,所以要用到运算器,注意这里的M[PC]可以理解为代表 *** 作数本身)
3>A+W→D→A(即将结果通过直通门D后,存放在运算器中的A累加器寄存器中)
第二条指令MOV A,#20H(这是一条数据传送指令)
取指令阶段:1>M[PC]=IR
执行指令:2>PC+1,M[PC]→A
第三条指令MOV R0,#60H(这是一条数据传送指令)
取指令阶段:1>M[PC]=IR
执行指令:2>PC+1,M[PC]→R0
第四条指令MOV @R0,A(这是一条数据传送指令,但不同的是这里采用的间接寻址,同时是一条单字指令)
取指令阶段:1>M[PC]=IR
执行指令:2>(R0)→MAR(这一步就是将R0寄存器的地址内容传递给MAR,‘即相当于间接寻址中的第一次寻址’)
3>A→D→M[MAR] (这一步即是将A里的数据通过直通门D传给M[MAR] 最终的地址 *** 作数)
第五条指令SUB A,60H(这是一条减法 *** 作的指令,采用的是直接寻址方式)
取指令阶段:1>M[PC]=IR
执行指令:2>PC+1,M[PC]→MAR
3>M[MAR]→W(因为涉及减法指令运算,所以需要把60所在的地址的内容放到运算器中的工作寄存器W中)
4>A-W→D→A
第六条指令MOV R1,#30H(这是一条数据传送指令,采用的是立即数寻址方式)
取指令阶段:1>M[PC]=IR
执行指令:2>PC+1,M[PC+1]→R1
第七条指令SUB A,R1(这是减法指令,同时也是单字指令)
取指令阶段:1>M[PC]=IR
执行指令:2>(R1)→W(因为涉及减法指令运算,所以需要把R1寄存器地址所在的内容放到运算器中的工作寄存器W中)
3>A-W→D→A
第八条指令MOV A,#00H(这是一条数据传送指令采用的是立即数寻址)
取指令阶段:1>M[PC]=IR
执行指令:2>PC+1,M[PC]→A
第九条指令ADDC A,R1(这是一条将带进位的加法指令,同时也是一条单字指令)
取指令阶段:1>M[PC]=IR
执行指令:2>(R1)→W
3>A+W+Rcy → D → A
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)