【问题标题】:Assembly: "junk `oc' after expression"汇编:“表达式后的垃圾'oc'”
【发布时间】:2015-03-26 01:37:26
【问题描述】:

我正在尝试生成以下汇编代码的十六进制表示。我正在做一个缓冲区溢出实验室,我需要将命令放入堆栈。当我尝试使用命令编译以下代码时:

gcc -m32 -c assemblylevel2.s

我得到错误:

assemblylevel2.s:2: Error: junk `oc' after expression

我已经尝试了 mov、movl、push、pushl 不同排列的代码。这都会产生相同的错误。我怎样才能让它编译?

assemblylevel2.s:

movl $0xfaa6ef53, 0x804d108
pushl $0x8048d0c
ret

【问题讨论】:

    标签: gcc assembly


    【解决方案1】:

    鉴于它在第 2 行抱怨 oc,我会首先检查您的代码是否实际上是这样的:

    movl $0xfaa6ef53, 0x804d108
    pushl $0x8048doc             ;; oh-see rather than zero-see
    ret
    

    这肯定会使它成为无效的十六进制数,因此会导致错误,例如您所看到的。

    【讨论】:

    • 哇,就是这样。我已经盯着这个看了将近一个小时。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 2010-12-18
    • 2018-11-23
    相关资源
    最近更新 更多