什么是MOV EAX,DWORD PTR SS的含义:[EBP + 8H]我怎样才能把它翻译成AT& T公司的格式? [英] What's the meaning of MOV EAX, DWORD PTR SS:[EBP+8h] and how can I translate it into AT&T format?

查看:1711
本文介绍了什么是MOV EAX,DWORD PTR SS的含义:[EBP + 8H]我怎样才能把它翻译成AT& T公司的格式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用code :: Blocks的,以code,而code我引用一个是从Visual C ++,所以我有区别的困难...:(

全code是这里

  NAKED无效ijlWrite()
{
__asm​​ {
    PUSH EBP
    MOV EBP,ESP
    MOV EAX,DWORD PTR SS:[EBP + 8H]
    MOV ECX,ssQuality
    MOV DWORD PTR DS:[EAX + 50H],ECX
    MOV EDX,DWORD PTR SS:[EBP + 0CH]
    PUSH EDX
    MOV EAX,DWORD PTR SS:[EBP + 08H]
    PUSH EAX
    CALL lpfnIJLWrite //一个全局变量
    POP EBP
    RETN
}
}

我会,如果你翻译它们都非常感激。

P.S。我也不知道怎么翻译RETN。怎么做?该cheatsheet文件不具备这样的事情:(


解决方案

  MOV EAX,DWORD PTR SS:[EBP + 8H]

等同于

  MOVL%SS:8(%EBP),EAX%

您只要将源和目标的顺序, DWORD 转化为一个后缀。在%SS: preFIX严格必要的,它使用 EBP 基于内存访问时的默认

I'm using Code::Blocks to code, but one of the code I referenced is from Visual C++,so I have difficulties on the difference...:(

the full code are here

NAKED void ijlWrite()
{
__asm {
    PUSH    EBP
    MOV     EBP, ESP
    MOV     EAX, DWORD PTR SS:[EBP+8h]
    MOV     ECX, ssQuality
    MOV     DWORD PTR DS:[EAX+50h], ECX
    MOV     EDX, DWORD PTR SS:[EBP+0Ch]
    PUSH    EDX
    MOV     EAX, DWORD PTR SS:[EBP+08h]
    PUSH    EAX
    CALL    lpfnIJLWrite //a global variable
    POP     EBP
    RETN
}
}

I'll be very grateful if you translate them all.

P.S. I also don't know how to translate RETN. how to do it? The cheatsheet doesn't have such things:(

解决方案

MOV     EAX, DWORD PTR SS:[EBP+8h]

is equivalent to

movl %ss:8(%ebp), %eax

You just swap the order of the source and destination, the DWORD translates to an l suffix. The %ss: prefix is strictly unnecessary, it's the default when using EBP based memory access.

这篇关于什么是MOV EAX,DWORD PTR SS的含义:[EBP + 8H]我怎样才能把它翻译成AT& T公司的格式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