问题 填空题

下面的程序用来删除字符串’AABA’中第1个出现的由DAT单元指定的字符,删除字符后,后面字符前移,并在字符串尾部添加字符’$’(24H)。请在横线处填充,使程序能达到预定的功能。
  DSEG SEGMENT
  BUF DB ’AABA’
  CNT DW $-BUF
  DAT DB 41H
  DSEG ENDS
  SSEG SEGMENT STACK
  DB 256 DUP(0)
  SSEG ENDS
  CSEG SEGMENT
  ASSUME DS:DSEG,SS:S
SEG,CS:CSEG,ES:DSEG
  START PROC FAR
  PUSH DS
  XOR AX,AX
  PUSH AX
  MOV AX,DSEG
  MOV DS,AX
  MOV ES,AS
  CLD
  LEA DI,BUF
  MOV CX,CNT
  MOV AL,DAT
  REPNE SCASB
  JE DEL
  JMP EXIT
  DEL: JCXZ FILL
  NEXT: MOV BL,[DI]
  MOV [DI-1],BL
  INC DI
  LOOP NEXT
  FILL: MOV  【6】 ,24H
  EXIT RET
  START ENDP
  CSEG ENDS
  END START

答案

参考答案:BYTE PTR [DI-1]#byte ptr[di-1]

解析: 该程序先在指定的字符中查找DAT指定的字符 41H,若没有查到则该程序结束若找到则判断其在字符串中的位置删除该字符,并将后面的字符前移,根据题目要求在字符串结尾加上字符‘$’(24H)。空缺处完成的功能是在字符串结尾加上字符‘$’(24H)由于DI的属性是字类型,而操作数要求是字节类型,所以要改变操作数的属性。

单项选择题
问答题 简答题