执行下面的程序后,r3,r4,r5,r6分别是多少?movr0,#0x0c000000ldrr9,=0x12345678strr9,[r0]ldrr3,[r0]addr0,r0,#1ldrr4,[r0]addr0,r0,#1ldrr5,[r0]addr0,r0,#1ldrr6,
时间: 2023-10-05 18:07:55 浏览: 59
一个程序 请输入0~9之间的数
4星 · 用户满意度95%
根据汇编代码分析,程序执行过程如下:
1. 将立即数0x0c000000加载到寄存器r0中;
2. 将立即数0x12345678加载到寄存器r9中;
3. 将r9寄存器的值存储到r0所指向的内存地址中;
4. 将r0寄存器的值加载到r3寄存器中;
5. 将r0寄存器的值加1后,结果存储回r0寄存器中;
6. 将r0寄存器的值加载到r4寄存器中;
7. 将r0寄存器的值加1后,结果存储回r0寄存器中;
8. 将r0寄存器的值加载到r5寄存器中;
9. 将r0寄存器的值加1后,结果存储回r0寄存器中;
10. 将r0寄存器的值加载到r6寄存器中。
因此,执行完该程序后,r3、r4、r5、r6的值分别是从r0所指向的内存地址中依次读取的4个字,即0x12345678、0x34567800、0x56780000、0x78000000。
阅读全文