当前位置: 首页 > news >正文

CSAPP 处理器体系结构

处理器体系结构

CISC 与 RISC 指令集

CISC:复杂指令计算机 (如x86-64)
RISC:精简指令计算机 (如RISC-V)

RISC 相较于CISC指令数量少得多,编码长度固定,寻址没有变址寄存器和伸缩因子,对机器级程序实现细节可见......
RISC指令集设计简约,可使用流水线优化;CISC指令集使用指令数更少 两者各有优势
比较新的CISC也采用了流水线结构,实际效率与RISC相近,同时RISC在嵌入器方面表现更为出色

Y86-64

本章使用了一种简化的\(x86-64\)指令集,同时结合了部分\(RISC\)的特点,称为\(Y86-64\)指令集

程序可见状态

程序可见状态对使用汇编语言的程序员和产生机器级代码的编译器都可见
\(Y86-64\)中,程序可见状态包括15个寄存器,条件码,PC,虚拟内存,以及状态码

可用指令

\(Y86-64\)只包含8字节整数操作,指令格式与\(x86-64\) AT&T格式类似
mov 指令需要两个前缀,为以下之一:i立即数,r寄存器,m内存 这两个前缀分别为源和目的
操作指令addq subq andq xorq只能对寄存器进行操作,无法操作内存
跳转指令和条件传送指令与\(x86-64\)保持一致
call ret pushq popq\(x86-64\)保持一致
halt指令停止处理器的运行,并将状态码设置为HLT

指令的编码

我们以指令 rmmov %rsp,0x123456789abcd(%rdx)为例,rmmov的指令编码为40,%rsp %rdx的编码为42,最后的偏移量字节序列为\(000123456789abcd\),注意是小端法,按照字节间反序得到偏移量编码为\(cdab896745230100\),进而得到整条指令编码为\(4042cdab896745230100\)

Y86-64指令异常

Y86-64程序

伪指令:以.开头的指令为汇编器伪指令,使得汇编器调整地址,将汇编代码或者数据存放在指定的地址

实例:

补充:pushq %rsp 压入的是栈指针的初始值还是修改过的值取决于处理器的型号,而 popq %rsp固定是将栈指针设置为栈顶的值

好了,你已经会\(Y86-64\)的基本语法了,现在开始做lab编写\(Y86-64\)程序吧(

http://www.rkmt.cn/news/58607.html

相关文章:

  • 【MCP系列】用 MCP 扩展 AI 编辑器:从零开发一个自己的MCP服务
  • 说课逐字稿2
  • 251123头疼的一天
  • 北京留学机构,谁知道哪家比较好
  • 北京口碑最好的十大留学机构
  • 北京比较靠谱的留学中介
  • 北京10大出国留学机构
  • 分库分表问题
  • 数据采集作业3 102302111 海米沙
  • L2-027 名人堂与代金券
  • 数字人平台指南:聚焦四大关键维度,破解选型难题
  • 20232301 2025-2026-1《网络与系统攻防技术》实验七实验报告
  • Winre.wim
  • 4sapicom生成式 AI 驱动下的智能聊天机器人 - 教程
  • KEYDIY PAK06-TB Phone As Key: Smart Keyless Car Key for European American Vehicles
  • 4.典型的分治算法
  • 数论部分
  • java和python做出什么
  • 2025 ICPC 西安区域赛 VP
  • 完整教程:人脸识别4-Windows下基于MSVC编译SeetaFace6
  • 2025-09-10-Wed-T-Kubernetes
  • 2025年11月小程序开发公司TOP5评测:功能落地与适配筛选标准,西南地区企业选择指南
  • 第二讲下梯度下降算法
  • 11.23
  • Java云计算技术如何确保稳定
  • 二分查找刷题总结
  • zjoi2019 语言
  • 2025-07-21-Mon-T-RocketMQ
  • P24_现有网络模型的使用及修改
  • 20232403 2025-2026-1 《网络与系统攻防技术》实验六实验报告