序言

为了提高可读性,我添加了这一段,另外由于我用的是VS2017,会出现一些奇怪的错误,也一并在这里解决。

例如本次出现了这个错误(安全检查错误):错误 C4996 ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. Project1 e:\projects\c\project1\project1\no.3.c 17

解决办法:#define _CRT_SECURE_NO_WARNINGS 在代码中加上这个宏定义,最好是在最上方加。其他方法自行问度娘。

C代码

这个实例很简单,就是计算两个整数的乘积,下面看代码:

我对书中的代码稍稍添加了一些,getchar() 函数防止运行的时候一闪而过。

汇编代码

我在 int main 处下的断点,直接调试查看反汇编代码,如下:

就截取这些代码,main函数后的检查esp是否正常的代码就没截取。

0177B30h 内存信息,存着要打印出来的字符串:

新接触了一个指令:imul 指令意思是有符号数乘法运算,拓展一下, mul 是无符号数的乘法运算,指令格式如下:

r表示寄存器,32,16表示位数

m表示内存

imm表示立即数

结语

又学习了一部分,之前还没在反汇编代码中遇到imul,见得太少了,要多加练习。

PS:今天早上接到通知,要出差,很懵逼,第一次出差哎~,还好有同事一块,希望一切顺利!

如有错误,敬请指出,感谢指正!    —2019-05-15 22:00:51    于苏州

c语言求三个整数的积,反汇编学习-C语言实例解析精粹-实例3求整数之积相关推荐

  1. c语言编程实例解析精粹,C语言实例解析精粹学习笔记——35(报数游戏)

    实例35: 设由n个人站成一圈,分别被编号1,2,3,4,--,n.第一个人从1开始报数,每报数位m的人被从圈中推测,其后的人再次从1开始报数,重复上述过程,直至所有人都从圈中退出. 实例解析: 用链 ...

  2. 大学c语言第三章作业,华中科技大学光电子学院C语言第三章

    <华中科技大学光电子学院C语言第三章>由会员分享,可在线阅读,更多相关<华中科技大学光电子学院C语言第三章(20页珍藏版)>请在装配图网上搜索. 1.第三章 简单程序设计 1. ...

  3. 《C语言入门指南》合集版,学习c语言有这一篇就够了?

    前言: <C语言入门指南>,全文分为3篇,共计34248字,此为合集版,适用初学者入门C语言,非初学者也可以通过本文复习C语言相关知识点,强化记忆!十三肝7天才弄完,贼累了,发布这篇笔记也 ...

  4. python语言编程入门先学什么-初学者先学习python语言还是C语言

    有人觉得应该从C语言开始入门,原因如下: 1.C语言是你上大学第一门接触的编程语言,可见它的重要性. 2.C语言是一种面向过程的语言,而Python是一种面向对象的解释型计算机程序设计语言.而你需要先 ...

  5. c++ 小游戏_C/C++编程笔记:C语言写推箱子小游戏,大一学习C语言练手项目

    C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...

  6. c语言输出三个比值为,请问如何用C语言表示数的比值

    想表示最大公约数与最小公倍数之比为1:120,大概是在判断语句里,用"最小公倍数/最大公约数==120"就行了,如果符合这个条件就跳出. 代码: #include //求最大公约数 ...

  7. c程序设计语言第三章简答题,第3章 程序设计语言(答案).doc

    第3章 程序设计语言(答案) 踩厅灾伍亥挝拳缴海梳姻麦诅吨逝谭坪趋培矮提膜肥厘脯与哩廉诛赚来打揭粤魄又罢植郎苏咳居镊型惺肘挑搜禽剔抹缝咕昔春鸵等牺阎厩退墨脸噎姨辱蹋苯拐汲饿菊淌呕点省唤乍痞兢凛鞭庶鞋克 ...

  8. c语言随机三位数,【分享代码】弥补c语言随机数不足

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 // Rand 3 //10的poa次方 int poww(int poa) { int poi, gett = 1; if (poa == 0) ret ...

  9. c 语言中三个函数,帮忙解释几个C语言中的函数?

    1memcpy在两个内存空间之间拷贝字符.其函数原型为: void *memcpy( void *dest, const void *src, size_t count ); 其中dest是拷入起始地 ...

最新文章

  1. Spring Cloud源码分析(二)Ribbon(续)
  2. sqlserver存储过程循环写法
  3. 手机鸿蒙公测选择一个应用,鸿蒙系统公测半个月,首批“差评”很难听,但是却也很真实...
  4. 第三周读书笔记《程序员修炼之道》
  5. android调试+及JNI相关
  6. ubuntu安装vmware-tools
  7. 学计算机 数学日记,数学日记3篇
  8. PDF编辑器哪个好,怎么在PDF中添加图片
  9. I2S协议-一篇文章带你了解
  10. word中标题去掉前面的点
  11. liunx服务器日志在什么位置,系统日志查看位置(Windows+Linux)
  12. 慕尼黑大学计算机硕士专业,德国可以申请的英语授课的计算机硕士有哪些学校?...
  13. 软件性能测试模拟笔试题目
  14. JAVA中输出分两栏,老司机搞定Java 设置Word分栏
  15. 解决导出excel文件名中文乱码的问题
  16. html5 canvas时光隧道3D粒子动画js特效
  17. 【面朝大厂】面试官:你对MySQL中的索引了解多少?
  18. 下载kaggle比赛的数据集
  19. 【去后厂村开游戏厅吧】基于pp-tinypose的体感贪吃蛇游戏
  20. python中os库用法详解(总结)

热门文章

  1. php中::双冒号作用
  2. matlab2020b中的nargin函数报错问题
  3. 学堂在线-清华大学-操作系统实验Lab1【练习5-6】
  4. background-repeat
  5. linux系统灾难恢复,轻松解决 Linux操作系统故障恢复技巧
  6. 自学 Linux 8—文件系统简介之 Linux 下的文件系统
  7. OCam 录制,可变帧率、码率及恒定帧率、码率详解
  8. mongodb服务配置
  9. python opencv单目测距 小孔成像原理
  10. 使用MySQL管理工具-SQLyog 9.63报错号码2058,超详细解析