7.3 操作系统服务例程电子课件 计算机系统基础:C语言视角(RISC-V版).ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《7.3 操作系统服务例程电子课件 计算机系统基础:C语言视角(RISC-V版).ppt》由会员分享,可在线阅读,更多相关《7.3 操作系统服务例程电子课件 计算机系统基础:C语言视角(RISC-V版).ppt(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、7.3 操作系统服务例程电子课件 计算机系统基础:C语言视角(RISC-V版)操作系统服务例程操作系统服务例程输入字符服务例程输入字符服务例程01 kbcr:.word 0 xFFFF0000#KBCR的内存映射地址的内存映射地址02 kbdr:.word 0 xFFFF0004#KBDR的内存映射地址的内存映射地址03#省略省略04#x10=12,输入字符服务例程,输入字符服务例程05 getc:addix2,x2,-4#x2,栈指针,栈指针06swx7,0(x2)#callee-save07lax5,kbcr 08 InPoll:lwx6,0(x5)#测试是否有字符被输入测试是否有字符被输
2、入09lwx7,0(x6)0Aandix6,x7,10Bbeqzx6,InPoll#如果如果KBCR0=0,轮询,轮询0C lax5,kbdr 0Dlwx6,0(x5)0Elwx11,0(x6)#将将KBDR中的数据加载到中的数据加载到x11中中070E行:采用轮询方式的输入字符指令序列行:采用轮询方式的输入字符指令序列x11中包含了从键盘输入的字符的中包含了从键盘输入的字符的ASCII码码0Fcsrrw x5,mepc,x010addix5,x5,411csrrw x0,mepc,x5#mepc-mepc+412lwx7,0(x2)#恢复寄存器恢复寄存器13addix2,x2,414lwx6
3、,0(x2)15addix2,x2,416lwx5,0(x2)17addix2,x2,418mret#从自陷返回从自陷返回0F11行:行:mepc mepc+418行:从自陷返回行:从自陷返回注意:从键盘输入的字符并不会显示在显示器上注意:从键盘输入的字符并不会显示在显示器上寄存器保存寄存器保存/恢复恢复0506行,行,1217行行采用采用callee-save(被调用者保存)策略的寄存器(被调用者保存)策略的寄存器保存和恢复保存和恢复寄存器寄存器x5,x6和和x7的值被修改,需要保存和恢复的值被修改,需要保存和恢复注意:在自陷处理例程开头,已经将注意:在自陷处理例程开头,已经将x5和和x6的
4、值的值压栈保存,在此服务例程中,只需要将压栈保存,在此服务例程中,只需要将x7的值压的值压栈即可栈即可输出字符服务例程输出字符服务例程01 dcr:.word 0 xFFFF0008#DCR的内存映射地址的内存映射地址02 ddr:.word 0 xFFFF000C#DDR的内存映射地址的内存映射地址03#省略省略04#x10=11,输出字符服务例程,输出字符服务例程05 putc:addix2,x2,-4#x2,栈指针,栈指针06swx7,0(x2)#callee-save07lax5,dcr 08 OutPoll:lwx6,0(x5)#测试显示是否就绪测试显示是否就绪09lwx7,0(x6
5、)0Aandix6,x7,10Bbeqzx6,OutPoll#如果如果DCR0=0,轮询,轮询0C lax5,ddr 0Dlwx6,0(x5)0Eswx11,0(x6)#将将x11中的数据写到中的数据写到DDR中中0Fcsrrw x5,mepc,x010addix5,x5,411csrrw x0,mepc,x5#mepc-mepc+412lwx7,0(x2)#恢复寄存器恢复寄存器13addix2,x2,414lwx6,0(x2)15addix2,x2,416lwx5,0(x2)17addix2,x2,418mret#从自陷返回从自陷返回输出字符串服务例程输出字符串服务例程系统调用号:系统调用号
6、:x10=4,要输出的字符串起始地址位,要输出的字符串起始地址位于于x11中中标志控制的循环:遇到了字符标志控制的循环:遇到了字符x00输出字符串服务例程输出字符串服务例程01 puts:addix2,x2,-4#x2,栈指针,栈指针02swx7,0(x2)#callee-save03addix2,x2,-4 04swx8,0(x2)05addix2,x2,-4 06swx11,0(x2)07#对字符串中的每一个字符进行循环对字符串中的每一个字符进行循环08 loop:lbx8,0(x11)#取得下一个字符取得下一个字符09 beqzx8,Return#如果是如果是0,字符串结束,字符串结束0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 7.3 操作系统服务例程电子课件 计算机系统基础:C语言视角RISC-V版 操作系统 服务 例程 电子 课件 计算机系统 基础 语言 视角 RISC
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内