摘要: 假如汇编语言要实现如下C语言的功能,编译环境Ubuntu14.04(32位)。#includeint fact_for(int n){ int i; int result = 1; for(i = 2; i <= n; i++) result *= i; ret... 阅读全文
posted @ 2015-02-03 22:09 Ydoing 阅读(667) 评论(0) 推荐(0) 编辑
摘要: 假如汇编语言要实现如下C语言的功能,编译环境Ubuntu14.04(32位)。#includeint main(){ int a[] = {3, 0, 5, 1, 4, 6, 2, 9, 8, 7}; int i; for(i = 0; i< 10; i++) pri... 阅读全文
posted @ 2015-02-03 21:49 Ydoing 阅读(1199) 评论(0) 推荐(0) 编辑
摘要: 以下代码示范交换a和b两个整数的函数,编译环境Ubuntu14.04(32位)假如要实现以下C代码#include void swap(int *xp, int *yp){ int x = *xp; int y = *yp; *xp = y; *yp = x;}int... 阅读全文
posted @ 2015-02-03 21:36 Ydoing 阅读(555) 评论(0) 推荐(0) 编辑
摘要: 以下代码示范a和b两个整数相加,编译环境Ubuntu14.04(32位)。代码.section .data a: .int 10 b: .int 20 format: .asciz "%d\n".section .text.global _start_sta... 阅读全文
posted @ 2015-02-03 21:11 Ydoing 阅读(650) 评论(0) 推荐(0) 编辑
摘要: 本文以printf为例,详细解析一个简单的printf调用里头,系统究竟做了什么,各寄存器究竟如何变化。环境:linux + gnu as assembler + ld linker如何在汇编调用glibc的函数?其实也很简单,根据c convention call的规则,参数反向压栈,call,然... 阅读全文
posted @ 2015-02-03 20:59 Ydoing 阅读(4503) 评论(0) 推荐(0) 编辑