12 2022 档案
摘要:将二进制数表示的信息作为四则运算的数值来处理就是算术。而像图形模式那样,将数值处理为单纯的0和1的罗列就是逻辑。计算机能处理的运算,大体可分为算术运算和逻辑运算。算术运算是指加减乘除四则运算。逻辑运算是指对二进制数各数字位的0和1分别进行处理的运算,包括逻辑非(NOT运算)、逻辑与(AND运算)、逻
阅读全文
摘要:右移有移位后在最高位补0和补1两种情况。当二进制数的值表示图形模式而非数值时,移位后需要在最高位补0。类似于霓虹灯往右滚动的效果。这就称为逻辑右移。例如图2-9 将二进制数作为带符号的数值进行运算时,移位后要在最高位填充移位前符号位的值(0或1)。这就称为算术右移。如果数值是用补数表示的负数值,那么
阅读全文
摘要:接下来我们就一起来看看表示负数的方法和右移的方法:二进制数中表示负数值时,一般会把最高位作为符号来使用,因此我们把这个最高位称为符号位。符号位是0时表示正数,符号位是1时表示负数。计算机在做减法运算时,实际上内部是在做加法运算。用加法运算来实现减法运算,为此,在表示负数时就需要使用“二进制的补数”。
阅读全文
摘要:在了解了二进制数的机制后,接下来我们来看一下运算。和十进制数一样,四则运算同样也可以使用在二进制数中,只要注意逢2进位即可。下面,我们就来重点看一下二进制数所特有的运算。二进制数所特有的运算,也是计算机所特有的运算,因此可以说是了解程序运行原理的关键。移位运算指的是将二进制数值的各数位进行左右移位(
阅读全文
摘要:首先让我们来看一下二进制数转换成十进制数的方法: 接下来,让我们来解释一下各数位的数值和位权相乘后“相加”这个处理的原因。其实大家所说的数值,表示的就是构成数值的各数位的数值和位权相乘后再相加的结果。例如39这个十进制数,表示的就是30+9,即各数位的数值和位权相乘后再相加的数值。 所有数的0次幂都
阅读全文
摘要:在C和Java等高级语言编写的程序中,数值、字符串和图像等信息在计算机内部都是以二进制数值的形式来表现的。也就是说,只要掌握了使用二进制数来表示信息的方法及其运算机制,也就自然能够了解程序的运行机制了。IC的一个引脚,只能表示两个状态。IC的这个特性,决定了计算机的信息数据只能用二进制数来处理。由于
阅读全文
摘要:机器语言指令的主要类型和功能: 数据转送指令:寄存器和内存、内存和内存、寄存器和外围设备之间的数据读写操作 运算指令 :用累加寄存器执行算术运算、逻辑运算、比较运算和移位运算跳转指令 :实现条件分支、循环、强制跳转等call/return 指令: 函数的调用/返回调用前的地址
阅读全文
摘要:CPU会把基址寄存器+变址寄存器的值解释为实际查看的内存地址。变址寄存器的值就相当于高级编程语言程序中数组的索引功能。数组是指同样长度的数据在内存中进行连续排 列的数据构造。用一个数组名来表示全体数据,通过索引来区分数组的各个数据(元素)。例如,一10个元素的数组a,其中的各个 数组a数据就用 a[
阅读全文
摘要:哪怕是高级语言编写的程序,函数”调用处理也是通过把程序计数器的值设定成函数的存储地址来实现的。不过,这和条件分支、循环的机制有所不同,因为单纯的跳转指令无法实现函数的调用。函数的调用需要在完成函数内部的处理后,处理流程再返回到函数调用点(函数调用指令的下一个地址)。因此,如果只是跳转到函数的入口地址
阅读全文
摘要:程序的流程分为顺序执行、条件分支和循环三种。顺序执行是指按照地址内容的顺序执行指令。条件分支是指根据条件执行任意地址的指令。循环是指重复执行同一地址的指令。顺序执行的情况比较简单,每执行一个指令程序计数器的值就自动加1。但若程序中存在条件分支和循环,机器语言的指令就可以将程序计数器的值设定为任意地址
阅读全文
摘要:首先要有程序运行的开始位置,然后Windows等操作系统把程序从硬盘复制到内存后会将程序计数器(CPU寄存器的一种)设定为指定开始位置的地址,然后程序便开始运行。CPU每执行一个指令,程序计数器的值就会自动加1.
阅读全文
摘要:1.程序是把寄存器当作对象来描述的。 2.汇编语言采用助记符来编写程序。 3.机器语言是指CPU可以直接解释和执行的语言。 通过上面这个代码例子可以看出:机器语言级别的程序是通过寄存器来处理的,也就是说在程序员看来CPU是寄存器的集合体 程序员眼中的CPU是什么样子的呢?
阅读全文
摘要:CPU(中央处理器)相当于计算机的大脑,CPU和内存都是由许多晶体管组成的电子部件,通常称为IC(集成电路)。CPU的内部是有寄存器,运算器,控制器,时钟组成的.
阅读全文