带有多个'DUP'的x86数组声明 - 它有什么作用?

时间:2014-02-11 14:58:09

标签: arrays assembly x86 allocation dup

我正在学习 x86程序集,我发现了这个声明:

array1 DB 5 DUP(2 DUP('*'))

该声明的作用是什么?

  1. 为名为array1的数组分配空间,其大小为DB * 5 * 2 = 10和10 *个元素。

  2. 为名为ærray1的数组分配空间,其大小为DB * 5和5 **个元素。这意味着将丢弃5个*元素。

  3. 分配一个名为array1的多维数组,其大小为[5][2]和5个{'*', '*'}元素。

  4. 那么,这个声明是否等同于

    char array1[10] = {'*', '*', '*', '*', '*', '*', '*', '*', '*', '*'}

    或等同于

    char array1[5] = {'*', '*', '*', '*', '*', '*', '*', '*', '*', '*'}

    或者也许:

    char array1[5][2] = {{'*', '*'}, {'*', '*'}, {'*', '*'}, {'*', '*'}, {'*', '*'}}

1 个答案:

答案 0 :(得分:1)

根据注释,声明在内存中分配一个包含10个连续*字符字节的数组。