25王道408计组第四章指令系统易错知识点(自用)


有的指令是不需要地址码的,
    如停机指令,关中断,空操作。
    堆栈计算机,两个操作数隐含存放在==栈顶和次栈顶==,计算结果返回栈顶

对于扩展操作码来说,短的操作码不能是长的操作码的前缀,不然在译码的时候可能会发生歧义
四地址指令有个A4,是存放下一条指令的地址,其余的下一条指令的地址是存放在pc里面的

关于指令集体系结构和指令系统
    指令集体结构位于计算机软/硬件的交界面上(ISA)相当于软件和硬件进行交互的语言
    软件---指令----硬件
    指令集体结构是指低级语言程序员所看到的概念结构和功能特性

指令集体系结构包括
    核心:指令系统(指令集)---指令的格式,操作类型
    寄存器组织
    基本数据类型
    存储状态(寻址方式)
    存储体系
    中断/异常处理
    外部I/O
    编制方式
    大端小端方式
    ISA规定了每条指令的操作码,操作数,寻址方式等

控制信号---是由微指令发出的----是由更底层的微指令体系结构规定的

程序控制类指令包含
    特权指令
    转移指令
    循环指令
    条件转移指令
    停止结束指令
    return
    ==**特权指令**==也是程序控制指令
    
中断隐指令:cpu响应中断后,硬件自动完成一系列的操作
    关中断(不允许进行中断)
    保存断点(PC保存)
        中断服务程序执行之后,可以回到之前正在执行的程序
    引出中断服务程序

特权指令:是给os以及系统软件去使用的,不会给用户去使用的

在看指令字长的时候要看是否是按字节编制的,如果是按字节编制的,则要保证位数是字节的整数倍


基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定。程序员是没法修改的,因为程序的存储位置是由操作系统决定的,采用通用寄存器作为基址寄存器的时候,用户可以决定哪个通用寄存器做为基址寄存器,但是里面的内容仍然由操作系统决定


变址寄存器是面向用户的,在程序执行的过程中,变址寄存器的内容可由用户改变,形式地址A不变作为基地址

引入相对寻址,让代码在程序内浮动时,不用更改跳转指令的地址

相对寻址  一般用于转移指令
基址寻址  一般用于多道程序+编制浮动程序
变址寻址  一般用于循环程序和数组问题

相对寻址是相对于下一条指令的便宜而不是当前指令的便宜,因为pc在取出当前指令的时候,PC会进行加1

如果采用的是软堆栈(用主存中的一部分作为栈)的话,那么每次pop和push都需要一次的访存,如果是用的硬堆栈(专门用寄存器来作为栈)则不需要访存

栈指针sp一定指向栈顶的空单元的,出栈的话先将sp加1,指向栈顶有数据的单元,然后把栈顶的元素弹出去

PC程序计数器的内容就是主存的地址

程序控制类指令通常解决程序调用的次序问题
特权指令---只有系统软件或者OS可以使用,用户是无法使用的

汇编指令
命令前面加一个i的话代表有符号整数
div  s    # 无符号整数出发edx:eax(表示把两个32位寄存器连起来用)/s这里要把被除数扩展到64位置,再除以除数32位   。商存入eax,余数存入edx

x86中不能让一条指令的两个操作数都来自主存,这样保证访问主存的次数不会过多

AT&T格式和Intel格式
![[AT&T格式和Intel格式.png]]

CISC 和 RISC
RISC必然采用流水线技术,而CISC有的为了提高速度也采用流水线技术,并且兼容性更强
RISC选择一些常用的寄存器类型指令,并不是为了兼容CISC,RISC不可能兼容CISC
CISC指令格式种类多,增大了编译优化的复杂性,因此不利于编译
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值