您有兩個字節0x01
和0x02
。到目前爲止,這是兩個字節。
然後你有兩個單詞,0x0001
和0x0002
。這是另外四個字節,迄今爲止有六個字節。
的有兩個多個字節構成串「12」的字符,這是0x31
和0x32
在ASCII 的(a)。這是另外兩個字節,總計達到八個。
在小尾數格式(這是你在找什麼,在這裏基於內存重視您的問題狀態),它們存儲爲:
offset value
------ -----
0 0x01
1 0x02
2 0x01
3 0x00
4 0x02
5 0x00
6 0x31
7 0x32
(一)在這種情況下使用的字符集是ASCII(您可以在該鏈接中查看描述該集合中所有字符的表格)。
的字節值0x30
通0x39
是數字0
通9
,正如字節0x41
通0x5A
代表大寫字母字符。該僞操作:
db '12'
是說插入字節字符'1'
和'2'
。
同理:
db 'Pax is a really cool guy',0
會給你的十六進制轉儲表示:
addr +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +FABCDEF
0000 50 61 78 20 69 73 20 61 20 72 65 61 6C 6C 79 20 Pax is a really
0010 63 6F 6F 6C 20 67 75 79 00 cool guy.
+1表格。但偏移量1的字節應該是2我相信。 – cyco130
@paxdiablo感謝您的幫助表!所以單詞總是被反向讀入內存?你能幫助解釋爲什麼'12'表示爲0x31和0x32? – raphnguyen
@raphnguyen有兩種表示單詞的方法。這個倒退的順序叫做big endian,另一個叫做little endian。 '12'是一個字符串。 0x31和0x32是'1'和'2'的ASCII碼。 – cyco130