2017-2018-1 《信息安全系统设计基础》 20155322 十六周课上实践

2017-2018-1 《信息安全系统设计基础》 20155322 十六周 课上实践

题目

原理

实现

小时设置及提取

#define TIME_Addr  0xFFFFC0000                    //实时钟芯片的IO映像基址是OxFFFFC0000
#define TIME *(volatile int *) (TIME_Addr+2)      //时间存放在基址+2的寄存器中

void SetHours(int hours)
{
    int oldtime = TIME;
    int newtime = oldtime & ~ (0x1F << 11);
    newtime |= (hours & 0x1F) << 11;
    TIME = newtime;
}

int getHours()
{
    int time;
    time = (time>>11) & 0x1F;
    return time;
}

秒的设置及提取

#define TIME_Addr  0xFFFFC0000                  //实时钟芯片的IO映像基址是OxFFFFC0000
#define TIME *(volatile int *) (TIME_Addr+2)    //时间存放在基址+2的寄存器中

void SetSeconds(int seconds)
{
    int oldtime=TIME;
    int newtime=oldtime&~0x1F;
    newtime|=seconds&0x1F;
    TIME=newtime;

}
int getSeconds()
{
    int time;
    time=time&0x1F;
    return time ;
}

原文地址:https://www.cnblogs.com/blackay03/p/8207237.html

时间: 2024-10-02 17:58:32

2017-2018-1 《信息安全系统设计基础》 20155322 十六周课上实践的相关文章

2018-2019-1 20165318《信息安全系统设计基础》第八周课上测试

2018-2019-1 20165318<信息安全系统设计基础>第八周课上测试 测试-1-ch03 任务详情 通过输入gcc -S -o main.s main.c,将下面c程序"week04学号.c"编译成汇编代码 int g(int x) { return x+3; } int f(int x) { int i = 学号后两位: return g(x)+i; } int main(void) { return f(8)+1; } 删除汇编代码中 . 开头的代码,提交f函

信息安全系统设计基础第十五周总结

信息安全系统设计基础第十五周总结 [内容:链接汇总] 一.每周读书笔记链接汇总 [第一周读书笔记] http://www.cnblogs.com/shadow135211/p/4824555.html [第二周读书笔记] http://www.cnblogs.com/shadow135211/p/4842258.html [第三周读书笔记] http://www.cnblogs.com/shadow135211/p/4854920.html [第四周读书笔记] (读书笔记从“第一周”开始命名,为

20145317《信息安全系统设计基础》第六周学习总结(1)

20145317<信息安全系统设计基础>第六周学习总结(1) 第四章 处理器体系结构 指令体系结构:一个处理器支持的指令和指令的字节级编码 4.1Y86指令集体系结构 Y86:包括定义各种状态元素.指令集和它们的编码.一组编程规范和异常事件处理. Y86程序中的每条指令都会读取或修改处理器状态的某些部分.Y86具体包括:8个程序寄存器.3个条件码ZF\SF\OF.程序计数器(PC) Y86用虚拟地址引用存储器位置. 程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状态. 注意:条件

20145222《信息安全系统设计基础》第六周学习总结(1)

20145222<信息安全系统设计基础>第六周学习总结(1) 第四章 处理器体系结构 指令体系结构:一个处理器支持的指令和指令的字节级编码 4.1Y86指令集体系结构 · Y86:包括定义各种状态元素.指令集和它们的编码.一组编程规范和异常事件处理. · Y86程序中的每条指令都会读取或修改处理器状态的某些部分.· Y86具体包括:8个程序寄存器.3个条件码ZF\SF\OF.程序计数器(PC) · Y86用虚拟地址引用存储器位置. 程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状

20145307《信息安全系统设计基础》第六周学习总结

20145307<信息安全系统设计基础>第六周学习总结 教材学习内容总结 Y86指令集体系结构 内容:定义一个指令集体系结构,包括定义各种状态元素.指令集和它们的编码.一组编程规范和异常事件处理. 程序员可见状态 Y86程序中的每条指令都会读取或修改处理器状态的某些部分. Y86具体包括:8个程序寄存器.3个条件码ZF\SF\OF.程序计数器(PC). Y86用虚拟地址引用存储器位置. 程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状态. Y86指令 IA32指令集的一个子集,只

20145311 《信息安全系统设计基础》第六周学习总结

20145311 <信息安全系统设计基础>第六周学习总结 教材学习内容总结 书上那几个表还是挺重要的 一个程序编译成在一种机器上运行,就不能在另一种机器上运行寄存器%esp被入栈.出栈.调用和返回指令作为栈指针程序计数器PC存放当前正在执行指令的地址三个一位的条件吗:ZF.SF.OF保存着最近的算数运算或逻辑运算所造成影响的有关信息Y86指令集:每个指令的第一个字节表明指令的类型,高4位是代码部分,低4位是功能部分指令集的一个重要性质就是字节编码必须有唯一的解释IA32(复杂指令集计算机CIS

2017-2018-1 20155214 《信息安全系统设计基础》 第9周课下测试-mypwd

2017-2018-1 20155214 <信息安全系统设计基础> 第9周课下测试-mypwd(深入版) 题目要求: 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 在第9周学习总结中,我直接调用了系统调用getcwd()输出当前绝对路径.这次我尝试用c语言实现它的功能. 函数原型 #include <unistd.h> char *getcwd(char *buf, size_t size);

2018-2019-1 20165214 《信息安全系统设计基础》第六周学习总结

20165214 2018-2019-1 <信息安全系统设计基础>第六周学习总结 教材学习内容总结 1.输入操作是从I/O设备复制数据到主存,而输出操作是从主存复制数据到I/O设备 2.Unix I/O使得所有的输入和输出都能以一种统一且一致的方式来进行 3.普通文件包含任意数据.应用程序一般要区分文本文件和二进制文件.文本文件是只含有ASCII或Unicode字符的普通文件. 4.绝对路径名和相对路径名的概念. 5.open函数将filename转换为一个文件描述符.int open(cha

2018-2019 20165215 《信息安全系统设计基础》第六周学习总结

2018-2019 20165215 <信息安全系统设计基础>第六周学习总结 Linux系统调用学习 操作系统(Operating System,简称OS)完成的工作比喻为两个角色:服务生和管家婆 管家婆: 通过「文件」对I/O设备进行了抽象 通过「虚存」对主存和I/O设备进行了抽象 通过「进程」对CPU.主存和I/O设备进行了抽象 服务生: GUI:为小白用户提供服务,你只会用鼠标就可以使用操作系统 Shell: 为高级用户提供服务,你要记忆系统命令,更多通过键盘使用操作系统 系统调用:为专