Помогите найти ошибку в программе на ассемблере!
Но, когда выводит результат, то до ожидаемого результата выводит море "мусора".:confused:
Заранее благодарю!
Вот код:
Код:
ASSUME CS:CODE_SEG, DS:CODE_SEG, SS:CODE_SEG, ES:CODE_SEG
ORG 100h
START_:
JMP BEG_
S0 DB " world$"
S1 DB '$'
S2 DB 0AH, 0DH,'$'
NEW_PROC PROC NEAR
BEG_:
xor Si, Si
lbl0:
MOV AH, 01H
LEA DX, S1
INT 21h
Cmp AL, 0DH
jz lbl1
mov S1[Si], AL
inc Si
jmp lbl0
lbl1:
LEA DX, S2
MOV AH, 09h
INT 21h
mov S1[Si], '$'
LEA DX, S1
MOV AH, 09h
INT 21h
LEA DX, S0
MOV AH, 09h
INT 21h
RET
NEW_PROC ENDP
CODE_SEG ENDS
END START_
ты же символы с клавы читаешь в S1+si, а где ж там место? напиши в строчке S1 типа 32 dup ("$"), а для полного счастья можно контролировать si, чтобы оно не превысило 30 (нужно ж место для доллара оставить)
Да, спасибо! Я уже решил проблему.