linux汇编学习(-)之从键盘输入输出

看了一个多月的汇编始终都是门外汉,连个输入输出都很困难,今天终于查阅相关资料实现了得意,也借此寒假的时间好好学习一下汇编,就用下面这段代码来开始汇编的学习吧,如果有什么错误,还请各路大大见谅,毕竟本人也是菜鸟一个!大笑

#实现从键盘输入字符串 并输出
#如果不清楚系统调用函数参数可以使用man 2 function_name 查看
#如 man 2 read
#参数与寄存器对应关系为从左到右分别为ebx,ecx,edx,...(注此为lz自己发现的规律,不一定正确)
#eax 用于指定系统调用的函数代码
#函数对应的宏代码定义可以在头文件/usr/include/asm/unistd.h中看到
.section .bbs                  #定义bbs段
    .lcomm buffer,30
.section .text
.globl _start
_start:
    movl $buffer,%ecx       #下面三条语句将sys_read参数分别传入到相应寄存器,$加变量名相当于取地址
    movl $30,%edx
    movl $0,%ebx
    movl $3,%eax            #系统调用sys_read函数代码
    int $0x80               #使用ox80指定执行系统调用中断代码

    movl $1,%ebx
    movl $4,%eax            #系统调用sys_write
    int $0x80

    movl $0,%ebx
    movl $1,%eax            #系统调用sys_exit

运行结果如下:

      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章