Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Crystal Maiden
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 1
1

сохранение в файл

24.05.2013, 20:12. Просмотров 655. Ответов 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
.MODEL small     ;отводим под стек и под данные по 64Кб
.STACK 100h  ;отмечаем начало сегмента стека
 
.DATA    ;отмечаем начало сегмента данных
NL   db  0Ah, 0Dh, '$'
Buf  DB  255, 0, 256 DUP (0) ;
hFile   db  300  dup(?)
Filename    db   'file.txt',0 
 
 
.CODE    ;отмечаем начало сегмента кодов
main PROC 
 
 
mov  ax,@data    ;копируем адрес
mov  ds,ax   ;сегмента данных
 
 
mov dx, offset Buf
mov ah, 0Ah
int 21h  ;запрашиваем строку
 
 
mov dx, offset NL
mov ah, 9h
int 21h  ;переводим строку на экране, выводя CRLF
 
xor cx, cx 
mov cl, [Buf+1]
test cl, cl
jz Exit  ;проверяем длину строки - если пустая, то выходим
 
add bx, offset Buf+1
add bl, cl
mov si, bx
last:
mov  dl,[si]
cmp  dl,' '
jne  tmp
dec  si
dec  cx
jmp  last
 
 
tmp:    mov si, offset Buf+2
 
first:  mov  dl,[si]
cmp  dl,' '
jne  Cycle
inc  si
dec  cx
jmp  first
 
 
Cycle:   lea di, hFile
mov bx,0
 
Cycle1: mov dl, [si]     ;берём очередной байт
 
Print:
mov [di], dl
inc di
mov ah,02h   ;выбор функции 2
int 21h  ;вызов DOS
inc bx
 
NextChar:
mov dh,dl    ;сохранить текущий символ для теста на следующем витке
inc si   ;перейти к следующему символу
 
loop    Cycle1 
 
push bx
 
mov ah, 3Ch  ;если же добрались до конца - будем сохранять.
mov dx, offset Filename
xor cx, cx
int 21h  ;создаём файл
 
pop si  
 
push    offset  hFile
call    vivod
 
mov ah, 3eh
int 21h  ;закрываем файл
 
Exit:
mov ax, 4c00h
int 21h  ;выходим из программы
 
main ENDP
 
vivod   proc
mov bx, ax
mov ah, 40h
mov cx, si
mov bp, sp
add bp, 2
mov dx, [bp]
int 21h
ret
vivod   endp
END main
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2013, 20:12
Ответы с готовыми решениями:

Сохранение результатов в файл
доброго времени суток :) есть программа-калькулятор, написанная на ассемблере,...

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

Добавить к программе след действия: Сохранение и загрузка информации в текст. файл. Сохранение и загрузка информации в типизированный файл.
Помогите добавить к программе след действия: Сохранение и загрузка информации в...

Сохранение положения компонента на форме (Сохранение параметра в Ini-файл)
Не знаю верно ли назвал тему. Доброго вечера тебе, всяк сюда входящий....

При сохранение файла word (права доступа на сохранение ограничены) появляется пустой файл
Добрый день! Проблема такая: Допустим есть пользователь, у которого...

1
alexcoder
1558 / 703 / 146
Регистрация: 03.06.2009
Сообщений: 4,090
Завершенные тесты: 1
25.05.2013, 09:48 2
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
.MODEL small     ;отводим под стек и под данные по 64Кб
.STACK 100h  ;отмечаем начало сегмента стека
 
.DATA    ;отмечаем начало сегмента данных
NL   db  0Ah, 0Dh, '$'
Buf  DB  255, 0, 256 DUP (0) ;
hFile   db  300  dup(?)
Filename    db   'file.txt',0 
msg1  db 'Input string: $'
 
.CODE    ;отмечаем начало сегмента кодов
main PROC 
 
 
mov  ax,@data    ;копируем адрес
mov  ds,ax   ;сегмента данных
 mov ah,9
lea dx,msg1
int 21h
 
mov dx, offset Buf
mov ah, 0Ah
int 21h  ;запрашиваем строку
 
 
mov dx, offset NL
mov ah, 9h
int 21h  ;переводим строку на экране, выводя CRLF
 
xor cx, cx 
mov cl, [Buf+1]
test cl, cl
jz Exit  ;проверяем длину строки - если пустая, то выходим
 
add bx, offset Buf+1
add bl, cl
mov si, bx
last:
mov  dl,[si]
cmp  dl,' '
jne  tmp
dec  si
dec  cx
jmp  last
 
 
tmp:    mov si, offset Buf+2
 
first:  mov  dl,[si]
cmp  dl,' '
jne  Cycle
inc  si
dec  cx
jmp  first
 
 
Cycle:   lea di, hFile
mov bx,0
 
Cycle1: mov dl, [si]     ;берём очередной байт
 
Print:
mov [di], dl
inc di
mov ah,02h   ;выбор функции 2
int 21h  ;вызов DOS
inc bx
 
NextChar:
mov dh,dl    ;сохранить текущий символ для теста на следующем витке
inc si   ;перейти к следующему символу
 
loop    Cycle1 
 
push bx
 
mov ah, 3Ch  ;если же добрались до конца - будем сохранять.
mov dx, offset Filename
xor cx, cx
int 21h  ;создаём файл
 
pop si  
 
push    offset  hFile
call    vivod
 
mov ah, 3eh
int 21h  ;закрываем файл
 
Exit:
mov ax, 4c00h
int 21h  ;выходим из программы
 
main ENDP
 
vivod   proc
mov bx, ax
mov ah, 40h
mov cx, si
mov bp, sp
add bp, 2
mov dx, [bp]
int 21h
ret
vivod   endp
END main
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2013, 09:48

Вывод файла, ввод в файл новых строк и сохранение этого в файл
у меня есть файл, с property и мне в него надо записать новые пары...

Файл: При сохранение в файл big100.txt в блокноте отображаются иероглифы, почему?
При сохранение в файл big100.txt в блокноте отображаются иероглифы интересно...

Сохранение в файл. Если файл указан некорректно
Здравствуйте. Есть Edit4, в котором пользователь указывает, в какой файл...


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

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

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