当前位置:  技术问答>linux和unix

我想在LINUX下编译啊诗玛(ASM),谁能介绍以下情况与经验?

    来源: 互联网  发布时间:2014-12-11

    本文导语:  手头没有相关教材。所有教材都是关于MSDOS的,其中教材中的多数例题在涉及到IO问题时都是简单的交给MSDOS去做。在LINUX下我该怎么办?难道把C源程序只编译到 xxx.s为止,再去看GCC写的汇编吗? | ...

手头没有相关教材。所有教材都是关于MSDOS的,其中教材中的多数例题在涉及到IO问题时都是简单的交给MSDOS去做。在LINUX下我该怎么办?难道把C源程序只编译到 xxx.s为止,再去看GCC写的汇编吗?

|
如果只是io操作,可以直接用欧outx,inx操作,x表示(b,w,l),可以看看man,记得,你必须是root,并且在io操作前调用iopl或者ioperm,iopl简单,但是危险大大的说,因为它开放所有io空间
一个例子
char r;

iopl(3);
outb(5, 0x3f);
r = inb(0x3cf);
iopl(0);

如果非要asm
可以使用nasm,它比较类似masm,至于gnu asm。看了都头大
例子:
section .text
  msg db "Hello ASM!", 0dh, 0
section .code
  global main
  extern printf
  main:
    push ebp
    mov ebp, esp
    push msg
    call printf
    leave
    ret

|
可以直接嵌入 如下例
int main ()
{
    __asm__
    ("
        jmp    0x18                     # 3 bytes
        popl   %esi                     # 1 byte
        movl   %esi,0x9(%esi)           # 3 bytes
        xorl   %eax,%eax                # 2 bytes
        movb   %eax,0x8(%esi)           # 3 bytes
        movl   %eax,0xd(%esi)           # 3 bytes
        movb   $0xb,%al                 # 2 bytes
        movl   %esi,%ebx                # 2 bytes
        leal   0x9(%esi),%ecx           # 3 bytes
        leal   0xd(%esi),%edx           # 3 bytes
        int    $0x80                    # 2 bytes
        call   -0x1d                    # 5 bytes
        .string "/bin/sh"             # 9 bytes
                                        # 41 bytes total
    ");
}

|
可以完全的ASM编程,用as汇编。

    
 
 

您可能感兴趣的文章:

  • 一段可以在linux下编译并且运行正确的程序,在windows下编译也通不过.为什么?
  • 刚安装linux,如何在linux下编写程序?
  • 要在linux下编写关于openssl的程序,并要封装成.cab供win安装ActiveX
  • 怎样在linux下编译java?
  • 如何在linux下编写c程序
  • linux下编译firefox的问题
  • 在linux下编c程,找库
  • 急!急!急!急!急!如何在Linux下编译运行C++程序
  • 请问如何在linux环境下编写C++
  • 怎么在LINUX下编译JAVA?
  • ★★★在linux下编译pro*c文件,提示"sqlcxt"没有定义,哪位高手帮忙,定赠分!
  • 大家在UNIX/LINUX下编写C/C++程序时,用那些库?
  • 如何在linux下编写C程序?
  • 求教在LINUX下编写应用程序
  • 如何在linux下编译.pc程序
  • 请教:Linux下编译c代码,运行程序时出现undefined symbol exp
  • 求在Windows下编译Linux C程序的快捷途径?
  • linux下编译ACE5.7.5(总结)
  • linux下编译c++程序,系统头文件中包含的函数的定义源代码可以查看吗?
  • windows下编写的JAVA程序如何放到Linux下运行??
  • linux下free命令显示的内存使用情况分析
  • 求助:java实现显示linux下的cpu占用率,内存使用情况,硬盘占用情况
  • 有没有在大连搞linux的,我想了解一下大连的linux情况!
  • 在先装windowsxp,后装linux的情况下,不能进入linux
  • 无法设置路由器的情况下,远程连接linux电脑
  • 怎样以日志的形式记录Linux上CPU以及Memory的利用情况.
  • linux系统运行php几分钟后出现假死情况请问需要设置什么地方?
  • 高分请教! 在不重新安装linux的情况下,怎样扩大linux的硬盘分区?
  • 在PC机、现装XP的情况下,如何安装LINUX?
  • Linux的主机怎么监控网络使用情况?
  • Linux下如何将一个文件cut为固定的长度?在已有文件句柄的情况下。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 有WINDOWS编程经验的人想学LINUX及开发,该怎么学,请有经验的指教
  • 恳请对服务器的开发有经验的谈谈服务器开发经验(Unix/Linux & Win32):服务器构架、内存泄漏检测,异常出错……!!!
  • 没有LINUX经验如何获得一份LINUX工作
  • 请教 Linux 手机 DIY 编程的办法及经验
  • 想在linux下学习oracle,有经验的高手们给点建议。
  • 请有经验的朋友推荐一下Linux/Nnix下网络编程方面的书,急需学习
  • 这里有一个linux论坛。(后备力量全是Linux开发有经验的程序员)
  • 想学习linux环境下的IM server/client 开发,请有经验的朋友指点一下!
  • 嵌入式linux学习经验
  • Unix/Linux下的开发经验,谁有这方面面试题.
  • 请教有实战经验的大虾们关于Linux做安全路由或网关服务器的问题!
  • 求助!如何在linux中移植SOAP协议?有经验的朋友提供一点建议
  • 求有过公司linux解决经验的高手指点!!!
  • 高薪求Linux开发高手,可兼职,有开发经验的进来看看
  • 请有配置Linux下ftp服务器经验的人和我联系,高分重赏 (OICQ:57226475)
  • 想通过自己动手学习Linux网络编程,做一个什么比较好呢?望有经验的高手指点~~
  • 招聘: 嵌入式linux工程师,1-2年工作经验,熟悉QT
  • 请有经验者介绍本学linux操作系统的书
  • 跪求linux下开发经验!及 学习GTK电子书籍!
  • 新人求教,linux c开发,路过的经验者,请帮住我
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在linux下编c程,找库 iis7站长之家
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3