鱼C论坛

 找回密码
 立即注册
查看: 1834|回复: 4

关于内存单元的问题(不知道形容的对不对)

[复制链接]
发表于 2014-1-25 20:02:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在小甲鱼第五章 [BX]和loop指令05里面讲了一个
计算fff:0~ffff:b单元中的数据的和,结果储存在dx中。
1.》问,ffff:0~ffff:b内存单元中的数据是字节型数据,字节型数据和字型数据的区别,怎么判断?
2.》问,怎么算出还是定义的值范围是在0~255之间?
3.》12个这样的数据相加,结果不会大于65535,这个数怎么得出来的,不应该是255×12么,为什么是2^16次?
4.》怎么看出来ffff:0~ffff:b中的数据是8位的?
谢谢解释,不知道问的是不是很清楚,但是我这几个真的不太明白,求解答。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-25 20:53:56 | 显示全部楼层
1、读取的时候指定 byte ptr = 字节数据,word ptr = 字型数据 例如 mov byte ptr al,[bx]
2、这个没看懂。
3、bH-0H=bH = 11(十进制) 所以fff:0~ffff:b是12(从0开始要+1)字节,设每个字节的值为 ffH(最大),则这11个字节的相加只和为 :12 X 255 = 3060(十进制) 3060 < 65535
  DX是16位寄存器,最大值为 FFFF,换算成十进制数是:65535
4、这个问题和第一个问题一样蛋疼,一个字节=8位,所谓的数据类型,是指在读取时候的长度(应该没错,我是这样理解的)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-25 21:12:09 | 显示全部楼层

谢谢解答我的问题哈,其他的都看懂了,但是最后一个还有疑问,小甲鱼在视频里问:
我们不能将ffff:0~ffff:b中的数据直接累加到dx中,因为ffff:0到ffff:b中的数据是8位的,不能累加到16位寄存器dx中。但是我怎么知道其中的数据是8位的,而不是16位的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-25 21:21:37 | 显示全部楼层
1.》问,ffff:0~ffff:b内存单元中的数据是字节型数据,字节型数据和字型数据的区别,怎么判断?
说的是内存单元,一个内存单元是字节(BYTE),2个内存单元是字(WORD)

2.》问,怎么算出还是定义的值范围是在0~255之间?
由于是内存单元,即字节,一个字节有8个位,每位是二进制的0和1,所以可以存放2^8=256个数,计算机是从0开始算起的,所以是0~255.

3.》12个这样的数据相加,结果不会大于65535,这个数怎么得出来的,不应该是255×12么,为什么是2^16次?
因为这所以的数加起来可以存放在DX中,而DX是可以存放字单元的16位寄存器,所以2^16=65536,即0-65535之间,而那些数相加不会大于这个数,所以DX可以容下结果。

4.》怎么看出来ffff:0~ffff:b中的数据是8位的?
看第1点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-27 11:32:41 | 显示全部楼层

路过学习一下啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-14 17:39:59 | 显示全部楼层
4楼的很详细!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 07:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表