随笔分类 - Assembly
摘要:假如汇编语言要实现如下C语言的功能,编译环境Ubuntu14.04(32位)。#includevoid swap(int *p, int *q){ int tmp = *p; *p = *q; *q = tmp;}int main(){ int a[] = {3, 0, 5,...
阅读全文
摘要:假如汇编语言要实现如下C语言的功能,编译环境Ubuntu14.04(32位)。#includeint refact(int n){ if(n == 1) return 1; else return n * refact(n - 1);}int main(){ ...
阅读全文
摘要:假如汇编语言要实现如下C语言的功能,编译环境Ubuntu14.04(32位)。#includeint fact_for(int n){ int i; int result = 1; for(i = 2; i <= n; i++) result *= i; ret...
阅读全文
摘要:假如汇编语言要实现如下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...
阅读全文
摘要:以下代码示范交换a和b两个整数的函数,编译环境Ubuntu14.04(32位)假如要实现以下C代码#include void swap(int *xp, int *yp){ int x = *xp; int y = *yp; *xp = y; *yp = x;}int...
阅读全文
摘要:本文以printf为例,详细解析一个简单的printf调用里头,系统究竟做了什么,各寄存器究竟如何变化。环境:linux + gnu as assembler + ld linker如何在汇编调用glibc的函数?其实也很简单,根据c convention call的规则,参数反向压栈,call,然...
阅读全文

浙公网安备 33010602011771号