我正在尝试理解程序中的一部分程序,但我并没有真正理解。有人能解释一下这些代码行是如何工作的吗? 我读到代码.long num表示带有该值的long,但是这种接缝并非如此 谢谢!
nums: // storing an array of numbers
.long 1 + 3 // Does this mean that we are soring the number 4 in nums?
.long 2 * 12 //storing 24?
.long 0x3 | 0x772 // storing one or another hexidecmial number?
.long 4 // storing the number 4?
.long 5 // storing the number 5
.equ size, 5 # #define size 5
答案 0 :(得分:0)
嗯, .long 告诉汇编程序保留4个字节的内存。然后,计算作为参数给出的表达式,并用结果初始化此内存位置。
在您的示例中,位置 nums 的值将 4 , nums + 4 将 24 在 nums + 8 两个十六进制值之间的按位逻辑OR (运算符|)等。
所以它完全有意义作为一个数字数组(正如你的评论所说),因为有一些数字存储在连续的内存位置。