回 帖 发 新 帖 刷新版面

主题:很不明白

DA1 DB 4 DUP(5),2
    COUNT EQU 10
    DA2 DD COUNT DUP(?)
问:(1) 上述数据定义为变量DA1分配多少字节存储空间。
    (2) 为变量DA2分配多少字节存储空间。

我算的答案是 5,40
但答案却是22,40    我明白答案所表达的意思  但却不知道为什么是这样的,我感觉就存储空间就是和求SIZE一样的啊  为什么要用4*5+2得到22呢   

回复列表 (共8个回复)

沙发

我也认为答案是5,40

板凳

DA1 DB 4 DUP(5),2  //4 DUP(5)将分配4*5=20个,2将分配一个,COUNT 将分配一个,共为22个,不错啊。注意:DB不是DD,你怎么得的5啊!
    COUNT EQU 10
    DA2 DD COUNT DUP(?)

3 楼

DA1 DB 4 DUP(5),2 
  对啊,谢谢你的解释
[em2]

4 楼

我也曾有想过这种算法   但是我觉得很奇怪  里面的那个5只不过是个数而已嘛  怎么会表示5字节的存储空间呢

5 楼


5,40
不信可以算一下.

6 楼

我的5是因为
4 dup(5)分配4个空间  然后2分配一个空间  共5个 
而且EQU只是一个变量  应该是没有分配空间的吧 
这就是EQU和DB定义的区别  
一个是变量   而一个是地址

7 楼

DATA SEGMENT
DA1 DB 4 DUP(5),2
    COUNT EQU $-DA1
DATA ENDS
CODE SEGMENT
     ASSUME DS:DATA,CS :CODE
START:MOV AX,DATA
      MOV DS,AX
      MOV BX,COUNT
CODE ENDS
     END START


D:\MASM>DEBUG 011.EXE
-U CS:0 L20
089F:0000 B89E08        MOV     AX,089E
089F:0003 8ED8          MOV     DS,AX
089F:0005 BB0500        MOV     BX,0005

我试了一下,的确是5,怎么是22呢?

8 楼

我也觉得  我们的汇编终于考完了 考的还不错  哈哈

我来回复

您尚未登录,请登录后再回复。点此登录或注册