问题 填空题

下面的程序用来删除字符串’AABA’中第1个出现的由DAT单元指定的字符,删除字符后,后面字符前移,并在字符串尾部添加字符,’$’(24H)。请在横线处填充,使程序能达到预定的功能。 DSEG SEGMENT BUF DB ’AABA’ CNT DW$-BUF DAT DB 41H DSEG ENDS SSEG SEGMENT STACK DB 256DUP (0) SSEG ENDS CSEG SEGMENT ASSUME DS:DSEG. SS:SSEG,CS:CSEG. ES:DSEG START PROC FAR PUSH DS XORAX,AX PUSH AX MOVAX, DSEG MOVDS,AX MOVES,AX CLD LEADI,BUF MOVCX,CNT MOVAL,DAT REPNE SCASB JEDEL JMPEXIT DEL: JCXZ FILL NEXT: MOVBL.[DI] MOV[DI-1],BL INCDI LOOP NEXT FILL: MOV______, 24H EXIT: RET START ENDP CSEG ENDS ENDSTART

答案

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

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

单项选择题
多项选择题