设计一个程序段,要求将AX和BX中的8位BCD数同CX和DX中的8位BCD数(AX和CX是最高有效寄存器)相加,运算以后的结果必须存入AX和BX中。
 
【正确答案】具体代码如下:
   BCD1 DW?,?
   BCD2 DW?,?
   BCD3 DW?,?
   ...
   MOV BCD1,BX;将AX和BX中的BCD码放到BCD1开始的存储单元中
   MOV BCD1+2 AX
   MOV BCD2,DX;将CX和DX中的BCD码放到BCD2开始的存储单元中
   MOV BCD2+2,CX
   MOV CX,4;循环计数
   MOV BX,0;指针初值为0
   CLC
   LOP:
   MOV AL,BYTE PTR BCD1[BX]
   ADC AL,BYTE PTR BCD2[BX]
   DAA;对AL中的BCD码调整
   MOV BYTE PTR BCD3[BX],AL
   INC BX
   LOOP LOP
   MOV AX,BCD3
   MOV BX,BCD3+2
   HLT
【答案解析】 将数据保存到AX、BX、CX、DX中。然后循环进行处理,最后放到AX、BX中。