20165232 第四周学习总结

第四章 处理器体系结构

4.1 Y86-64指令集体系结构

  • 程序员可见状态

    Y86-64程序中的每条指令都会读取或修改处理器状态的某些部分,这称为程序员可见状态。

  • Y86-64状态包括15个寄存器、程序计数器PC(存放当前正在执行指令的地址)、、3个一位的条件码(ZF、SF和OF)、内存和状态码。
  • Y86-64指令
  • 4个传送指令
irmovq rrmovq mrmovq rmmovq

其中指令的第一个字母表明源的类型(i r m)第二个字母表明目的的类型(r m)

  • 4个整数操作指令
addq subq andq xorq

他们只对寄存器数据进行操作,而X86还允许内存数据进行这些操作,设置三个条件码ZF SF OF(零,符号,溢出)

  • 7个跳转指令
jmp jle jl je jne jge jg

根据分支的类型和条件代码的设置来选则分支

  • 6个条件传送指令
cmovle cmovl cmove cmovne cmovge cmovg

条件码满足所需要的约束时才会更新寄存器的值。

  • call:将返回地址入栈,然后跳到目的地址。
  • ret:从call的调用中返回。
  • pushq和popq:入栈和出栈。
  • halt:停止指令的执行。

  • 指令编码

    上图给出指令的字节级编码,每条指令需要1-10个字节不等,每条指令第一个字节表明指令的类型:搞四位是代码部分,低四位是功能部分。

  • 组成:
  1. 一个单字节的指令指示符
  2. 一个单字节的寄存器指示符
  3. 一个八字节的常数字

    4.2 逻辑设计和硬件控制语言HCL

  • HCL与HDL的区分
  1. HCL:硬件控制语言
  2. HDL:硬件描述语言
  • 逻辑门
  1. 与:AND用“&&”表示
  2. 或:OR用“||”表示
  3. 非:NOT用“!”表示
  4. 与、或、非三种逻辑门可以用一种与非门或者或非门实现
  5. 与非和与的组合可以概括大部分计算

  • HCL情况表达式通用格式

  • Y86-64的顺序实现
  1. 取值:fetch
  2. 译码:decode
  3. 执行:execute
  4. 访存:memory
  5. 写回:write back
  6. 更新:PC update
  • SEQ

  1. 白色方框表示时钟寄存器
  2. 淡蓝色方框表示硬件单元
  3. 灰色圆角矩形表示控制逻辑块
  4. 白色圆圈中是线路的名字
  5. 粗线表示宽度为字长的数据
  6. 细线表示宽度为字节或更窄的数据
  7. 虚线表示单个位的连接

    学习进度条

原文地址:https://www.cnblogs.com/heyanda/p/9825660.html

时间: 2024-11-06 01:23:28

20165232 第四周学习总结的相关文章

20165232 第二周学习总结

20165232 第二周学习总结 1:带包的代码如何编译运行 代码编写完毕后,先Javac编译,再用mkdir以打包文件的文件名创建一个新文件夹,之后将编写的字节码文件用co命令拷贝到新的文件夹中,最后再运行. 2:一些知识点总结 第三章基础语法 3.1 类型.变量与运算符 类型 基本类型:整数(short.int.long).字节(byte).浮点数(float.double).字符(char).布尔(boolean) 常用格式控制符号 运算符 ==表示相等,=是指定运算,%运算结果是除法后的

第十四周学习进度

时间 十四周 学习时间 78小时 代码量 1623行 所学知识 临近期末,学习任务越来越重,用在专业技术学习上的时间相对减少了很多.不过这周还是有些收获的.首先是数据结构作业的完成,我头一次使用Qt写了一个图形界面.以前我学习Qt是总觉得它晦涩难懂,但是这次我只是看了看学习视频,觉得容易多了.虽然当下图形界面不是很热门,但是学了两年的计算机,连一个图形界面都写不出来还是很尴尬的,所以以后若是有时间还是应该好好学学.

20140256985《嵌入式程序设计》第三、四周学习总结

