首页天道酬勤,

,

张世龙 05-13 03:22 106次浏览

实验内容(1)编写程序,完成两个64位数据的相加。 数据源和计算结果都在寄存器中。

)2)对32位即时数的最低4位,编制程序,分别实现设置1、清除、反转操作。

(3)制作将存储器内的1个字的数据读出到寄存器R0中的程序。 使用DCD伪操作将存储空间和初始化数据分配给数据。

(1)编制程序完成两个64位数据的相加,数据来源和计算结果均在寄存器中。 在基本的想法中,使用在R0、R1中分别存储64比特的数据a的上位32比特和在下位32比特中存储R2、在R3中分别存储64比特的数据b的上位32比特、下位32比特的上位和上位的运算R0=R0 R2下位和下位的运算R1=R1 R3代码实现代码、READONLYENTRYCODE32START LDR R0的存储数据a的前32位LDR R1,=0x22222222; 保存数据a低位32位LDR R2、=0x33333333; 存储数据b的前32位LDR R3,=0x44444444; 保存数据b的低32位的ADDS R1、R1、R3; R1 R3溢出、ADDS进位、c标志位置1,R1=0x44444444ADC R0、R0、R2; 高位的加法,ADC是带进位的加法,R0=0x66666666B STARTEND Debug

)2)对32位即时数的最低4位,编制程序,分别实现设置1、清除、反转操作。 基本思想ORR :或者运算,将低位4位按1BIC :位清除的EOR :异或运算,将低位4位反码,生成AREA Init、CODE、readonlyentrycode32startLDRRRR0,=0x 低位4位清除EOR R3、R0、#0x0F; 低位4比特采用反B STARTEND Debug

(3)制作将存储器内的1个字的数据读出到寄存器R0中的程序。 使用DCD伪操作将存储空间和初始化数据分配给数据。 代码为AREA Init、CODE、readonlyentrycode 32开始ADR R1、数据测试; 将数据测试的地址设定为R1LDR R0,[R1]; 将数据测试数据加载到R1数据测试DCD0x 23中; 为DATATEST分配地址空间,初始化位0x23b开始调试

文章ARM指令使用ADC进行64位加法运算

ARM学习笔记之十九:容易误解的命令BIC

, ,