我想弄清楚十進制12345如何在十六進制產生0x39 0x30。任何人都可以解釋嗎?自組裝以來已經有一段時間了。建議的帖子對我有點幫助,但沒有一個例子可以說明這是如何工作的。十進制到十六進制轉換在彙編中如何工作?
.hword 0xAA55, 12345 ; inserts the bytes 0x55 0xAA 0x39 0x30
給定一次16位的hword處理,12345如何給出十六進制結果?
64位的值是否相同?剛剛用0xFF填充?
@dwelch - 非常感謝。
我想弄清楚十進制12345如何在十六進制產生0x39 0x30。任何人都可以解釋嗎?自組裝以來已經有一段時間了。建議的帖子對我有點幫助,但沒有一個例子可以說明這是如何工作的。十進制到十六進制轉換在彙編中如何工作?
.hword 0xAA55, 12345 ; inserts the bytes 0x55 0xAA 0x39 0x30
給定一次16位的hword處理,12345如何給出十六進制結果?
64位的值是否相同?剛剛用0xFF填充?
@dwelch - 非常感謝。
彙編語言與這些有什麼關係?沒有。
127秒是多少分鐘?你怎麼弄出來的?每分鐘60秒吧?所以127/60 = 2.116666 ....對吧?或者2個餘數7,127秒是2分7秒。
4000秒是幾小時,幾分鐘,幾秒?每分鐘60秒,每小時60分鐘,每小時3600秒,以最大佔位符開始,4000/3600爲1,餘數爲400,因此1小時400秒。 400秒/ 60是6餘數40.因此4000秒是1小時6分40秒。
我們在小學時學會了如何做到這一點?從十進制轉換爲基數60.這與十進制到16進制有什麼不同?它不是。
注意位置是10到電源0,十位是10到電源1,幾百到10電源2等等。秒爲60的電源0,分鐘的位置爲60的電源1,小時的位置爲60的電源2.
12345十進制。我們的16位佔位符是什麼? 16到電源0是1,16到電源1是16,16到電源2是256,16到電源3是4096,16到電源4是65536.12345小於65536並且大於4096所以我們從那裏開始,12345/4096 = 3剩餘57.因此,對於電源3位置或0x3xxx是16。 57/256 = 0,餘數57就是0x30xx。 57/16 = 3餘數9 so 12345d = 0x3039。
然後手臂是little endian,這樣byteswaps在內存中的0x39,0x30。
如果轉換的參數爲十六進制,它更有意義(12345 0x3039):
.hword 0xAA55, 0x3039 ; inserts the bytes 0x55 0xAA 0x39 0x30
當你考慮到機器的字節順序,0xAA55將0x3039成爲命名55 AA 39 30。