判断MEM单元的数据的奇偶,编程将奇数存入MEMA单元,将偶数存入MEMB单元。,用汇编来实现
时间: 2024-01-22 21:18:02 浏览: 218
汇编语言实现 奇偶校验
4星 · 用户满意度95%
假设MEM单元的起始地址为0x1000,MEMA单元的起始地址为0x2000,MEMB单元的起始地址为0x3000。
下面是一段汇编代码实现该功能:
```
ORG 0x0000 ; 程序起始地址为0x0000
MOV R0, #0x1000 ; R0寄存器存储MEM单元的起始地址
MOV R1, #0x2000 ; R1寄存器存储MEMA单元的起始地址
MOV R2, #0x3000 ; R2寄存器存储MEMB单元的起始地址
LOOP:
LDR R3, [R0] ; 将MEM单元的数据读取到R3寄存器中
AND R4, R3, #1 ; 判断最低位是0还是1,如果是1,说明是奇数,否则是偶数
CMP R4, #1 ; 比较结果为1表示奇数,结果为0表示偶数
BEQ ODD ; 如果是奇数,跳转到ODD标签
STR R3, [R2] ; 如果是偶数,将数据存储到MEMB单元中
B NEXT ; 跳转到NEXT标签
ODD:
STR R3, [R1] ; 如果是奇数,将数据存储到MEMA单元中
NEXT:
ADD R0, R0, #4 ; 递增MEM单元的地址
CMP R0, #0x1100 ; 判断是否处理完所有的数据,如果没有,跳转到LOOP标签
BLT LOOP
HALT ; 程序结束
END ; 程序结束
```
该程序使用了四个寄存器:
- R0:存储MEM单元的起始地址
- R1:存储MEMA单元的起始地址
- R2:存储MEMB单元的起始地址
- R3:临时寄存器,用于存储读取的数据
- R4:临时寄存器,用于判断奇偶性
程序循环处理MEM单元中的数据,判断奇偶性并存储到相应的单元中。最后,程序停止执行。
阅读全文