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

Чтение из файла

20.03.2013, 19:15. Просмотров 803. Ответов 1
Метки нет (Все метки)

Есть код програмы, нужно сделать так что данные считывались из файла.
Помогите плиз, очень надо!!
Вот сама зачада:
Создать программу, которая включает в себя команды обработки строк языка ассемблер. Выполнить ввод строки с 40 символов. Слова в строке разделить пробелами. Подсчитать количество слов последнего.

Вот сам код...

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
data          SEGMENT  
    newLen db ?                      
    bufer db 41 
    len   db   ?
         
data          ENDS
 
code          SEGMENT
              ASSUME   cs:code,ds:data
begin:
 
;ввод строки
    mov ah,10
    lea dx,bufer
    mov di,dx
    int 21h
 
;перевод строки
    mov ah,2
    mov dl,10
    int 21h
 
    inc di      ;на число введенных символов
 
    xor ax,ax   ;AH-для хранения длины последнего слова
    xor bx,bx   ;BL-для счетчика слов
    xor cx,cx   ;CL-длина строки
 
    mov cl,[di] ;число введенных символов
    mov [di],byte ptr ' ' ;перед первым символом строки, записать пробел
    add di,cx   ;DI - на последнем символе строки
    inc cl      ;с пробелом символов больше на 1
    mov [newLen],cl ;новая длина строки
 
;подсчет длины последнего слова
    call Find
    mov ah,cl   ;AH=длина последнего слова
 
;подсчет следующего слова
m1:
    mov cl,[newLen] ;
    test cl,cl  ;если символов в строке 0, вывод
    jz okString
 
    call Find
    cmp ah,cl   ;сравнить самое длинное
    jge m1      ;если дольше,
    inc bl      ;увеличить счетчик слов
    jmp short m1    ;на следующее слово
 
okString:
;вывод на экран
    xor ax,ax
    mov al,bl
 
    mov     bx, 10 ; основание сс. 10 для десятеричной и т.п.
oi2:
    xor     dx,dx
    div     bx
; Делим число на основание сс. В остатке получается последняя цифра.
; Сразу выводить её нельзя, поэтому сохраним её в стэке.
    push    dx
    inc     cx
; А с частным повторяем то же самое, отделяя от него очередную
; цифру справа, пока не останется ноль, что значит, что дальше
; слева только нули.
    test    ax, ax
    jnz     oi2
; Теперь приступим к выводу.
    mov     ah, 02h
oi3:
    pop     dx
; Извлекаем очередную цифру, переводим её в символ и выводим.
    add     dl, '0'
    int     21h
; Повторим ровно столько раз, сколько цифр насчитали.
    loop    oi3
 
    xor ax,ax   ;ждать нажатия клавиши
    int 16h
 
Find    proc    near
    std     ;сканировать с уменьшением адреса
    mov dx,di   ;для вычисления длины слова DX-конкц слова
    mov al,' '
    repne scasb ;искать пробел
 
    mov cx,dx   ;DX-конец слова
    sub cx,di   ;DI-начало слова. DX-DI=CX=длина слова
    sub [newLen],cl ;новая длина строки     
    ret
Find    endp
code          ENDS
              end      begin
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2013, 19:15
Ответы с готовыми решениями:

Чтение файла
Здравствуйте. Хочу увидеть в дампе памяти свой файл, а что то я его не...

Чтение из файла, исправить код
Есть програма, которая должна создать папку, потом в файл и записать в файл,...

Чтение перевода строки из файла
Есть исходный .txt файл из которого я гружу 100байт в buff DB 40,41 dup(?)...

Создание, запись, чтение файла. Массивы, циклы. Где-то ошибка.
Написал код небольшой программы, но где-то допустил ошибку. Не понимаю всех...

Резидентная программа: при нажатии Ctrl+A сменить атрибуты файла на "только чтение"
Здраствуйте, есть программа на ассемблере, при нажатии Стрл+А меняет атрибуты...

1
Bod
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 6
27.03.2013, 18:54  [ТС] 2
Помогите плиз, очень нужно. Буду очень благодарен...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2013, 18:54

Чтение чисел из файла. Чтение после конца потока невозможно
Товарищи, помогите. В Pascal'e я не силен, так что не бейте меня ногами, но...

Как заменить чтение строки из консоли на чтение текстового файла?
основное задание: найти частоту суффикса (например, "ing") в текстовом...

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -> Vehicles -> Firetruck_0...


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

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

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