看板 ASM 關於我們 聯絡資訊
學校最近教了 MASM ,小弟有個問題想請問各位前輩 Q: 我想把 一個小整數放入 記憶體位置 00000160h 的地方 這是我的程式碼: ----------------------------------------------------------------- TITLE test (main.asm) INCLUDE Irvine32.inc .data .code main PROC mov esi , 160h ; 儲存 address 00000160h, points to 00000160h call ReadInt ; input a small integer,放在 al mov BYTE PTR [esi] , al ; 把 al的數值 移到 記憶體位置esi 的地方 call WriteInt call WaitMsg exit main ENDP END main ----------------------------------------------------------------------- 結果出現了 錯誤的訊息: 於 0x0040101a 的 Project.exe 中發生未處理的例外狀況: 0xC0000005: 寫入位置 0x00000160 時發生存取違規! 請問這是所謂的 General Protection Fault 嗎? 請問該如何解決呢 @"@? 先謝謝各位了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.27.33
techo:一點建議. 你確定0160h沒有東西嗎? 我想比較好的寫法是先宣 04/08 17:06
techo:告like "data DB ?" 然後將offset 指向esi 04/08 17:08
techo:這樣應該可以解決你的問題 04/08 17:09
loveflames:記得最前面有一小段記憶體是不可存取的,忘了是1KB還是 04/08 22:26
loveflames:4KB 04/08 22:26
loveflames:記錯了,是64K才對,所以是0x00000000~0x0000ffff 04/08 22:41
learnerQQ:謝謝 我試試看 THX 04/09 23:32