Pointers 汇编字节PTR澄清
我正在解决一些实践问题,我被一件事困住了: 字节PTR值+2中的十进制值是多少Pointers 汇编字节PTR澄清,pointers,assembly,x86,Pointers,Assembly,X86,我正在解决一些实践问题,我被一件事困住了: 字节PTR值+2中的十进制值是多少 .data list DWORD 50 DUP(?) matrix DWORD 20 DUP(5 DUP(?)) value DWORD 10597059 ; decimalstring BYTE "Computer Architecture",0 列表的基址为1000H 我知道答案是161,但我不知道怎么去那个地方。有人能解释一下这个过程吗?其中有来自使用相同数据集的其他问题的额外
.data
list DWORD 50 DUP(?)
matrix DWORD 20 DUP(5 DUP(?))
value DWORD 10597059 ; decimalstring
BYTE "Computer Architecture",0
列表的基址为1000H
我知道答案是161,但我不知道怎么去那个地方。有人能解释一下这个过程吗?其中有来自使用相同数据集的其他问题的额外数据信息,仅供参考
谢谢 变量值的十进制值为10597059-这是十六进制的DWORD值00A1B2C3。现在,由于体系结构为,该值以相反顺序存储在内存中:
0 1 2 3 0 1 2 3 ( position )
00 A1 B2 C3 will be stored as C3 B2 A1 00 ( value )
在这里,您可以看到字节PTR value+2所指向的单字节值是1十六进制=161十进制。由于字节PTR值指向位置0处的字节,字节PTR值+2指向位置2处与值相关的字节,因此在上图中,右图是它在内存中的存储方式。指向的这些字节仅为直接寻址的DWORD值的四分之一。请正确设置代码格式。可能值得一提的是,字节PTR意味着它只是对这一个字节的引用,而不是单词PTR value+2,后者是值的最后两个字节高的一半。