帮忙转下这段汇编代码,怎么转易语言

PUSH EBX
PUSH EBP
MOV EBP,DWORD PTR SS:[ESP+14]
MOV ECX,DWORD PTR SS:[EBP]
PUSH ESI
MOV ESI,DWORD PTR SS:[ESP+10]
MOV EBX,ESI
SHR ESI,2
AND EBX,3
TEST ESI,ESI
PUSH EDI
MOV EDI,DWORD PTR SS:[ESP+18]
JBE SHORT Gam.00531D87
NOP
DEC ESI
LEA EAX,DWORD PTR DS:[ECX+ESI]
XOR EDX,EDX
DIV DWORD PTR DS:[7CD674]
MOV EAX,DWORD PTR DS:[EDI]
ADD EDI,4
MOV ECX,DWORD PTR DS:[EDX*4+7C7DB8]
ADD ECX,2E6D23C1
XOR EAX,ECX
TEST ESI,ESI
MOV DWORD PTR DS:[EDI-4],EAX

DSEG SEGMENT 定义数据段

STR DB ‘THIS IS A STRING WITH OR WITHOUT SUN’ 定义元素STR

KEYSTR DB ‘SUN’定义元素KEYSTR

NUM DW ? 保留一个空间
DSEG ENDS

STACK SEGMENT PARA STACK 'STACK’ 定义堆栈段

DW 256 DUP(?) 设置堆栈空间
STACK ENDS

CODE SEGMENT 定义代码段

ASSUME CS:CODE,DS:DSEG, SS:STACK
START: MOV AX,DSEG 开始执行

MOV DS,AX 设置数据段寄存器

MOV ES,AX 设置附加段寄存器

MOV AX,0 AXç½®0
MOV DX,KEYSTR 字符串SUM入DX

LEA BX,STR STR地址存入BX
COMP: MOV DI,BX

LEA SI,KEYSTR

MOV CX,3 设置循环次数为3

REPE CMPSB 循环比较字符串,当cx=0时退出循环
JNZ G1 不为0则跳到g1段执行。
INC AX ax 加1
G1: INC BX bx加1

DEC DX dx减1

JNZ COMP 不为0继续比较

MOV NUM,AX 比较次数存入ax

MOV AX,4C00H 退出程序

INT 21H
CODE ENDS

END START
这个程序说白了也就是找sum在THIS IS A STRING WITH OR WITHOUT SUN中的位置,并显示比较的次数。我的解释不太规范也不太科学,毕竟好长时间没看书了。。。有什么问题大家指出来,谢谢!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-11
汇编语言是最底层的语言,属于初级语言,没有任何封装过的。而E语言已经封装好了,一个代码就能搞定一个命令,这个恐怕转换不了,汇编比E语言难得多。也复杂的多

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网