问答题 DAT单元和DAT+l单元为16位二进制数,将其转换为非压缩BCD码,存于DAT+2开始的5个连续存贮单元(低位在前),并送CRT显示。
【正确答案】SSEG  SEGMENT PARA STACK'STACK,
   STA DB 100DUP(?)
   SSEG  ENDS
   DATA  SEGMENT
   DAT   DB OFEH
   DAT+1DB 89H
   DAT+2DB 5DUP(?)
   DATA  ENDS
   CODE  SEGMENT
     ASSUME CS: CODE,DS: DATA,SS: SSEG
   SRT:   MOV  AX,DATA
          MOV  DS,AX
          LEA  SI,DAT
          LEA  DI,DAT+2
          MOV  AL,[SI]
          INC  SI
          MOV  AH,[SI]
          MOV  BX,10
          MOV  CX,5
          MOV  DX,00H
   LOP1:  DIV  BX
          MOV  [DI],DL    ;余数为一位BCD数
          INC  DI
          LOOP LOP1
          MOV  AH,02H
          MOV  CX,5
   LOP2:  MOV  DL,[DI]    ;显示5位BCD数
          ADD  DL,30H    ;将BCD码转变成ASCⅡ码
          INT  21H
          MOV  DL,''    ;每位BCD数之间用一个空格隔开
          INT  21H
          DEC  DI
          LOOP LOP2
          MOV  AH,4CH
          INT  21H
   CODE   ENDS
   END    SRT
【答案解析】十六位无符号二进制数的最大值为65535,因此可以用除10取余法来完成转换,显示时高位在前。