Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 5
1

Скроллинг файла: где и как программа определяет конец строки в файле

23.12.2012, 17:38. Показов 1377. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, имеется код программы скроллинга файла:
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
.model tiny
org 100h
 
.code
main PROC
    
mov ah,0                    ;tekstovi regim 80x25
mov al,2
int 10h 
    
mov dx,offset msg           ;vivod podskazki
mov ah,9
int 21h
 
lea dx,[buf]                ;adres bufera priema v dx  
mov ah,0ah                  ;priem tekstovoi stroki
int 21h
 
mov bx, dx
add bl, [buf+1]
adc bh, 0
mov byte ptr [BX+2], 0      ;zavershim vvod stroki nulem
  
 
; Open the input file
mov ax,716Ch                ;dlinnoe imya
mov bx,0                    ;tolko dlya chteniya
mov cx,0 
mov dx,1                    ;otkrit fail esli on suchestvuet
mov si,OFFSET buf+2         ;buf+2 potomu chto: 
int 21h                     ;pervi bayt - maksimalnaya dlina stroki
jc quit                     ;vtoroi bayt - dlina stroko fakticheski vvedennoi fakticheski
mov inHandle,ax
 
; Read the input file
mov ah,3Fh                  ;chitaem fail v buffer
mov bx,inHandle 
mov cx,BufSize 
mov dx,OFFSET buffer
int 21h                     
jc quit                     ;EOF? togda na vihod
mov bytesRead,ax
mov ofset, 0
 
; Display the buffer  
 
vw:                         ;ochistka ekrana
push es
push 0b800h                 ;pryamoe obrashenie k videopamyati (tekstovii regim)
pop es
xor di,di
mov cx,2000                 ;80x25=2k t.e. vivodim odnu stanicu teksta
mov ax,0700h                ;kod pustogo simvola
rep stosw
pop es
 
mov ah, 02                  ;ustanovim poziciyu kursora (0,0) stoka, stolbec
mov dx, 0
mov bh, 0
int 10h
 
mov ah,40h                  ;vivodim odnu stranicu teksta iz bufera
mov bx,1 
mov cx,5fch 
mov dx,OFFSET buffer 
add dx, ofset               ;modificiruem smeshenie v bufere
int 21h
 
inp:
mov ah, 6                   ;vvod s klaviaturi 
mov al, 0                   ;poluchim v al kod najatoi klavishi
mov dl, 0ffh
int 21h
 
 
cmp al, 72                  ;sravnivarm so strelkoi vverh
jz up
 
cmp al, 80                  ;sravnivarm so strelkoi vniz
jz down
 
cmp al, 113                 ;sravnivarm s "q"
jz qt
 
jmp inp
 
up:
sub ofset, 80               ;smeshaemsya v bufere na odnu stroku vverh
jmp vw
 
down:
add ofset, 80               ;smeshaemsya v bufere na odnu stroku vniz
jmp vw
 
qt:
 
; Close the file
mov ah,3Eh 
mov bx,inHandle 
int 21h 
jc quit 
 
quit: 
main ENDP
 
EXIT:
mov ah,4ch
int 21h
 
.data
msg db 'Please type the full name of file to read:$'  
infile db 0
buf db 255,?,4096 dup(?)          
BufSize = 50000
inHandle dw ?
buffer db BufSize DUP(?)
bytesRead dw ?
ofset dw ?
 
END main
Не могу понять где и как программа определяет конец строки в файле который она читает, а затем выводит.
Вот например из тхт файла считываются следующие строки:
Hymn

He sendeth sun, he sendeth shower,
Alike they're needful for the flower:
And joys and tears alike are sent
To give the soul fit nourishment.
As comes to me or cloud or sun,
Father! thy will, not mine, be done!
Can loving children e'er reprove
With murmurs whom they trust and love?
Creator! I would ever be
A trusting, loving child to thee:
As comes to me or cloud or sun,
Father! thy will, not mine, be done!
Oh, ne'er will I at life repine:
Enough that thou hast made it mine.
When falls the shadow cold of death
I yet will sing, with parting breath,
As comes to me or shade or sun,
Father! thy will, not mine, be done!

Как программа определяет когда нужно перейти на следующую строку при выводе, почему не выводит всё сплошным текстом? Вообщем, каким местом он реагирует на знак конца строки?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2012, 17:38
Ответы с готовыми решениями:

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

Как определить конец строки в файле?
class Program { static void Main(string args) { ...

Как определить конец строки в считываем файле
Нужна помощь:какое средство или команда определяет,что в c#,в файле из которого мы считываем...

Как в чётных строках файла перенести первое слово строки в конец строки?
Народ кто сможет? Задания на контрольную работу по дисциплине «Операционные системы UNIX»...

5
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
23.12.2012, 19:57 2
Цитата Сообщение от axent
каким местом он реагирует на знак конца строки?
Дело в том, что вывод идёт на stdout(стр.67-73) и поэтому ВК/ПС обрабатываются самим досом корректно. Есть редактор на асме - смотрите в нём.
1
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
23.12.2012, 20:23 3
Выводится на экран страница, а не по одной строке:
Assembler
1
2
3
4
5
6
mov ah,40h                  ;vivodim odnu stranicu teksta iz bufera
mov bx,1      ; стандартное устройство вывода
mov cx,5fch 
mov dx,OFFSET buffer 
add dx, ofset               ;modificiruem smeshenie v bufere
int 21h
Миниатюры
Скроллинг файла: где и как программа определяет конец строки в файле  
1
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 5
23.12.2012, 20:35  [ТС] 4
а сколько символов в этой странице, и где это можно задать?
0
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
23.12.2012, 20:36 5
В сх, 1532. байта.
1
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 5
23.12.2012, 20:41  [ТС] 6
Цитата Сообщение от Charles Kludge Посмотреть сообщение
В сх, 1532. байта.
Большое спасибо
0
23.12.2012, 20:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2012, 20:41
Помогаю со студенческими работами здесь

Как добавить в конец каждой строки одного файла соответствующую строку из другого файла
Как добавить в конец каждой строки одного файла соответствующую строку из другого файла?

Как найти начало и конец строки файла (текстового)
Здравствуйте! Как найти начало и конец строки файла (текстового)!??? Спасибо

Как записать один символ строки в конец файла?
На экран из регистра al символ выводится с помощью прерывания 29h, можно ли также просто записать...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru