汇编基础学习

1. 利用ldr向寄存器里面写较大数据,和设置寄存器的某些位

汇编基础学习_第1张图片

2. 这个lable 不对呢

汇编基础学习_第2张图片

汇编基础学习_第3张图片
验证宏值加载到寄存器里是正确的。

汇编基础学习_第4张图片
pc 的地址是0x80594

汇编基础学习_第5张图片

当前pc指针加上宏定义值的地址值。

3 打印字符串

汇编基础学习_第6张图片

汇编基础学习_第7张图片
字符串加载了8个字节到寄存器里面, 如何调试打印出来呢?

汇编基础学习_第8张图片

寄存器里的字符不好打印,我可以打印字符串地址打印8个字节数据

4 打印变量

汇编基础学习_第9张图片
打印变量值

5 ADS 是c标志位

汇编基础学习_第10张图片
溢出是c标志位设置为1

6 比较发生溢出 是c标志位设置为1

汇编基础学习_第11张图片

7 可以看出这个地方是没有溢出的

汇编基础学习_第12张图片
cmp a b 是 a + (-b) + 1 看溢出没有

sbc

汇编基础学习_第13张图片
接替步骤是0 + not (0) + c 因此为-1

ands

汇编基础学习_第14张图片
该图是把nzcv 的zero 位设置为了1

取位

汇编基础学习_第15张图片
指令最后一个数字是位宽, 取位宽然后填充到第8位开始的地方往前面填充。

ubfx 有不同 哇

汇编基础学习_第16张图片
是 从第四位取8 位 填充到x3的低位

汇编基础学习_第17张图片

有符号位全部填充的是f

汇编基础学习_第18张图片

x1从20 位读取4位 放到x0中, 这个20,就是1的左边,应为这个第一个下标为0 .

汇编基础学习_第19张图片

这个是从下标为4的位置读取4位 。

你可能感兴趣的:(汇编,学习,单片机)