Лишние символы в выводе DOS - Assembler
Формулировка задачи:
.model tiny @CRLF MACRO mov ah,02h mov dl,0Dh int 21h mov ah,02h mov dl,0Ah int 21h ENDM include DOS.INC .data? Array db 16 .code .startup @GetStr Array,'$',16 ;Ввод строки @CRLF ;Перевод каретки @ShowStr Array ;Вывод строки retn end
Решение задачи: «Лишние символы в выводе DOS»
textual
Листинг программы
@GetStr MACRO ofset:REQ, terminator, limit, segmnt __LdAdr dx, <ofset> IFNB <segmnt> __LdSeg ds, <segmnt> ENDIF mov ah, 0Ah mov si, dx IFNB <limit> mov BYTE PTR [si], limit ENDIF int 21h inc si mov bl, [si] sub bh, bh inc si IFNB <terminator> mov BYTE PTR [bx+si], terminator ENDIF ENDM @ShowStr MACRO ofset:REQ, segmnt LOCAL msg, sseg IF @InStr( 1, ofset, <!"> ) EQ 1 sseg TEXTEQU @CurSeg .DATA msg BYTE ofset, "$" @CurSeg ENDS sseg SEGMENT mov dx, OFFSET msg ELSE __LdAdr dx, ofset IFNB <segmnt> __LdSeg ds, <segmnt> ENDIF ENDIF mov ah, 9 int 21h ENDM