1.第三四周学习情况 上课能跟上,而且新的虚拟机非常好使,编辑代码的时候很是方便,没有上一个虚拟机那么复杂,非常好用! 2实验楼学习内容    (1).安装并解压arm-linux-gcc交叉编译工具 (2).测试arm-linux-gcc是否可运行 (3).解决64位系统下安装32位软件的问题和 (4).将arm-linxu-gcc加入环境变量PATH中 (5).bootboader的配置,移植和编译 解压文件 建立板级支持包 修改eduk2410文件 修改Makefile文件 编译U-Boo

20145301第四周学习总结

20145301第四周学习总结 教材学习内容总结 第六章 6.1 何谓继承 何谓继承 面向对象中,子类继承父类,避免重复的行为定义,不过并非为了避免重复定义行为就使用继承,滥用继承而导致程序维护上的问题时有所闻.如何正确判断使用继承的时机,以及继承之后如何活用多态,是学习继承时的重点.: 通过extends继承的父类可以是不加abstract关键字的普通类,也可以是加了abstract关键字的抽象类.继承普通类时可以覆写父类的方法,或者创建自己独有的方法,或者这两者都不使用.继承抽象类时,必须覆

LINUX内核分析第四周学习总结——扒开应用系统的三层皮(上)

LINUX内核分析第四周学习总结——扒开应用系统的三层皮(上) 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.知识概要 (一)用户态.内核态和中断处理过程 (二)系统调用概述 系统调用概述和系统调用的三层皮 (三)使用库函数API和C代码中嵌入汇编代码触发同一个系统调用 使用库函数API获取系统当前时间 C代码中嵌入汇编代码的方法(复习) 使用C代码中嵌入汇编代码触发系统调

20135219洪韶武——信息安全系统设计基础第四周学习总结

信息安全系统设计基础第四周学习总结 学习任务:教材第三章 学习时间:10小时 学习内容 一.教材知识梳理 1.程序编码与机器级代码 程序编码: gcc编译器,将源代码转化成可执行代码,C预处理器-汇编器-链接器 机器级代码: 机器级程序的格式和行为,定义[指令集体系结构ISA],定义了处理器状态,指令格式,以及指令对状态的影响 机器级程序实用的存储地址使用的是虚拟地址 2.数据格式 整数型.长整数型存储为4字节格式 指针类型存储为4字节格式 浮点数有三种形式:单精度.双精度.扩展精度,分别为4字

201671010130 2016-2017-2 《Java程序设计》第四周学习小结

第四周学习小结 本次实验巩固了上次实验分隔数并求和的题,目前这个题有两种做法,一种是不断对数10求余,余数保存在sum中,然后左移一位,直到余数为零.另一种就是将数字强制转换成一个字符串数组String s=String.valueOf(num),根据方法s.toCharArray()将字符分离出来,据"x"-"0"=x,unicode码值相减即可得x的值. 父类和子类能够看两个交集,super关键字是否能够看做一个子类和超类的接口呢? 在子类中可以增加域.增加方法

20145309 《信息安全系统设计基础》第十四周学习总结

20145309 <信息安全系统设计基础>第十四周学习总结 教材学习内容总结 现代系统提供对主存的抽象概念--虚拟存储器:虚拟存储器是硬件异常.硬件地址翻译.主存.磁盘文件及内核软件的完美交互,为进程提供了一个大的.一致的.私有的地址空间 虚拟存储器的3个能力: 将主存看作是一个存储在磁盘上的地址空间的高速缓存,在主存中只保护活动的区域,并根据需要在磁盘和主存之间来回传送数据: 为每个进程提供了一致的地址空间,从而简化了存储器管理: 保护了每个进程的地址空间不被其它进程破坏 物理和虚拟寻址 物

201671010118 2016-2017-2《Java程序设计》 第四周学习心得

已经是第四周学习java课程了,但是自己还是有很多不足的地方,老师让编写一个程序"从键盘读取一个整数,如-123(不局限于该数),然后分离该整数的每位数字进行输出,数字之间空一格,并将每个数字加总求和."做这道题时,刚开始用的int方法,后来老师我们用string valueOf(num)和charAt(index)写这道程序,我对string valueOf(num)用的不是很熟练,老师讲了这道题的算法,我也不是很理解.这周的java作业我编程题也不怎么会做,我觉得自己掌握的东西太少