1. 利用ldr向寄存器里面写较大数据,和设置寄存器的某些位
2. 这个lable 不对呢
验证宏值加载到寄存器里是正确的。
pc 的地址是0x80594
当前pc指针加上宏定义值的地址值。
3 打印字符串
字符串加载了8个字节到寄存器里面, 如何调试打印出来呢?
寄存器里的字符不好打印,我可以打印字符串地址打印8个字节数据
4 打印变量
打印变量值
5 ADS 是c标志位
溢出是c标志位设置为1
6 比较发生溢出 是c标志位设置为1
7 可以看出这个地方是没有溢出的
cmp a b 是 a + (-b) + 1 看溢出没有
sbc
接替步骤是0 + not (0) + c 因此为-1
ands
该图是把nzcv 的zero 位设置为了1
取位
指令最后一个数字是位宽, 取位宽然后填充到第8位开始的地方往前面填充。
ubfx 有不同 哇
是 从第四位取8 位 填充到x3的低位
有符号位全部填充的是f
x1从20 位读取4位 放到x0中, 这个20,就是1的左边,应为这个第一个下标为0 .
这个是从下标为4的位置读取4位 。