首页 > 试题广场 >

试编写一个满足如下需求的“键盘输人'中断服务程序:在内存空间

[问答题]
试编写一个满足如下需求的“键盘输人'中断服务程序:在内存空间x4000~x40FF分配一个缓存。在中断程序处理中,读入下一个输入字符,并将它存人下一个缓存空位。内存x40FF的内容是指向“中下一个可用空位的指针。如果缓存已满(即地址x40FE已存有字符),则在屏幕上打印消息:“Character cannot be accepted;input buffer full.”

根据以上中断服务函数,并对缓存结构做出以下修改;缓存空间调整为内存地址x4000 ~ x40FC之间。内存x40FF仍然是指向缓存中下一个可用位置的地址。而x40FE包含的是起始字符的地址,x40FD包含的是缓存中字符的个数。其他程序可以从缓存中直接取走字符。试按如下要求修改中断处理函数:如果x4000的字符已被读走(即起始字符的地址后移),则在x40FC被占用之后,下一个可填充的地址就变为x4000同样,缓存满了之后,中断服务程序则在屏幕上打印:"Character cannot beaccepted;input buffer full."

根据以上修改后的中断服务函数,以及一个正在从缓存中取走字符的程序为场景。试问,在同一时刻,中断服务函数正在将字符写入缓存,同时一个程序正在读取缓存,它们能否同时工作,是否存在什么问题?

这道题你会答吗?花几分钟告诉大家答案吧!