Помогите исправить код. Програмка работает, но выводит в конце набор символов
По заданию нужно из файла считать 10 бит с 5 бита
data segment
fl1 db '1.txt',0
fh dw ?
r dw 99 dup(?)
data ends
code segment
assume cs:code, ds:data
start:
mov ax,data
mov ds,ax
mov ah,3dh ;io file open
mov al,02
lea dx,fl1
int 21h
mov fh, ax
mov bx,fh ;to 5 byte
mov ah,42h
mov al,0
mov cx,0
mov dx,5
int 21h
mov ah,3fh ;read func
mov bx,fh
mov cx,10
lea dx,r
int 21h
mov si,ax
mov ah,3eh ;close func
mov bx,fh
int 21h
mov ah,9h ;vivod r
lea dx,r
int 21h
mov ah,0
int 16h
mov ah,4ch
int 21h
code ends
end start
У тебя строка должна заканчиваться символом '$', а ты ее не завершаешь этим символом. Вот и выводится мусор: строка печатается до тех пор, пока где-то не встретится $. Исправь:
data segment, либо добавляй 11-м символом строки '$' вручную - все будет в порядке.
fl1 db '1.txt',0
fh dw ?
r dw 99 dup('$') ; Вот это
data ends
Спасибо большое . Что строку нужно заканчивать $ я знал, но что можно делать так нет.