装配数据类型和存储空间

时间:2014-08-08 12:01:27

标签: assembly types

如何在字节数据类型中存储多个字符?我的意思是如果声明为Byte的变量的大小具有1字节的存储空间,那么如何分配超过1个字节?看下面:

     section .data
msg  db 'hello world'   ;here msg is defined to be byte but holds 11 char's 

如果我误会,请帮帮忙?

1 个答案:

答案 0 :(得分:3)

DB psuedo op应该被理解为,"定义字节"。

它接受一系列表达式和字符串文字。对于每个表达式,它分配一个字节的内存,填充在汇编时计算的表达式的值。字符串文字被视为一系列字节,字符串文字的每个字符都被分配一个字节的内存。所以:

LABEL DB 17," ABC",2

按顺序填写内存字节:

  0x11
  0x41
  0x42
  0x43
  0x02

DB命令上的标签获取DB填充的第一个字节位置的汇编时间值。

其他伪操作,如DW("定义Word"),DD("定义DoubleWord")和DQ("定义Quadword(s)"),拼写可能取决于你的汇编程序,接受一系列表达式,并填写" word" (2字节/ 16位),"双字(4字节/ 32位)和"四字#34;组合输出中的(8字节/ 64位)值。这些操作通常不接受字符串(例如,包含单个字符的四字系列存储位置根本不被使用)。