Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
aizek1
0 / 0 / 0
Регистрация: 29.10.2015
Сообщений: 9
1

Добавить к файлу несколько строк и вывести его содержимое на экран

04.12.2016, 19:55. Просмотров 939. Ответов 1

В чем может быть ошибка?
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
STK segment para stack 'stack'
        db 200 dup(?)
STK ends
 
data segment para 'data'
stdout equ 1        ; дескриптор стандартного вывода
cr equ 0dh      ; возврат каретки
lf equ 0ah          ; перевод строки
handle dw ?             ; ячейка для дескриптора
filename db 'text.txt',0   ; имя файла
string1 db '123456789ABCDEFGH ''$',cr,lf        ; строка для записи в файл
string2 db 'Kono dio da ''$',cr,lf
string3 db 'sadsdasdasdasd''$', cr,lf
string1ln equ $-string1 ; длина строки
string2ln equ $-string2 
string3ln equ $-string3 
bufin db 80 dup(?)      ; буфер ввода
buf2 db 80 dup(?)
buf3 db 80 dup(?)
data ends
 
code segment para public 'code'
assume cs:code, ds:data, ss:stk
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
p1 proc far
; ОТКРЫТИЕ
mov ax,3d00h    ;Функция открытия файла 
  lea dx,filename
int 21h
 
;mov bx,ax
;xor cx,cx
;xor dx,dx
 
;mov handle,AX   ;Получили дескриптор
 
;Указатель в конец
mov ah,42h  ; установка указателя
mov al,02
mov bx,handle
mov cx,0
mov dx,0     ; на первый байт 
int 21h
 
mov ah,40h  ; функция записи
mov bx,handle   ; дескриптор 
mov cx,string2ln    ;длина строки
mov dx, offset string2; адрес строки
int 21h
 
mov ah,42h  ; установка указателя
mov al,02
mov bx,handle
mov cx,0
mov dx,0     ; на первый байт 
int 21h
 
mov ah,40h  ; функция записи
mov bx,handle   ; дескриптор 
mov cx,string3ln    ;длина строки
mov dx, offset string3; адрес строки
int 21h
 
mov ah,42h  ; установка указателя
mov al,02
mov bx,handle
mov cx,0
mov dx,0     ; на первый байт 
int 21h 
 
mov ah,40h  ; функция записи
mov bx,handle   ; дескриптор 
mov cx,string3ln    ;длина строки
mov dx, offset string3; адрес строки
int 21h
 
; ЗАКРЫТИЕ
mov ah,3eh  ; функция закрытия
mov bx,handle   ; дескриптор
int 21h
 
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
p2 proc far
mov     AH,3Dh          ;Функция открытия файла
mov     AL,2                ;Доступ для чтения/записи
mov     DX, offset filename     ;Адрес имени файла
int     21h
mov     handle,AX           ;Получили дескриптор
 
;Попытаемся прочитать 80 байт
mov     AH,3Fh          ;Функция чтения
mov     BX,handle           ;Дескриптор
mov     CX,80           ;Столько читать
mov     DX, offset bufin        ;Сюда
int     21h
mov     CX,AX           ;Столько реально прочитали
 
;Выведем прочитанное на экран
mov     AH,40h          ;Функция записи
mov     BX, stdout      ;Дескриптор стандартного вывода
mov     DX, offset bufin    ;Отсюда выводить (СХ байт)
int     21h
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
main proc
mov ax,data
mov ds,ax
 
;СОЗДАНИЕ 
mov ah,3ch  ;функция создания файла
mov cx,0        ;без атрибутов
mov dx,offset filename; адрес имени файла
int 21h     
mov handle,ax
 
; ЗАПОЛНЕНИЕ
mov ah,40h  ; функция записи
mov bx,handle   ; дескриптор 
mov cx,string1ln    ;длина строки
mov dx, offset string1; адрес строки
int 21h
 
; ЗАКРЫТИЕ
mov ah,3eh  ; функция закрытия
mov bx,handle   ; дескриптор
int 21h
 
call p1
call p2
 
mov ax,4c00h
int 21h
 
main endp
code ends
end main
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2016, 19:55
Ответы с готовыми решениями:

Вывести на экран содержимое буфера и произвести его очистку
Срочно нужна помощь, сам написать не в состоянии. Надо написать программу на языке Си или...

Прочитать файл и вывести его содержимое на экран. Assembler, tasm
Программа выводит нужный текст из программы. Ну при этом еще выдает ошибку, как ее убрать? .model...

Добавить к первому файлу содержимое второго файла, а ко второму файлу — содержимое первого
Даны два файла одного и того же типа. Добавить к первому файлу содержимое второго файла, а ко...

Добавить к первому файлу содержимое второго файла, а ко второму файлу — содержимое первого.
11. Даны два файла одного и того же типа. Добавить к первому файлу содержимое второго файла, а ко...

Открыть файл и вывести на экран его содержимое
Нужно открыть файл и вывести на экран его содержимое,вот что делал я: #include <iostream>...

1
Ethereal
7286 / 2135 / 290
Регистрация: 17.02.2013
Сообщений: 3,141
05.12.2016, 15:26 2
Лучший ответ Сообщение было отмечено aizek1 как решение

Решение

Цитата Сообщение от aizek1 Посмотреть сообщение
; ОТКРЫТИЕ
mov ax,3d00h ;Функция открытия файла
lea dx,filename
int 21h
;mov bx,ax
;xor cx,cx
;xor dx,dx
;mov handle,AX ;Получили дескриптор
;Указатель в конец
mov ah,42h ; установка указателя
mov al,02
mov bx,handle
mov cx,0
mov dx,0 ; на первый байт
int 21h
В том, что ты закомментировал строчку
;mov handle,AX ;Получили дескриптор

Добавлено через 4 минуты
Цитата Сообщение от aizek1 Посмотреть сообщение
; ОТКРЫТИЕ
mov ax,3d00h ;Функция открытия файла
lea dx,filename
int 21h
В том, что ты открыл файл только для чтения и пытаешься в него писать.

Добавлено через 3 минуты
Цитата Сообщение от aizek1 Посмотреть сообщение
p2 proc far
mov AH,3Dh ;Функция открытия файла
mov AL,2 ;Доступ для чтения/записи
mov DX, offset filename ;Адрес имени файла
int 21h
mov handle,AX ;Получили дескриптор
А вот тут зачем-то открыл для чтения и записи, хотя в данном случае только читаешь.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2016, 15:26

Вывести на экран содержимое каталога со всеми его подкаталогами
Есть папка с музыкой (music). В ней еще одна папка, тоже с музыкой. Задача программы прочитать все,...

Удалить 5 элементов файла и вывести его содержимое на экран
Помогите создать программу , которая создает файл "F1.DAT" из 10 элементов типа INTEGER.Вывести его...

Открыть текстовый файл и вывести на экран его содержимое
Здравствуйте, хотел спросить, что нужно прописать, чтобы открыть текстовый файл и вывести на экран...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru