这个怎么读双精度
跟一次读几位
一次读几位说的是CPU的数据总线的宽度
没半毛钱的关系
一个字节 是 8位
一个字 是 16位
一个双精度是
64 位 ,你去看下汇编
你就能明白怎么读的了,我这只大概的给你讲一下
CPU 有4个通用寄存器
8086的是16位的
专门用来存数
给DS 数据段, ES 代码段
SS 堆栈段(还应该有个,哎自己的电脑被人拿走了,有几天没摸了)
提供数据的
当然这几个寄存器都是可以直接访问内存的, 但你想想 通用寄存器
一般是用来预读的
64位的 可以用4个通用寄存器存放
一个数 分成位的,有低位和高位之分
64位数据运算,CPU 具体是怎么处理 把低位溢出位加到高位上去,这个我还没学到
汇编我也是刚开始看的
读64位的数据,这个和CPU 的寻址是挂钩的
8086 的总线宽度是20位
寻址方式采用 基础地址*16+偏移量 (16进数表示的地址)
通过地址转换器合成这20位
寻址能力是1MB
你的数据就是这么在内存中被定位的,从基础地址读64位
分几次读就可以了,读了 放通用寄存器
符号位 是由人说的算的, 计算机只认识0 和1
运算是二进制运算,运算出来的是一串 0和 1 的组合
对于计算机给出的 0和1 的组合的意义是
人规定的。
你看到的十进制
是经过软件处理后看到的。
也就是
CPU 是不认识doulb int
float 类型说的是数,代码经过编译后,这些类型说明 只能告诉CPU处理多少位的0 1,他们是参与运算的数据。
这些类型是C语言赋予的意义
也是C语言编译成机器码的一种规则,是伪指令,如果没有这些规则呢,高级语言就没法让计算机运算了