内存中以FIRST和SECOND开始的单元中分别存放着两个16位组合的十进制(BCD码)数,低位在前。编程序求这两个数的组台的十进制和,并存到以THIRD开始的单元.
举一反三
- 编程:内部RAM 30H和外部RAM 2200H开始的单元分别存放着两个8字节十六进制数(低位字节存放在前),请将二者相加(不考虑溢出情况),并将和存入内部RAM 40H开始的单元中。
- 设两个十进制数分别在内部RAM 40H单元和50H单元开始存放(低位在前),其字节长度存放在内部30H单元中。编程实现两个十进制数求和,并把求和结果存放在40H开始的单元中。 答案:MOV R0,#40H MOV R1,#50H MOV R2,#30H ——————[br][/br] LOOP:MOV A,@R0 ADDC A,@R1 —————— MOV @R0,A INC R0 INC R1 DJNZ R2,LOOP RET
- 数据定义语句如下所示:FIRST DB 90H,5FH, 6EH,69HSECOND DB 5 DUP(?)THIRD DB 5 DUP(?)自FIRST单元开始存放的是一个四字节的十六进制数(低位字节在前),要求:编一段程序将这个数左移两位后存放到自SECOND开始的单元,右移两位后存放到自THIRD开始的单元。(注意保留移出部分)
- 编写程序,将片内RAM32H单元内的两个BCD码十进制数拆开并变成相应的ASCII码,分别存入31H和32H单元
- BCD码之间及BCD码与任意进制数之间的转换一般以十进制数作为过渡