zoukankan      html  css  js  c++  java
  • [原创]linux简单之美(一)

    原文链接:linux简单之美(一)

    话说windows也有syscall,这是必须的。但是win的syscall可以直接call吗?可以是可以但是破费周折,搞成SDT之类的复杂概念。下面看看linux是如何做的吧。

     1 section .data
     2 msg db "hello hopy!",0x0a
     3 
     4 section .text
     5 global _start
     6 
     7 _start:
     8     mov eax,4
     9     mov ebx,1
    10     mov ecx,msg
    11     mov edx,12
    12     int 0x80
    13     
    14     mov eax,1
    15     mov ebx,0
    16     int 0x80

    关键是系统调用号要知道,开始找的是usr/include/asm-gen*/unistd.h,可是都不对。后来找的是usr/include/x86_64_linux_gnu/asm/下的头文件,有2个,分别对应x86和x64.、编译连接指令如下:

    nasm -f elf main.asm

    ld main.o

    运行,段转储错误鸟,查了一下,本猫用的是x64位的linux,所以要生成x64位的程序,或者指明是x86的程序,我选择后者:

    ld -m elf_i386 -o main main.o

    哦鸟!

  • 相关阅读:
    16.检查是否为BST
    15.输出单层结点
    14.高度最小的BST
    *13.有向路径检查
    12.二叉树平衡检查
    11.双栈排序
    10.回文链表
    9.链式A+B
    8.链表分割
    7.访问单个节点的删除
  • 原文地址:https://www.cnblogs.com/hopy/p/3830295.html
Copyright © 2011-2022 走看看