
c语言汇编学习笔记
无关8688
天若有情天易老,人间正道是沧桑!
展开
-
进制转换例题
编写一个 to_base_n() 函数,接受两个参数,且第二个参数在 2 ~ 10 范围内,然后以第二个参数中指定的进制打印第一个参数的数值。例如,to_base_n(129, 8) 显示结果 201,也就是 129 的八进制数。在一个完整的程序中测试该函数。#include <stdio.h>void to_base_n(unsigned long n, unsigned short t);/* 进制转换,待转换数类型是正整数,因此使用无符号类型标识。*/int main(void)原创 2021-10-26 21:47:14 · 449 阅读 · 0 评论 -
递归法求斐波那契数
#include<stdio.h>int fbnq(int n);int main(){ int n; printf("请输入一个整数表示你想要第几个斐波那契数:"); scanf("%d",&n); fbnq(n); int f_b; f_b=fbnq(n); printf("第%d个斐波那契数是 %d \n",n,f_b); return 0; }int fbnq(int n){ if(n==1||n==2) return 1; else{ ret原创 2021-10-14 22:36:29 · 89 阅读 · 0 评论 -
递归问题实例
/*猴子吃桃一只猴子第一天有一些桃子,第二天吃掉一半,不够吃又多吃一个,第三天也是吃剩下的一半多一个,到第十天还剩下一个,问第一天有多少桃子;*///递归法#include<stdio.h>int function(int n);int main(){ int n=1; int num; num=function(n); printf("the first day had %d peach\n",num); return 0;} int function(int n){原创 2021-10-14 22:20:16 · 75 阅读 · 0 评论 -
用一维数组解决杨辉三角
//用一维数组解决杨辉三角 #include<stdio.h>#include<string.h>int main(){ int a[8]; int i=0; int j; a[0]=1; printf("%d\n",a[0]); a[1]=1; printf("%d %d\n",a[0],a[1]); for(i=3;i<=8;i++){ a[0]=a[i-1]=1; for(j=i-2;j>=1;j--){ a[j]=a[j]+a[原创 2021-10-14 22:09:56 · 143 阅读 · 0 评论 -
求解方程根
//牛顿法求解方程根#include<stdio.h>#include<math.h>float function1(float x);float function2(float x);int main()//主函数 { float x0=4; float x1; float a,b; do{ x0=x1; a=function1(x0); b=function2(x0); x1=x0-a/b; printf("%f,%f\n",x0,x1); }wh原创 2021-10-14 22:07:10 · 100 阅读 · 0 评论 -
csapp汇编之指令操作数
操作数指示符第一种就是立即数。第二种是寄存器。第三种是通过寄存器,立即数来读内存。类型格式操作数值名称立即数$ImmImm立即数寻址寄存器rar_{a}raR[rar_{a}ra]寄存器寻址存储器ImmM[Imm]绝对寻址存储器(rar_{a}ra)M[R[rar_{a}ra]]间接寻址存储器Imm(rbr_{b}rb)M[Imm+R[rbr_{b}rb]](基址+偏移量)寻址存储器(rbr_{b}r原创 2021-08-30 23:06:45 · 720 阅读 · 0 评论 -
csapp之寄存器理解
x86-64寄存器一个x86-64的中央处理单元(CPU)包含一组16个储64位值的通用目的寄存器。 这些寄存器用来存储整数数据和指针图3-2显示了这16个寄存器。它们的名字都以 %r 开头,不过后面还跟着一些不同的命名规则的名字,这是由于指令集历史演化造成的。最 初的8086中有8个16位的寄存器,即图3-2中%ax到%bp。每个寄存器都有特殊的用 途,它们的名字就反映了这些不同的用途。扩展到IA32架构时;这些寄存器也扩展成32 位寄存器,标号从%eax到%ebp。扩展到x86-64后,原来的原创 2021-08-30 11:41:01 · 970 阅读 · 0 评论 -
数据类型说明
c语言之数据格式intel用术语“字(word)”表示16位数据类型。因此称32位数为“双字(double word)”,称64位数为“四字(quad word)”。下表给出的是x86-64表示的c语言基本的数据类型。标准的int值存储为双字(32位)。指针(在此用char * 表示)存储为八字节的四字。c声明Intel数据类型汇编代码后缀大小(字节)char字节b1short字w2int双字l4long四字q8char *四字原创 2021-08-30 11:03:32 · 1294 阅读 · 0 评论