汇编小错误集

1.  end of file not at end of a line; newline inserted      ------------------as编译.s文件时.

英文的意思就是说文末没有换行符。Unix文档的回车换行符是一个字符\n,Windows的是分别的两个\n\r,

解决方法:在文件结尾回车一下.

2.  invalid instruction suffix for `pop'   ------------------as编译.s文件时.

     invalid instruction suffix for `push'

原因是 64 位系统和 32 位系统的差别引起的

解决方法为:

在代码开头添加 .code32 即可

3.  error: instruction not supported in 64-bit mode    --------------nasm编译.asm文件时.
错误:在64位模式下不支持指令

解决方法为: 在elf后加注32位模式编译.  以下的XX代表文件名字.

nasm -f elf32 XX.asm -o XX.o


4.  ld: i386 架构于输入文件 问候.o 与 i386:x86-64 输出不兼容      --------------nasm编译.asm文件时.

解决方法为: 加上-m 参数, 并且后接 elf_i386 即按32位模式运行.
ld -m elf_i386 -s -o XX XX.o

如果仍报错,No such file or directory
> compilation terminated.
这应该是缺少构建32 位可执行程序缺少的包,使用以下指令安装:即是让你的电脑可以兼容32位程序.
 

sudo apt-get install libc6-dev-i386

5. unknown pseudo-op 伪指令不可中文化 ----------------as编译.s文件时.

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值