| 
			 
					阅读:1322回复:5
				 
				lock or 的含义
					当程序运行到
 
							汇编 lock or [exp+04] 时出现兰屏的故障,请问 lock or 的含义 查win32的指令里没有lock or  | 
	|
					
						
						
						
						
  | 
	
| 
			 沙发# 
								发布于:2005-02-28 09:50				
			
					lock是前缀,表明后面指令在锁住计算机总线的情况下进行,就是防止多处理器架构中其他处理器的干扰,剩下的or [exp+04],嘿嘿,就不用再说了吧				 
							 | 
	|
					
						
  | 
	
| 
			 板凳# 
								发布于:2005-02-28 11:17				
			lock是前缀,表明后面指令在锁住计算机总线的情况下进行,就是防止多处理器架构中其他处理器的干扰,剩下的or [exp+04],嘿嘿,就不用再说了吧 出现兰屏,的原因,并不是这个语句有问题吗? 故障原因 是 bad pool caller 产生这个故障,怎样处理  | 
	|
					
						
  | 
	
| 
			 地板# 
								发布于:2005-02-28 12:01				
			[quote]lock是前缀,表明后面指令在锁住计算机总线的情况下进行,就是防止多处理器架构中其他处理器的干扰,剩下的or [exp+04],嘿嘿,就不用再说了吧 出现兰屏,的原因,并不是这个语句有问题吗? 故障原因 是 bad pool caller 产生这个故障,怎样处理 [/quote] 说明这个语句引用的变量[exp+04]在内存池中可能已被换出,检查这个变量在哪里  | 
	|
					
						
  | 
	
| 
			 地下室# 
								发布于:2005-02-28 13:46				
			
					语句我写的不对,更正如下
 
							出现兰屏的前三个 语句 mov al [esp+08] mov [edx] al lock or [esp+08] edx 这三个语句 的内容是把堆栈中的最后两个值相或,送回堆栈 这样理解对不对  | 
	|
					
						
  | 
	
| 
			 5楼# 
								发布于:2005-02-28 15:37				
			语句我写的不对,更正如下 [edx]和下一句的edx不一致  | 
	|
					
						
  |