如何在字节数据类型中存储多个字符?我的意思是如果声明为Byte的变量的大小具有1字节的存储空间,那么如何分配超过1个字节?看下面:
section .data
msg db 'hello world' ;here msg is defined to be byte but holds 11 char's
如果我误会,请帮帮忙?
答案 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位)值。这些操作通常不接受字符串(例如,包含单个字符的四字系列存储位置根本不被使用)。