[問題] 有關 MASM新手的問題 想請教各位前輩

看板ASM (組合語言)作者 (小銓)時間15年前 (2010/04/07 15:45), 編輯推噓3(304)
留言7則, 3人參與, 最新討論串1/1
學校最近教了 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

04/08 17:06, , 1F
一點建議. 你確定0160h沒有東西嗎? 我想比較好的寫法是先宣
04/08 17:06, 1F

04/08 17:08, , 2F
告like "data DB ?" 然後將offset 指向esi
04/08 17:08, 2F

04/08 17:09, , 3F
這樣應該可以解決你的問題
04/08 17:09, 3F

04/08 22:26, , 4F
記得最前面有一小段記憶體是不可存取的,忘了是1KB還是
04/08 22:26, 4F

04/08 22:26, , 5F
4KB
04/08 22:26, 5F

04/08 22:41, , 6F
記錯了,是64K才對,所以是0x00000000~0x0000ffff
04/08 22:41, 6F

04/09 23:32, , 7F
謝謝 我試試看 THX
04/09 23:32, 7F
文章代碼(AID): #1Bl3VyQP (ASM)
文章代碼(AID): #1Bl3VyQP (ASM)