计算机组成原理补充 | 您所在的位置:网站首页 › 译码器是什么电路类型 › 计算机组成原理补充 |
趣谈汇编语言符号数
做而论道_CS: 结论: 计算机中,只有二进制数。 并不能区分有无符号数。 也可以说,不存在什么符号的问题。 二进制数,可以作为有符号数(补码), 根源是使用了不同的指令和算法。 所以,有无符号,是取决于【编程人】的。 有无符号,与计算机本身,毫无关系。 趣谈汇编语言符号数做而论道_CS: 在计算机中,所有的数据,都是按照二进制形式存储的。 负数,是以其补码来保存的。 只从存储的数据来看: 并不能区分该数据是 “有符号数” 还是 “无符号数”。 那么,某个数据,究竟是什么类型的数? 这完全取决于 CPU 执行了什么程序。 编程时,为了区分“有或无符号数”, 应该选用不同的指令或算法。 加减指令,对 “有或无符号数” 一视同仁,不加以区分。 乘除指令,则有“无符号数乘除”和“有符号数乘除”两种。 条件转移,也有针对“有或无符号数”进行转移的不同指令。 因为因为加减指令,并不能区分“有或无符号数”。 所以,就要从“算法”上进行选择。 比如,两个数据相加后: 保留进位,就是把数据,当做 “无符号数”。 舍弃进位,就是把数据,当做 “带符号数”。 例如:MOV AL, 27 ;0001 1011 ADD AL, 255 ;1111 1111 执行后,AL = 0001 1010 = 26; CF = 1,即为 256。 如果算上进位,结果就是:282。 这个 255,就是无符号数。 如果舍弃进位,结果就是:+26。 这个 255,就是有符号数,即-1。 趣谈汇编语言符号数做而论道_CS: 学了编程之后,才会学到,有:两种程序。 C 语言是高级语言,不需要编程人,来区分使用不同的程序。 那么,在 C 中,就可以先定义两种数据,之后, 编译软件,就会根据你的定义,选用不同的处理程序。 在 C 中,弄混了顺序之后,编程人, 只知道有两种数据,却不知道有两种处理程序。 《汇编语言》的作者,就是被 C 弄混了基本概念。 可悲! 趣谈汇编语言符号数做而论道_CS: 数据,都是一样的。 处理方法,有两种: 保留进位,就是把数据,当做 “无符号数”。 舍弃进位,就是把数据,当做 “带符号数”。 数据,都是一样的。 不可能分辨出谁是 “无符号数”、“带符号数”。 计算机原理中说:计算机中的数,有两种。。。 这是彻头彻尾的谎话! 计算机中的数,只有一种,就是:二进制数。 汇编语言——assume的作用对方正在讲话...342: 非常对 |
CopyRight 2018-2019 实验室设备网 版权所有 |