王爽《汇编语言》综合研究实验5 (3)
来源:互联网 发布:南京大汉网络职位 编辑:程序博客网 时间:2024/05/22 15:40
实现一个简单的printf函数,只需支持"%c、%d"即可
这边先看一下C中printf函数的简单例子的汇编代码,这边我们用综合研究中所搭建的简介C开发环境写一个简单的printf例子:
生成相应的printft.exe可执行文件,在cmd下用debug进行调试,得到对应的汇编指令如下:
printf函数本身的汇编指令太长,这边我们重点放到printf函数和参数的确定和储存还有传递关系,我们知道函数内部参数都是放入堆栈中,但是上面代码中的MOV AX,0194是干嘛用的呢,是不是为了确定参数的个数呢,还是什么,大家可以探讨一下……
过了几天……
现在明白MOV AX,0194的含义了,因为我们在printf参数中,由一个参数定义为char *,这个0194就是我们定义的char *字符串的相对于数据段的偏移地址。实在是对不起之前的同仁了,之前没有把自己写的printf函数放上去,是因为还没有写出来,这次放上去请原谅:
这边的代码由一个问题是,如果,在一个程序中多次的调用printf的话,那么之后的printf输出来的数据就会覆盖前面的数据,并且,我们默认是显示在cmd模式下的第10行,第40列的,这边因为考虑的是跟汇编似乎没有多大的关系,所以没有在继续完整下去,但是如果有兴趣的阅览者可以将代码进行改善,给个建议:可以将showp定义成静态的全局变量,只在调用printf的时候,showp进行自动的增加,可以如下
欢迎指正批评请教……
- 王爽《汇编语言》综合研究实验5 (3)
- 汇编语言 综合研究
- 汇编语言综合研究——使用寄存器
- 王爽汇编语言综合研究-使用内存空间
- 王爽 汇编语言 实验5 答案
- 关于 王爽 汇编综合研究 研究实验五 函数如何接受不定量的参数 (偷工法)
- 《汇编语言(第3版)》王爽 第十章实验
- 《汇编语言(第3版)》王爽 第十一章实验
- 《汇编语言(第3版)》王爽 第十三章实验
- 《汇编语言(第3版)》王爽 第十二章实验
- 《汇编语言(第3版)》王爽 第十四章实验
- 《汇编语言(第3版)》王爽 第十五章实验
- 《汇编语言(第3版)》王爽 第十六章实验
- 《汇编语言(第3版)》王爽 第十七章实验
- 5、王爽《汇编语言》笔记_实验7
- 3、王爽《汇编语言》笔记_实验6
- 王爽《汇编语言》(第3版) 实验七
- 汇编语言(王爽)实验十 编写子程序
- maskedTextbox
- wince下winsocket2编程初步
- QC简单使用
- 什么是Hibernate
- 单链表的建立程序
- 王爽《汇编语言》综合研究实验5 (3)
- Android通过有线USB上网卡上网
- BrowserShot搭建
- JavaScript【带时间的日期控件】
- 关于函数地址复杂声明和定义
- 堆和栈的区别
- 做对事和做对人其实是一回事
- Android底层开发Led控制实验
- IT机器