+ -
当前位置:首页 → 问答吧 → 内存数据存放问题。

内存数据存放问题。

时间:2011-11-26

来源:互联网

代码如下:

  ORG 30H

  DATE1 DB 56H,“ABCD”   ;这里打不出来英文单引号

  DATE2 DW 1234H,“EF”

  CONT = DATA2-DATA1

  DATE3 = DATA2+2

想问的是: 

  一、DATA1定义的是字节类型,那么“ABCD”怎么可能是一个字节就能放得下的,如果“ABCD”不能放在一个字节里面,那么怎么又把定义成一个字节类型?

  二、上面的数据如果放到内存里面,是不是这样的
       -----
      | 56H  |  偏移量 30H
      | 41H  |      31H
      | 42H  |      32H
      | 43H  |      33H
       | 44H  |      34H  
      | 12H  |      35H
      | 34H  |      36H
      | 45H  |      37H
      | 46H  |      38H
       -----
  那么DATA2-DATA1,也就是 CONT 的值是不是:35H — 30H=6?
    DATA2+2, 也就是 DATA2 的值是不是:35H + 2=37H=45H?

作者: mustmust   发布时间: 2011-11-26

引用楼主 mustmust 的回复:
代码如下:
ORG 30H
DATE1 DB 56H,“ABCD”   ;这里打不出来英文单引号
  DATE2 DW 1234H,“EF”
  CONT = DATA2-DATA1
DATE3 = DATA2+2
想问的是: 
  一、DATA1定义的是字节类型,那么“ABCD”怎么可能是一个字节就能放得下的,如果“ABCD”不能放在一个字节……

实际情况是:

       -----
      | 56H  |  偏移量 30H
      | 41H  |      31H
      | 42H  |      32H
      | 43H  |      33H
       | 44H  |      34H  
      | 34H  |      35H
      | 12H  |      36H
      | 46H  |      37H
      | 45H  |      38H
      | ???  |      39H
      | ???  |      40H

作者: gsy999   发布时间: 2011-11-27