使用汇编实现从标准输入获取数据和标准输出输出数据
2015-04-18 21:06
393 查看
# 目的: # 从STDIN获取输入数据,然后从STDOUT中输出数据 #################################### .section .data #######常数####### # 系统调用号 .equ SYS_WRITE,4 .equ SYS_READ,3 .equ SYS_EXIT,1 # 标准文件描述符 .equ STDIN,0 .equ STDOUT,1 .equ STDERR,2 # 系统调用中断 .equ LINUX_SYSCALL,0x80 .equ END_OF_FILE,0 # 表明到达文件结束处 #################################### .section .bss .equ BUFFER_SIZE,500 .lcomm BUFFER_DATA,BUFFER_SIZE #################################### .section .text .global _start _start: ###主循环开始### read_loop_login: ###从STDIN中读取一个数据块### movl $SYS_READ,%eax # 从STDIN读入数据 movl $STDIN,%ebx # 放置读取数据的存储位置 movl $BUFFER_DATA,%ecx # 缓冲区大小 movl $BUFFER_SIZE,%edx # 读取缓冲区大小返回到%eax中 int $LINUX_SYSCALL ###读取输入数据有误### cmpl $0,%eax jle end_loop ###将数据块写入STDOUT### # 缓冲区大小 movl %eax,%edx movl $SYS_WRITE,%eax # 输出到STDOUT movl $STDOUT,%ebx # 缓存区位置 movl $BUFFER_DATA,%ecx # 输出缓冲区数据到STDOUT int $LINUX_SYSCALL ###循环继续### jmp read_loop_login end_loop: ###退出### movl $SYS_EXIT,%eax movl $0,%ebx int $LINUX_SYSCALL
相关文章推荐
- 很棒的!从标准输入文件流读取多行数据并且存放到文件---两种实现;标准输入流到文件再到标准输出流
- 使用IO流实现输出目的为控制台和获取控制台输入的内容
- 使用Jsp实现数据的输入与输出
- shell脚本之重定向、标准输入、输出、错误输出的使用
- js实现获取页面数据转为Json数据并使用
- 使用WebService技术获取第三方数据实现繁体字转换 WEB 服务
- struts2使用validate方法来实现对表单输入数据的校验操作
- 使用RecycleView实现动态获取数据展开二级列表展示
- 2017-7-11 使用bash,标准输入输出和管道
- 从键盘输入某个十进制小数或整数,转换成对应的二进制小数并输出。 (查询十进制小数转换成二进制小数的算法,使用循环来实现。 最多保留小数位后7位数字即可)算法
- 使用递归实现接收用户输入的正整数,输出该数的阶乘
- 使用结构体实现数据的存储与输出
- C语言实现数据输入与输出的函数
- 使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置)
- MVP框架使用Fretiofit获取网络数据使用xrecycleview实现上拉加载下拉刷新
- 数据类型uint16_t,uint32_t,uint64_t输入输出使用方法
- Go 笔记之使用gin实现查询数据Json输出 未封装
- 用排列组合的方式实现输入三个数据从大到小输出数据
- 微信小程序简单实现form表单获取输入数据功能示例
- 从标准输入获取字符串并将换行符去掉-c语言实现