Masm ms-dos. Программа должна выводить введеную строку. Прерывание вывода строки не работает, хотя в регистрах ah и dx лежат правильные значения.
assume cs:codeseg, ds:codeseg
codeseg segment
start:
main proc
xor dx, dx
mov ax, codeseg
mov ds, ax
call input
call output
jmp end_prog
main endp
input proc
mov ah, 0ah
lea dx, bufer
int 21h
ret
input endp
output proc
; добавить знак доллара в конец строки
xor bx, bx
mov bl, byte ptr [len]
lea si, [text + bx]
mov byte ptr [si], 24h
; вывод строки
mov ah, 09h
lea dx, text
int 21h
ret
output endp
end_prog:
mov ah, 4ch
int 21h
bufer label byte
max db 20
len db 00
text db 32 dup(0)
codeseg ends
end start