参考代码了http://blog.csdn.net/scf0920/article/details/77543294

3.58##

看汇编写c代码

long decode(long x, long y,long z){

z-=y;

int ret=z*x;

z>>=63;

z<<=63;

ret^=z;

return ret;

}

3_59##

现将一个参数进行符号扩展

cqto

对rax进行符号扩展 ,置于rdx rax 中

然后用 符号>>63 可以得到另外一个参数的高64位

低位乘高位 高位乘低位 再相加,

最后低位乘低位(使用扩展乘法 只有一个参数的imulq指令)

3_60##

这个题和第二版出入较大

#include<stdio.h>
long loop(long x,int n){
long result=0;
long mask;
for(mask=1;mask!=0;mask=mask<<n){
result!=mask&x;
}
return result;
}

这里要注意%cl 是%ecx的低位,

3_61##

这里要注意如果使用条件传送指令就会预先计算好,各个分支的值,只要保证直接结算分支不会出错就可以

long creadalt(long *xp){

int t;

int *p=xp? xp: &t;

return *p;

}

3_62##

汇编代码的翻译

case MODE_A:
result = *p2;
action = *p1;
*p2 = action;
break;
case MODE_B:
result = *p1 + *p2;
*p1 = result;
break;
case MODE_C:
*p1 = 59;
result = *p2;
break;
case MODE_D:
result = *p2;
*p1 = result;
result = 27;
break;
case MODE_E:
result = 27;
break;
default:
result = 12;

3_63##

long switch_porb(long x,long n){
long result=x;
switch(n){
case 65:
x*=x;
case 61:
result=x+0x4b;
break;
case 63:
result=x>>3;
break;
case 64:
x*=15;
result=x;
break;
default:
result=x*8;
}
return result;
}

参考代码在这里有问题

多个选项指向一个区域意味着这个指针是default跳转的地方,哪里处理的不好

3_71##

void good_echo(){
char s[SIZE];
char *p=fgets(s,SIZE,stdin);
if(p==NULL){
return;
}
puts(p);
}

虽然fgets函数接受一个chars 再把他返回,但是这种用p接受是很有必要的,因为并不是所有的情况都会把s原样返回

最新文章

  1. spool命令
  2. Android 中 LayoutInflater 的使用
  3. html5与html4的区别,如何一眼区分
  4. js获取可视区大小和页面大小的兼容性写法
  5. Address already in use: JVM_Bind&lt;null&gt;:80
  6. java中的native方法和修饰符(转)
  7. 经典线程同步 信号量Semaphore
  8. 读《CSS禅意花园》 有感
  9. 自学Aruba1.4-WLAN厂家魔力象限
  10. 开源:ASP.NET Aries 开发框架(已支持.NET Core)
  11. abaqus python库变强变大233333333333333
  12. 转:嵌入式: jffs2,yaffs2,logfs,ubifs文件系统性能分析
  13. 洛谷P4546 [THUWC2017]在美妙的数学王国中畅游 [LCT,泰勒展开]
  14. Ionic 添加java原生代码 报support.v4不存在问题
  15. myeclipse 怎么安装与激活
  16. asp.net webapi 返回json结果的方法
  17. 【IntelliJ 】IntelliJ IDEA 2017激活码
  18. 【IT笔试面试题整理】不用加减乘除做加法
  19. Linux strace命令详解
  20. [转帖]awk 入门

热门文章

  1. vs Code打开新的文件会覆盖窗口中的文件?
  2. 深入浅出 Java Concurrency (29): 线程池 part 2 Executor 以及Executors[转]
  3. reac-native + typescript 的环境搭建
  4. Windows API 第二篇 SHGetSpecialFolderPath
  5. odoo xml 时间搜索条件
  6. spring cloud深入学习(十二)-----Spring Cloud Zuul网关 Filter、熔断、重试、高可用的使用方式
  7. python—时间与时间戳之间的转换
  8. 【DM642学习笔记三】flash的烧写
  9. Elasticsearch快速开始
  10. RabbitMq知识点总结