Помощь - Поиск - Пользователи - Календарь
Полная версия: Работа с файлами
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ассемблер
Pasha
Помогите исправить код. Програмка работает, но выводит в конце набор символов norespect.gif

По заданию нужно из файла считать 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

volvo
У тебя строка должна заканчиваться символом '$', а ты ее не завершаешь этим символом. Вот и выводится мусор: строка печатается до тех пор, пока где-то не встретится $. Исправь:
data segment
fl1 db '1.txt',0
fh dw ?
r dw 99 dup('$') ; Вот это
data ends
, либо добавляй 11-м символом строки '$' вручную - все будет в порядке.
Pasha
Спасибо большое good.gif . Что строку нужно заканчивать $ я знал, но что можно делать так нет.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.