作者learnerQQ (小铨)
看板ASM
标题[问题] 有关 MASM新手的问题 想请教各位前辈
时间Wed Apr 7 15:44:57 2010
学校最近教了 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
1F:→ techo:一点建议. 你确定0160h没有东西吗? 我想比较好的写法是先宣 04/08 17:06
2F:→ techo:告like "data DB ?" 然後将offset 指向esi 04/08 17:08
3F:→ techo:这样应该可以解决你的问题 04/08 17:09
4F:推 loveflames:记得最前面有一小段记忆体是不可存取的,忘了是1KB还是 04/08 22:26
5F:推 loveflames:4KB 04/08 22:26
6F:推 loveflames:记错了,是64K才对,所以是0x00000000~0x0000ffff 04/08 22:41
7F:→ learnerQQ:谢谢 我试试看 THX 04/09 23:32