首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

Java转汇编代码的分析。不一般困惑。请大家支招

2013-11-29 
Java转汇编代码的分析。特别困惑。请大家支招byte map[32]{0,0……0}int lenstrlen(string)for(int i0i

Java转汇编代码的分析。特别困惑。请大家支招


byte map[32]={0,0……0};
int len=strlen(string);
for(int i=0;i<len;i++)
map[(string[i])>>3] |= 1<<( (string[i]) &7)

下面是汇编代码,map和string都是byte型的变量。
PrepareMap PROC,
string:PTR BYTE,
map:PTR BYTE

local i:byte
mov esi,string
mov eax,map
mov i,0

For:
     SHRD ebx,[esi+i],3
     AND [eax+i],7
     SHRD edx,[eax+i],1
     OR [eax+ebx],edx
     inc i

loop For



我这是直接按照代码翻译过来的,但是有错误,谁懂能帮我看看纠正下嘛。 汇编?java
[解决办法]
你应该:

  lea esi,string
  lea edi,map
for:
  movzx ecx,byte ptr [esi]
  inc esi
  jecxz done
  mov edx,1
  mov eax,ecx
  and ecx,7
  shr eax,3
  shl edx,cl
  or [edi+eax],edx
  jmp for
done:

  
  

热点排行