软硬件之间的桥梁-指令集

xiaoxiao2021-02-28  106

指令以“ 1010…… ”二进制方式存放在存储器中,体现形式由原来的数据变为电学信号。CPU 从存储器中取指令,实际上是查看存储器输出的电学信号,“1010…… ”变成了高低电平。后续的指令执行是硬件电平信号在传输和运算(数字电路)。 指令集即一个处理器的架构,CPU执行不同的操作需要不同的指令,如存储器访问:Load/Store,Swap;数据处理:CPU内部寄存器读写,算术运算,逻辑运算;分支跳转:条件分支,无条件分支;等等。 下面以反汇编得到的部分信息进行解释: 3ac: e3a0244e mov r2, #1308622848; 0x4e000000 1 2 3 4 1 : 这句指令的地址 2:3指令对应的机器码 3:汇编指令 4:3中十进制数据 1308622848对应十六进制数0x4e000000 [31:28] :这条指令执行的条件,如0b1110表示无条件执行 [25] :这里等于1代表[11:0]是个立即数 [24:21] :表示具体命令,如0b1101表示MOV指令 [20] :表示这条指令是否影响标志位 [19:16] :表示通用寄存器 [15,12] :表示通用寄存器 [11:8] :循环右移的位数 [7:0] :立即数 这里立即数是由一个八位数循环右移2*[11:8]产生。所以如果一个数不能由一个八位立即数循环右移偶数位得到则不能用MOV指令。那就必须使用伪指令ldr,ldr r1, =0x12345678(这里不是数据加载指令)。所谓伪指令指处理器指令集中不存在这样的指令。这样的指令实际上会向把这个立即数存在存储器某个地址,然后再从存储器中把这个数加载到寄存器中。

转载请注明原文地址: https://www.6miu.com/read-97014.html

最新回复(0)