《程序是怎样跑起来的》第三章

第三章,讲的是二进制的小数运算机制,如何用二进制表示小数呢?通俗的说:一个小数乘以2结果小于1就为0基数不变,若大于1为1,基数=基数-1。

例:0.6,0.6*2=1.2>1 为1  基数=1.2-1=0.2,0.2*2=0.4<1  为0  基数=0,0.4*0.8<1 为0  基数=0,0.8*2=1.6>1  为1  基数=1.6-1=0.6....所以0.6二进制:1001。计算机在进行小数运算时,有一些数无法转换成二进制数,例如:1/3结果是循环小数,而计算机是功能有限的设备,处理不了无限循环小数。会取近似值或四舍五入。

前三个小章结,讲述了二进制如何表示小数、计算机在程序运行后得不到正确的结果及计算机出错的原因是由于采用浮点数处理小数,期间提到了正则表达式和EXCESS系统以及如何避免出错。在最后补充了二进制和十六进制的转换。

原文地址:https://www.cnblogs.com/liu7/p/10313239.html

时间: 2024-10-09 21:20:21

《程序是怎样跑起来的》第三章的相关文章

汇编语言第三章知识梳理及思考

第三章 内存访问的角度学习寄存器 3.1内存中字的存储 0号单元是低地址单元,1号单元是高地址单元. 问题: (1)0地址单元(字节单元)中存放的字节型数据是多少?20H (2)0地址字单元中存放的字型数据是多少?4E20 (3)2地址字单元中存放的字节型数据是多少?12H (4)2地址单元中存放的字型数据是多少?0012H (5)1地址字单元中存放的字型数据是多少?124EH 结论:任何两个连续的内存单元,N号单元和N+1号单元,可以将它们看成一个地址为N的字单元中的高位字节单元N+1和低位字

汇编语言第三章总结

第三章中,我们从访问内存的角度了解学习几个寄存器 下面将知识点总结如下: 一.16位寄存器存储一个字,就要用高8位存放高位字节,低8位存放低位字节 0为低地址单元,1为高地址单元,表示数据4E20H(20000),起始地址是0,即是0地址字单元 存储字用两个单元,逆序存放,而存储字节只用一个单元 二.mov al,[0]  表示将内存单元内容存入寄存器,[]中的0表示偏移地址,DS寄存器,存放访问数据的段地址 用mov指令只能通过如 mov bx,1000 mov ds,bx 为DS寄存器赋值,

汇编语言第三章小结

第三章 内存访问 字数据在内存中的存储 1.      内存以字节为单位,划分为若干个单元 2.      字数据的存-取原则:高-高  低-低(小端法) 即: ① 字数据的低位字节存放在低地址内存单元 字数据的高位字节存放在高地址内存单元 ② 取低地址内存单元地址作为字数据地址 例1: 字数据124EH的地址是( 1 ) 字数据3020H存入内存后地址为4,则4存放( 30H ),3存放( 20H ) 例2: 从地址单元1取出一个 (1)     字节数据为:  4EH (2)     字数据

汇编语言第三章

一.知识点(博主自认为关键的几点) 1.把值存入段寄存器ds:需通过先给数据寄存器值(ax, bx, cx, dx),再送入ds中 如: mov ax,2000 mov ds,ax 2.字数据的存取原则: 字数据的低位字节存放在低地址内存单元:高位则放于高位地址:(小端法) 如:124EH在内存中的存放位置如下: (且地址为[1]) 3.关于mov指令值得注意的一点,当作为第二个操作数的常数最高位为a-f时,前面要加0 4.SS:SP,与ds相同,ss也不能直接送值 二.小测试 栈的使用主要需要

汇编语言:第三章 寄存器(内存访问)

3.1内存中字的存储 CPU中寄存器是16位的,可以用高低字节存储一个字,但是每个内存单元是8位的,只能存储一个字节, 所以内存中用相邻2个内存单元存储一个字的高低字节 如:20000数值(4E20H)在地址0的内存单元数值为20H,在地址1的内存单元数值为4EH 两个内存单元存储一个字型数据叫做一个字单元, 字单元的起始地址为N就叫N地址字单元,表示一个字的低字节在地址N的内存单元,高字节在地址N+1的内存单元 任意连续的2个内存单元都可以组成一个字单元 3.2 DS和 [address] C

汇编语言第三章——寄存器(内存访问)

1.内存中字的存储 高位字节存放在高地址单元中,地位字节存放在低地址单元中. 将起始地址为N的字单元简称为N地址字单元. 2.DS和[address] 8086CPU自动取DS中的数据为内存单元的段地址. 8086CPU不支持将数据直接送入段寄存器的操作. 3.字的传送 mov ax,[0]:字型数据传送 mov al,[0]:字节数据传送 原因:高位字节存放在高地址单元中,地位字节存放在低地址单元中. 4.mov,add,sub指令 mov指令的几种形式: mov 寄存器,数据 mov 内存单

汇编语言 第三章 寄存器

3.1 内存中字的存储: 在内存存储时,由于内存单元是字节单元(一个单元存放一个字节),所以一个字要用两个地址连续的内存单元来存放,这个字的低位字节存放在低地址单元中,高位字节则会存放在高地址的单元中. 字单元,即存放一个字型数据的内存单元,由两个地址连续的内存单元组成.高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节. 3.2 Ds和address: CPU想要读取一个内存单元时,必须先给出这个内存单元的地址.8086中有一个DS寄存器,通常用来存放要用的数据的段

汇编语言 第三章 寄存器(内存访问)

1.字数据在内存中的存储 (1)内存以字节为单位划分为若干个单元. (2)字在储存时要用两个地址连续的内存单元来存放. (3)字数据的存-取原则:高-高,低-低.即小端法,低位字节存放在低地址内存单元,高位字节存放在高地址内存单元,并且取低地址内存单元地址作为字数据地址. (4)在内存和寄存器之间传送字型数据时,高地址单元和高8位寄存器.低地址单元和低8为寄存器相对应. 2.数据在内存单元和CPU之间的传送 (1)执行命令时,默认情况下,8086自动取寄存器DS中的值为内存单元的段地址. 1)将

汇编语言 第三章

3.1 内存中字的存储:CPU中,用16位寄存起来存储一个字.高8位存放高位字节,低8位存放低位字节.在内存中存储时,由于内存单元是字节单元(一个单元存放一个字节),则一个字要用两个地址连续的内存单元来存放,这个字的低位字节存放在低地址单元中,高位字节存放在高地址单元中. 字单元的概念:字单元,即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成. 3.2 DS和[address]:8086CPU中有一个DS寄存器,通常用来存放要访问数据的段地址. 指令执行时,8086CPU自动

汇编语言程序设计第三章

第三章 寄存器(内存访问) 1 内存中字的存储 1个字=2个字节,如从0开始存放20000(4E20H),20.4E分别表示1个字节,内存中字的存储如下图所示: 任何两个地址连续的内存单元(0.1.2......),N号单元和N+1号单元,可以看成两个内存单元.比如说上图中的0内存单元(字节单元),存放的是字节型数据,就是20H(十进制的32):0地址字单元,存放字型数据,就是4E20H. 任何两个地址连续的内存单元,N号单元和N+1号单元,也可以看成一个地址为N的字单元中的高位字节单元和低位字