|
发表于 2014-5-15 16:22:06
|
显示全部楼层
decoder 发表于 2014-5-15 15:06
图中8B数据放在20011地址,从内存地址看是高地址,00数据放在20010地址处,是低地址,读取出来的8b00h数据 ...
数据读取也不是从高往低,你想一下最后的物理地址是20010,从这一点就可以看出来他绝对是先读取00这个数据,然后在读取8B这个数据,而最后的数据是8B00,而不是008B,所以你就认为是从高往低读取的。但其实是因为,高位8位存放在高地址,低8位存放在低地址,假设 这条指令是这样字的 mov ax,cs:[0016] 从低往高读, 读取16也就是10h 这个地址的 数据00 放到al 因为低地址对应低8位 al,然后在读取 10+1 ,11h这个地址的数据 8B ,相对于10h,11h这个地址是高地址,所以对应高8位 ah, 而我们看任何数据,都是左边是高位右边是低位,所以 就是 8B00 ,而不是008B,如果楼主要是要强调数据是从 高往低 读取的那我也没办法,而且我想说,无论是数据还是代码,cpu不认识,cpu只会一种读取方式,具体什么是代码,什么是数据,是我们设置cs或者ds来告诉cpu的,所以管是你数据还是代码,cpu只会从低往高读取,至于你要读什么就根据cs和ds来决定。 |
|