《30天自制操作系统》学习笔记--第4天


                第四天,写下汇编语言函数用c语言调用

       其实我们可以把这些在完成操作系统编写时写的函数称为库函数(注意:不是标准库函数),但是c在调用库函数(普通函数),压栈的顺序是从右向左的,这个是肯定,所以,参数出栈的时候先出来的是后面的参数,明白了这个问题,就很好理解io_out()函数参数的出栈和参数的使用了,还有函数如果有返回值,保存在eax(32位返回值),64位返回值保存在 eax 和edx中,edx保存高32位,eax保存低32位。

       知道了这些,参数和返回值就已经搞定了,剩下的就是定义和具体代码的实现了,什么利用中断啊,MOV给你MOV给我啊的什么就可以自由发挥了。。看起来已经很酷了。。

       函数定义,搜了一下,发现定义都不同,但都是写global声明下函数名(名字前面加下划线),然后以函数名为标号写下函数体,返回用ret(但有些函数好像不能用RET返回。。具体以后再说)。

       还有就是函数指针,由于博主以前研究了好长时间指针,虽然不能说特别明白,但是看这个书上的指针还是没什么障碍,像什么2[p]这种访问方式,以前也都见过,如果有人这里有疑问推荐几本书:《c专家编程》《c陷阱与缺陷》《c和指针》都有详细描述,自己写个程序试试就行了,这里不再赘述。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值